Question Installation de MSI à distance sur plsr serveurs

Plus d'informations
il y a 10 ans 6 jours #21589 par Rousseau
Bonjour.

Je vous explique le contexte.
Depuis mon poste de travail, je souhaite installer des plugins sur tous mes serveurs via des packages en MSI.
Je ne souhaite pas copier les .msi dans sur les serveurs mais tout exécuter depuis ma machine.
Voici le code que j'ai réalisé :

[code:1]
# -- Declaration de variables
$chemin = \"Z:\Soft\"
$setup_outlook = \"$chemin\Phraseanet_OutlookSetup_x86\Release\Phraseanet_OutlookSetup.msi\"
$setup_word = \"$chemin\Phraseanet_WordSetup_x86\Release\Phraseanet_WordSetup.msi\"
$setup_powerpoint = \"$chemin\Phraseanet_PowerpointSetup_x86\Release\Phraseanet_PowerpointSetup.msi\"
$log_path = \"Z:\5- Scripts\logs\log_DAM.txt\"
$date = (get-date).tostring(‘dd-MM-yyyy HH:mm: ss’)
$srvctx_pair = Get-Content \"Z:\5- Scripts\logs\srv.txt\"

# -- Déclaration des fonctions
$msi_outlook = {
$args = \"/i $setup_outlook /quiet /norestart\"
[diagnostics.process]:: start(\"msiexec.exe\", $args).WaitForExit()
}

$msi_powerpoint = {
$args = \"/i $setup_powerpoint /quiet /norestart\"
[diagnostics.process]:: start(\"msiexec.exe\", $args).WaitForExit()
}

$msi_word = {
$args = \"/i $setup_word /quiet /norestart\"
[diagnostics.process]:: start(\"msiexec.exe\", $args).WaitForExit()
}

foreach ($computer in $srv_ctxpair) {
if (test-Connection -ComputerName $computer -quiet) {
# -- Installation du plugin Outlook
Write-Host \"Installation du plugin Outlook sur $computer\" -ForegroundColor blue
Add-Content -Path $log_path -Value $date
Add-Content -Path $log_path -Value \"Installation du plugin Outlook sur $computer\"
Add-Content -Path $log_path -Value \"\"
invoke-command -scriptblock $msi_outlook

# -- Installation du plugin Powerpoint
Write-Host \"Installation du plugin Powerpoint sur $computer\" -ForegroundColor blue
Add-Content -Path $log_path -Value $date
Add-Content -Path $log_path -Value \"Installation du plugin Powerpoint sur $computer\"
Add-Content -Path $log_path -Value \"\"
invoke-command -scriptblock $msi_powerpoint

# -- Installation du plugin Word
Write-Host \"Installation du plugin Word sur computer\" -ForegroundColor blue
Add-Content -Path $log_path -Value $date
Add-Content -Path $log_path -Value \"Installation du plugin Word sur $computer\"
Add-Content -Path $log_path -Value \"\"
invoke-command -scriptblock $msi_word
}
else
{
Write-Host \"$computer n'est pas accessible\" -ForegroundColor Red
}
}[/code:1]

PS : J'ai déjà vu ce script (powershell-scripting.com/index.php?optio...id=388&Itemid=71) et d'autres mais je n'obtiens toujours pas ce que je veux.

Merci de votre aide.<br><br>Message édité par: cocoes, à: 16/03/16 20:48

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

Plus d'informations
il y a 10 ans 5 jours #21592 par Arnaud Petitjean
Bonsoir Cocoes,

D'après ce que je vois, tu ne passes à aucun moment les blocs de scripts à une machine distante.

Exemple :
[code:1]
invoke-command -scriptblock $msi_outlook
[/code:1]

Je pense qu'il te manque le paramètre -computername, soit quelque chose du genre :

[code:1]
invoke-command -scriptblock $msi_outlook -computername -computer
[/code:1]

Arnaud<br><br>Message édité par: Arnaud, à: 16/03/16 23:20

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 10 ans 5 jours #21596 par Rousseau
J'ai testé aujourd'hui en mettant le paramètre computer name mais rien de plus. J'ai testé aussi en ajoutant des credential sans grands résultats?

Faut il ouvrir les sessions avec PsSessions?

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

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