Cómo actualizar todas las herramientas de Sysinternals automáticamente

Ya sea que sea un profesional de TI o un desarrollador de Windows, encontrará las herramientas de Sysinternals invaluables, que lo ayudarán a administrar, solucionar problemas y diagnosticar sus sistemas y aplicaciones de Windows. Lo que es más importante, el equipo de Microsoft actualiza periódicamente estas herramientas para mantenerlas siempre a la vanguardia. Por ejemplo, ambos Sysmon y Procdump las utilidades se actualizaron recientemente el 28 de abril de 2016, y otra útil Sigcheck también se actualizó en febrero. Pero el problema es que nos resulta difícil mantener actualizada nuestra copia de sus herramientas. Sería bueno si hubiera una mejor manera que consultar su sitio web con regularidad para averiguar qué se ha actualizado.

Aquí hay un Secuencia de comandos de PowerShell que te puede resultar muy útil en este sentido. Comprueba las herramientas del sitio web de Sysinternals y descarga las herramientas más nuevas si encuentra alguna. El guión está completo y listo para funcionar sin módulos adicionales.

/ Actualización 9 de marzo de 2018 /

Descargue el script del enlace anterior y actualice la ruta de la carpeta en la parte inferior para especificar dónde se guardan los Sysinternals en su computadora.

Aquí está el código original en el script:

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/"
   		$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=$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))
                 	#Friday, May 30, 2008  4:55 PM          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 ) 
	    	{
		    	Try {
	            		$wc.DownloadFile("$ToolsUrl/$_","$ToolsLocalDir$_" )
	            		$f=dir "$ToolsLocalDir$_"
	            		$f.lastWriteTime=($tools[$_])
						"Updated $_"
		       		}
		    	catch { Write-debug "An error occurred: $_" }
	    	} 
    	} 
  	}
}

cls

"Update started..."

Update-Sysinternalshttp -ToolsLocalDir "Z:DesktopC-20130201PSTools"

"The End"

Reemplazar “Z: Escritorio C-20130201 PSTools”Con la ruta de la carpeta real en su caso y ya está listo.

Puede ejecutarlo manualmente desde la consola de PowerShell, como la captura de pantalla anterior, o desde la ventana del símbolo del sistema, ejecutando el siguiente comando, asumiendo que Update-Sysinternals.ps1 se guarda en mi escritorio.

powershell.exe  -executionpolicy bypass -command "c:UserskentDesktopUpdate-Sysinternals.ps1"

Símbolo del sistema 2016 05 10 23 49 09 600x388 - Cómo actualizar todas las herramientas de Sysinternals automáticamente

También puede usar el script para descargar todas las herramientas de Sysinternals desde cero sin tener que ir a su sitio web. Solo asegúrese de tener lista la carpeta que guarda estas herramientas antes de ejecutar el script.

Y, por supuesto, puede agregarlo en el Programador de tareas para que se ejecute automáticamente en la programación.

Deja un comentario