Oft werden Patches für Programme als msp Dateien bereitgestellt. Nach einer Zeit kann für eine bestimmte Programmversion schon einiges an Patches zusammenkommen. Muss man nun diese Patches manuell installieren und das auch noch gleich auf deinem dutzend von Rechner vergeht einem schnell der Spaß. Kommen dann auch noch unterschiedliche Patches für x64 uns x86 System wie von Autodesk hinzu, kann das schon viel Zeit kosten.
Ich habe mir deswegen einen kurzes AutoIt Skript zurecht gebastelt. Es wird einfach als komplierte EXE in den Ordner mit den msp Dateien gelegt und per doppelklick gestartet. Es werden dann alle Dateien nach und nach installiert.
Eventuell kann man noch einstellen, dass das Skript einen Adminaccount nutzt, falls der aktuell angemeldete User nicht über die nötigen Rechte verfügt. So könnte jeder User per doppelklick sein Programm auf dem aktuellen Stand halten (sollte es denn sinnig sein; irgendetwas muss der Administrator ja auch machen :) ).
Die EXE Datei kann sowohl auf einem Netzwerklauf als auch per UNC-Pfad gestartet werden, es wurde beides berücksichtigt. Zu Protokollzwecken wird für jede ausgeführte msp-Datei ein HTTP-Request abgesetzt. Es kann somit zu jeder Zeit nachfolzogen werden, auf welchem Patchstand eine Software auf einem bestimmten PC ist.
patches.au3
;starts all msp files in the some directory
;reports installed msp files to webserver
;run as admin
RunAsSet("user","domain", "pw")
#include <file.au3>
Dim $szDrive, $szDir, $szFName, $szExt
$TestPath = _PathSplit(@ScriptFullPath, $szDrive, $szDir, $szFName, $szExt)
$pfad = @ScriptDir
$pfad_net=DriveMapGet($TestPath[1])
if not $pfad_net ="" then $pfad = $pfad_net & "\" & $TestPath[2]
$search = FileFindFirstFile("*.msp")
; Check if the search was successful
If $search = -1 Then
MsgBox(0, "Error", "keine *.msp Patch-Dateien gefunden")
Exit
EndIf
;send a simple update statement to a php-script
InetGet("http://server/script.php?upd","",0,1)
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
$blah = InetGet("http://server/script.php?file=" & $file,"",0,1)
RunWait("msiexec.exe /p " & $file & " /quiet /norestart",$pfad)
WEnd
RunAsSet()
FileClose($search)
Disqus - noscript
Vielen Dank.
http://www.autoitscript.com/fo...