Question Déployer un KB sur plusieurs hosts

Plus d'informations
il y a 10 ans 5 mois #20821 par Vincent33
Bonjour,

je débute en PowerShell, et j'aimerai chercher à comprendre l'erreur de mon script.

Je suis en train de faire un script pour déployer un seul KB uniquement sur des machines 2008 R2.

J'ai fais un fichier server.txt avec la liste des machines concernés

Contenu server.txt =
MACHINE1
MACHINE2
MACHINE3

J'aimerais déployer ce KB sur toutes les machines en une fois mais le script ne me sort que la liste des machines. Pouvez-vous m'aiguillez afin de corriger cette erreur?


[code:1]$EmplacementFichier = 'C:\temp\server.txt'
$MonFichier = get-content $EmplacementFichier

foreach ($UneLigne in $MonFichier){
Write-Host $UneLigne

}
$SCRIPT = { Start-Process -FilePath 'dism.exe' -ArgumentList \"/Online /Add-Package /PackagePath:\\MACHINE99\c$\Temp\KB2680097\Windows6.1-KB2680097-v2-x64.cab /Quiet /NoRestart\" }
Invoke-Command -ComputerName $UneLigne -ScriptBlock $SCRIPT [/code:1]

Merci

Message édité par: Vincent33, à: 6/10/15 15:08<br><br>Message édité par: Vincent33, à: 7/10/15 09:51

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 5 mois #20822 par Laurent Dardenne
Salut,
ton script fait ce que tu lui demandes.

Insère l'appel de invoke-command dans la boucle Foreach, déplace la déclaration de $Script AVANT la boucle, si toutefois elle est identique pour chaque serveur, enfin le paramètre -Argumentlist contient une substitution ($temp) est-ce volontaire ?<br><br>Message édité par: Laurent Dardenne, à: 6/10/15 14:49

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 5 mois #20824 par Vincent33
Bonjour,

DLe seul résultat est qu'il me liste les noms de serveurs du fichier server.txt.

Quand je veux vérifier que mon KB est installé, il ne l'est pas

[code:1]get-hotfix -id KB2680097 -computername MACHINE1[/code:1]<br><br>Message édité par: Vincent33, à: 7/10/15 11:30

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 5 mois #20827 par Laurent Dardenne
Merci pour les balises code :)
Ton code fonctionne, mais le process doit être supprimé dés la fin de ton appel WinRM, l'usage du paramètre -Wait serait le bienvenu, ainsi que le contrôle du code erreur

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 5 mois #20829 par Vincent33
Merci pour ton aide Laurent

[code:1]$EmplacementFichier = 'C:\temp\server.txt'
$MonFichier = get-content $EmplacementFichier
$SCRIPT = { Start-Process -FilePath 'dism.exe' -ArgumentList \&quot;/Online /Add-Package /PackagePath:\\MACHINE99\c$\Temp\KB2680097\Windows6.1-KB2680097-v2-x64.cab /Quiet /NoRestart\&quot; -Wait -RedirectStandardOutput C:\Temp\KBUpdateOutput.txt }

foreach ($UneLigne in $MonFichier){
Write-Host $UneLigne
Invoke-Command -ComputerName $UneLigne -ScriptBlock $SCRIPT
}[/code:1]

Effectivement, j'ai bien une erreur :


Error: 3
The system cannot find the path specified.

Alors que j'accède bien à mon partage depuis la machine ou je veux installer le KB.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 5 mois #20830 par Laurent Dardenne
Vincent33 écrit:

Effectivement, j'ai bien une erreur :

Comme quoi la gestion d'erreur n'est pas une option :P

Pour l'accès au share ajoute sur l'appel à Invoke-Command. e paramètre EnableNetworkAccess .

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.048 secondes
Propulsé par Kunena