Как обновить все инструменты Sysinternals автоматически

Независимо от того, являетесь ли вы ИТ-специалистом или разработчиком Windows, вы найдете бесценные инструменты Sysinternals, которые помогут вам управлять, устранять неполадки и диагностировать ваши системы и приложения Windows. Что еще более важно, эти инструменты регулярно обновляются командой Microsoft, чтобы они всегда были впереди всех. Например, утилиты Sysmon и Procdump обновлены недавно, 28 апреля 2016 г., а еще одна полезная проверка Sigcheck также была обновлена ​​в феврале. Но проблема в том, что нам трудно постоянно обновлять наши копии их инструментов. Было бы неплохо, если бы есть лучший способ, чем регулярно проверять их веб-сайт, чтобы узнавать, что было обновлено.

Вот сценарий PowerShell, который может оказаться для вас очень полезным в этом отношении. Он проверяет инструменты с веб-сайта Sysinternals и загружает любые новые инструменты, если они обнаруживаются. Скрипт готов и готов к работе без каких-либо дополнительных модулей.

/Обновление от 9 марта 2018 г./

Обновить Sysinternals

1 файл (ы) 2,40 КБ
Загрузить

Загрузите скрипт по ссылке выше и обновите путь к папке внизу, чтобы указать, где на вашем компьютере сохраняются Sysinternals.

Вот исходный код в скрипте:

 function Update-SysinternalsHTTP ($ ToolsLocalDir = "  c:  temp  sys ") {if (Test-Path $ ToolsLocalDir) {cd $ ToolsLocalDir $ DebugPreference =" SilentlyContinue "$ wc = new-object System.Net.WebClient $ userAgent =" Mozilla/4.0 (совместимый; MSIE 6.0  ; Windows NT 5.2;) "$ wc.Headers.Add (" user-agent ", $ userAgent) $ ToolsUrl =" http://live.sysinternals.com/"$ toolsBlock =" 
. * 

"$ WebPageCulture = New-Object System.Globalization.CultureInf o ("ru-ru") $ Tools = @ {} $ ToolsPage = $ wc.DownloadString ($ ToolsUrl) $ matches = [string] $ ToolsPage | select-string -pattern "$ ToolsBlock" -AllMatches foreach ($ match в $ match.Matches) {$ txt = (($ match.Value -replace "
", "` r`n ") -replace" ] *?> "," ") foreach ($ lines в $ txt.Split ("` r`n ")) {$ line = $ lines | select-string -NotMatch -Pattern" To Parent | ^ $ | & lt; dir & gt; " if ($ line -ne $ null) {$ date = (([string] $ line) .substring (0,38)). trimstart ("") -replace "", "" $ file = ([string] $ line) .substring (52, (([string] $ line) .length-52)) # Пятница, 30 мая 2008 г. 16:55 668 About_This_Site.txt $ 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) {Попробуйте {$ wc.DownloadFile ("$ ToolsUrl/$ _", "$ ToolsLocalDir $ _") $ f = dir "$ ToolsLocalDir $ _" $ f.lastWriteTime = ($ tools [$ _]) "Обновлено $ _"} catch {Write-debug "Произошла ошибка: $ _"}}}}} cls "Обновление началось ... "Update-Sysinternalshttp -ToolsLocalDir" Z: Desktop C-20130201 PSTools "" Конец "

Заменить« Z: Desktop C-20130201 PSTools »на фактический путь к папке в вашем случае, и все готово.

Вы можете вручную запустить его либо из консоли PowerShell, как на скриншоте выше, либо из окна командной строки, выполнив следующую команду, предполагая, что Update-Sysinternals.ps1 сохранен на моем рабочем столе.

 powershell.exe -executionpolicy bypass -command "c:  Users  kent  Desktop  Update-Sysinternals.ps1" 

Вы также можете использовать сценарий для загрузки всех инструментов Sysinternals с нуля, не заходя на их веб-сайт. Просто убедитесь, что у вас есть готовая папка, в которой хранятся эти инструменты, перед запуском скрипта.

И, конечно же, вы можете добавить его в планировщик задач, чтобы он запускался по расписанию автоматически.

Оцените статью
toodcast.ru
Добавить комментарий