Question
Installation de MSI à distance sur plsr serveurs
- Rousseau
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 10 ans 6 jours #21589
par Rousseau
Installation de MSI à distance sur plsr serveurs a été créé 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
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.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 10 ans 5 jours #21592
par Arnaud Petitjean
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 ?
Réponse de Arnaud Petitjean sur le sujet Re:Installation de MSI à distance sur plsr serveurs
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
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.
- Rousseau
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 10 ans 5 jours #21596
par Rousseau
Réponse de Rousseau sur le sujet Re:Installation de MSI à distance sur plsr serveurs
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?
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Installation de MSI à distance sur plsr serveurs