当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 周五乐趣:SysInternals PowerShell 工作流程

作者:精品下载站 日期:2024-12-14 07:48:22 浏览:14 分类:玩电脑

周五乐趣:SysInternals PowerShell 工作流程


多年来,我想出了许多 PowerShell 工具来将 SysInternals 工具下载到我的桌面。是的,我知道使用 PowerShell 5 和 PowerShellGet 我可以下载并安装 SysInternals 软件包。但这假设该包是最新的。但这不是重点。相反,我想利用今天的星期五乐趣为您提供一个使用工作流作为脚本工具的示例。在本例中,目标是从 Internet 下载 SysInternals 文件。

首先,您需要从 GitHub 获取工作流程的副本。

:

工作流命令就像一个函数,您需要将其加载到 PowerShell 会话中,例如点源文件。

。 c:\scripts\Update-SysinternalsWorkflow.ps1

这将为您提供一个新命令。

[玩转系统] 周五乐趣:SysInternals PowerShell 工作流程

现在可以像任何其他命令一样执行工作流程。

[玩转系统] 周五乐趣:SysInternals PowerShell 工作流程

该工作流的主要优点是它可以并行处理项目,并且您可以限制活动。在我的工作流程中,我一次处理 8 个文件。

Sequence {
Write-Verbose "Updating Sysinternals tools from \live.sysinternals.com\tools to $destination"

#download files in parallel groups of 8
foreach -parallel -throttle 8 ($file in $current) {
  #construct a path to the live web version and compare dates
  $online = Join-Path -path \live.sysinternals.com\tools -ChildPath $file.name
  Write-Verbose "Testing $online"
  if ((Get-Item -Path $online).LastWriteTime.Date -ge $file.LastWriteTime.Date) {
    Copy-Item $online -Destination $Destination -PassThru
  }
}
}

在工作流程中需要注意的一件事是范围。您不应该假设可以在整个工作流程中访问变量。这就是为什么我专门确定了一些变量的范围,以便它们能够跨序列持续存在。

我真的希望有一天并行处理能够进入该语言,因为坦率地说,这是我使用工作流的唯一原因。而且速度很快。我在 FiOS 连接上用了不到一分钟的时间就下载了整个目录。该工作流还将仅下载较新的在线文件或不在指定目录中的文件。

如果您想了解有关工作流程的更多信息,可以在 PowerShell in Depth 中找到相关材料。

希望这个对你有帮助。把它当作我对你的情人吧。

注意:由于该脚本位于 GitHub 上,因此它将始终是最新版本,包括您在本文中看到的嵌入内容。自从这篇文章发布以来,我做了一些更改,这些更改可能并不总是反映在本文中。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯