Je travail actuellement sur un script permettant de me notifier quels PC possèdent le SP3 et quels PC possèdent le SP2, au cas où le PC est en SP2 il fera la mise à jour vers le SP3. Ce script sera exécuté à l'arrêt du PC via une GPO.
Code : Tout sélectionner
;---------------------------------------------------------------------------------
;--------------------- DECLARATION DES VARIABLES ---------------------------------
;---------------------------------------------------------------------------------
$ServicePack = @OSServicePack
$Ordinateur = @ComputerName
$LogPath = "\\serveur03\patchs\AutoIT_Script\Service Pack\SP3_log\" & $Ordinateur & ".txt"
$LogPathSP2 = "\\serveur03\patchs\AutoIT_Script\Service Pack\SP2_log\" & $Ordinateur & ".txt"
;---------------------------------------------------------------------------------
;-------------------------- DEBUT DU SCRIPT --------------------------------------
;---------------------------------------------------------------------------------
If $ServicePack = "Service Pack 3" Then
_FileWriteLog ( $LogPath, $Ordinateur & " a déjà le Service Pack 3 installé." )
EndIf
If $ServicePack = "Service Pack 2" Then
;RunAs ("pseudo", "domaine", "password", "","\\serveur03\patchs\Microsoft\Windows XP\SP3\WindowsXP-KB936929-SP3-x86-FRA.exe " )
Run ( "\\serveur03\patchs\Microsoft\Windows XP\SP3\WindowsXP-KB936929-SP3-x86-FRA.exe" )
WinWaitActive ( "Assistant Installation de mise à jour logicielle", "&Suivant" )
Send ( "!S" )
WinWaitActive ( "Assistant Installation de mise à jour logicielle", "&J'accepte" )
Send ( "!J" )
WinWaitActive ( "Assistant Installation de mise à jour logicielle", "&Suivant" )
Send ( "!S" )
WinWaitActive ( "Assistant Installation de mise à jour logicielle", "Terminer" )
Send ( "{ENTER}" )
_FileWriteLog ( $LogPathSP2, $Ordinateur & " vient d'installer le Service Pack 3." )
EndIf
Exit
#cs
SCRIPT FICHIER Log
#ce
Func _FileWriteLog($sLogPath, $sLogMsg)
;==============================================
; Local Constant/Variable Declaration Section
;==============================================
Local $sDateNow
Local $sTimeNow
Local $sMsg
Local $hOpenFile
Local $hWriteFile
$sDateNow = @YEAR & "-" & @MON & "-" & @MDAY
$sTimeNow = @HOUR & ":" & @MIN & ":" & @SEC
$sMsg = $sDateNow & " " & $sTimeNow & " : " & $sLogMsg
$hOpenFile = FileOpen($sLogPath, 1)
If $hOpenFile = -1 Then
SetError(1)
Return 0
EndIf
$hWriteFile = FileWriteLine($hOpenFile, $sMsg)
If $hWriteFile = -1 Then
SetError(2)
Return 0
EndIf
FileClose($hOpenFile)
Return 1
EndFunc ;==>_FileWriteLog
- Est-ce possible de pouvoir lancer l'installation en mode silencieuse (question que l'utilisateur ne puisse pas cliquer sur la croix rouge... par exemple ) j'ai essayé de rajouter dans mon code autoit les commutateurs /passive /forcerestart mais à priori cela ne marche pas...
- La possibilité de lancer l'installation en tant qu'administrateur j'ai essayé avec un RunAs mais je pense mal le configuré car celui-ci ne marche pas.
- Enfin, il y a un bug à la fin du code car même si l'installation ne s'est pas terminé correctement le log ce crée en disant SP3 a bien été installé. Un moyen de lancer le log une fois que l'installation est réellement fini ?
En vous remerciant




