Windows Sysinternals 内包含了很多微软提供的实用工具,经常用到的比如 Process Explorer
、Process Monitor
、TcpView
、Autoruns
、DbgView
等等,因为这些工具各司其职,大多是分开的单独的 exe,如果想更新他们,我自己平时都是去 Windows Sysinternals 直接下载覆盖更新,每个文件都去看看版本号对不对,这样很麻烦。后面在网络上搜索到了一个 PowerShell 的脚本,直接运行脚本指定好目录就可以自动下载最新的工具了,非常实用,这里推荐给大家。
运行后的效果
PowerShell 代码
代码语言:javascript复制function Update-SysinternalsHTTP ($ToolsLocalDir = "c:tempsys")
{
if (Test-Path $ToolsLocalDir){
cd $ToolsLocalDir
$DebugPreference = "SilentlyContinue"
$wc = new-object System.Net.WebClient
$userAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2;)"
$wc.Headers.Add("user-agent", $userAgent)
$ToolsUrl = "http://live.sysinternals.com/tools"
$toolsBlock="<pre>.*</pre>"
$WebPageCulture = New-Object System.Globalization.CultureInfo("en-us")
$Tools = @{}
$ToolsPage = $wc.DownloadString($ToolsUrl)
$matches=[string] $ToolsPage select-string -pattern "$ToolsBlock" -AllMatches
foreach($match in $matches.Matches) {
$txt = ( ($match.Value -replace "</A><br>", "`r`n") -replace "<[^>]*?>","")
foreach($lines in $txt.Split("`r`n")){
$line=$linesselect-string -NotMatch -Pattern "To Parent^$<dir>"
if ($line -ne $null){
$date=(([string]$line).substring(0,38)).trimstart(" ") -replace " "," "
$file=([string]$line).substring(52,(([string]$line).length-52))
$Tools["$file"]= [datetime]::ParseExact($date,"f",$WebPageCulture)
}
}
}
$Tools.keys
ForEach-Object {
$NeedUpdate=$false
if (Test-Path $_)
{
$SubtractSeconds = New-Object System.TimeSpan 0, 0, 0, ((dir $_).lastWriteTime).second, 0
$LocalFileDate= ( (dir $_).lastWriteTime ).Subtract( $SubtractSeconds )
$needupdate=(($tools[$_]).touniversaltime() -lt $LocalFileDate.touniversaltime())
} else {$NeedUpdate=$true}
if ( $NeedUpdate )
{
Try {
$wc.DownloadFile("$ToolsUrl/$_","$ToolsLocalDir$_" )
$f=dir "$ToolsLocalDir$_"
$f.lastWriteTime=($tools[$_])
"Updated $_"
}
catch { Write-debug "发生错误: $_" }
}
}
}
}
cls
"更新开始..."
Update-Sysinternalshttp -ToolsLocalDir "D:Tools"
"更新结束"
将脚本复制下来保存为 .ps1
后缀的文件,使用 PowerShell 运行即可。注意代码最后的路径 D:Tools
如果你需要修改为其他路径请在这里修改。代码实际就是去 http://live.sysinternals.com/tools 对比文件信息进行更新。有兴趣的可以自己做个脚本来搞定!