Powershell Invoke Command mit Gänsefüsschen Parameter
Hallo zusammen
Ich möchte gerne mit Powershell eine msi remote installieren mit dem Invoke-Command Befehl.
Ursprungsbefehl:
Mein bisheriges Skript:
Frage:
Wie müsste der Invoke-Command Befehl sauber aussehen, dass die MSI ausgeführt wird?
Danke und Gruss
adminst
Ich möchte gerne mit Powershell eine msi remote installieren mit dem Invoke-Command Befehl.
Ursprungsbefehl:
msiexec /i \\**Pfad**\Software.msi /qn Host_SERVER="**FQDN**" SERVER_PORT="***" USE_SSL="1" /l*v c:\temp\Installer.log
Mein bisheriges Skript:
$computers = Get-Content "C:\hosts.txt"
foreach ($computer in $computers) {
if(Test-Connection $computer -Count 2) {
Invoke-Command -ComputerName $computer -scriptBlock {Start-Process -FilePath "msiexec /i \\**Pfad**\Software.msi /qn Host_SERVER="**FQDN**" SERVER_PORT="***" USE_SSL="1" /l*v c:\temp\Installer.log"
}
} else {
Write-Output "Der Computer $computer ist momentan nicht erreichbar."
}
}
Frage:
Wie müsste der Invoke-Command Befehl sauber aussehen, dass die MSI ausgeführt wird?
Danke und Gruss
adminst
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 382712
Url: https://administrator.de/contentid/382712
Ausgedruckt am: 24.11.2024 um 13:11 Uhr
3 Kommentare
Neuester Kommentar
z.B. so
Bei dir oben steht eben das Programm und die Parameter in einem langen String d.h. Start-Process sucht nicht nur nach msiexec, sondern nach allem was zwischen den "" steht
{Start-Process -FilePath msiexec -ArgumentList "/i \\**Pfad**\Software.msi /qn Host_SERVER="**FQDN**" SERVER_PORT="***" USE_SSL="1" /l*v c:\temp\Installer.log"}
Bei dir oben steht eben das Programm und die Parameter in einem langen String d.h. Start-Process sucht nicht nur nach msiexec, sondern nach allem was zwischen den "" steht
Zitat von @NetzwerkDude:
z.B. so
Das wird so aber ebenfalls nicht funktionieren da die Anführungszeichen innerhalb des Arguments nicht escaped werden.z.B. so
{Start-Process -FilePath msiexec -ArgumentList "/i \\**Pfad**\Software.msi /qn Host_SERVER="**FQDN**" SERVER_PORT="***" USE_SSL="1" /l*v c:\temp\Installer.log"}
Wenn so dann
Start msiexec -ArgumentList "/i \\**Pfad**\Software.msi /qn Host_SERVER=`"**FQDN**`" SERVER_PORT=`"***`" USE_SSL=1 /l*v c:\temp\Installer.log"
Start msiexec -ArgumentList '/i \\**Pfad**\Software.msi /qn Host_SERVER="**FQDN**" SERVER_PORT="***" USE_SSL=1 /l*v c:\temp\Installer.log'
Grüße Uwe