Wieso?

Dieses Skript kann dazu verwendet werden updates automatisch installieren zu lassen. Wer die Schnauze voll hat immer auf Updates suchen, Updates installieren und Jetzt Neustarten zu klicken, der hat bestimmt Freude am Skript

Ich habe das Skript schon länger nicht mehr verwendet. Evtl. enthält es Bugs. Jedoch ist alles dabei was benötigt wird. So könnt ihr ganz einfach euer eigenes Skript zusammen copypasten.

Wie verwenden?

Einfach einen Task machen der das Skript beim starten automatisch ausführt. Sicherheitspolicy nicht vergessen ;-) set-executionpolicy remotesigned

Das Skript


Windows Auto Update:
$module = Get-Module -Name PSWindowsUpdate

if ($module.Count -ne "1"){
    #Variablen
    $downloadLink = "http://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc/file/41459/43/PSWindowsUpdate.zip"
    $tempPath = $env:USERPROFILE+"\Downloads"
    $zipFile = "PSWindowsUpdate.zip"

    $modulePath1=$env:USERPROFILE+"\Documents\WindowsPowerShell\Modules"
    $modulePath2=$env:WINDIR+"\SysWOW64\WindowsPowerShell\v1.0\Modules"

    #Funktionen
    function Expand-ZIPFile($file, $destination){
    $shell = new-object -com shell.application
    $zip = $shell.NameSpace($file)
    foreach($item in $zip.items()){
    $shell.Namespace($destination).copyhere($item)
    }
    }

    wget $downloadLink -outfile $tempPath"\PSWindowsUpdate.zip"

    if (Test-Path $($tempPath+'\'+$zipFile)){
    mkdir $tempPath"\PSTools"
    mkdir $tempPath"\PSTools\PSWindowsUpdate"
    Expand-ZIPFile –File ($tempPath+"\PSWindowsUpdate.zip”) –Destination$tempPath"\PSTools"
    }
    else{
    echo Konnte ZIP-File nicht herunterladen!
    }

    #Löschen der heruntergeladenen Daten
    del ($tempPath+"\PSWindowsUpdate.zip”)

    #Kopiere Moduldateien an Bestimmungsort
    if (-Not (Test-Path $($env:USERPROFILE+"\Documents\WindowsPowerShell"))){
    New-Item -Path $env:USERPROFILE"\Documents\WindowsPowerShell" -ItemType directory
    }
    if (-Not (Test-Path $($env:USERPROFILE+"\Documents\WindowsPowerShell\Modules"))){
    New-Item -Path $env:USERPROFILE"\Documents\WindowsPowerShell\Modules" -ItemType directory
    }
    if (-Not (Test-Path $($env:USERPROFILE+"\Documents\WindowsPowerShell\Modules\PSWindowsUpdate"))){
    New-Item -Path $env:USERPROFILE"\Documents\WindowsPowerShell\Modules\PSWindowsUpdate" -ItemType directory
    }

    if (-Not (Test-Path $($modulePath2+"\PSWindowsUpdate"))){
    New-Item -Path $modulePath2"\PSWindowsUpdate" -ItemType directory
    }

    Copy-Item -r ($tempPath+"\PSTools\PSWindowsUpdate\*")($modulePath1+"\PSWindowsUpdate") -passthru | foreach{$_.FullName;$len += ($_.length/1KB);}; Write-Host $len "Bytes kopiert"; $len=0;
    Copy-Item -r ($tempPath+"\PSTools\PSWindowsUpdate\*")($modulePath2+"\PSWindowsUpdate") -passthru | foreach{$_.FullName;$len += ($_.length/1KB);}; Write-Host $len "Bytes kopiert"; $len=0;

    $Error.Clear()
    Import-Module PSWindowsUpdate
    if(!$?){
            echo "Es ist ein Fehler augetreten"
    }
        else{
            echo "OK"
    }
}


# Windows Updates installieren

Get-WUInstall -Acceptall -Autoreboot -Verbose

Hilfe benötigt? Günstigen Support gibts bei www.fixthis.ch