adminst
Goto Top

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:

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

Content-ID: 382712

Url: https://administrator.de/contentid/382712

Ausgedruckt am: 24.11.2024 um 13:11 Uhr

NetzwerkDude
NetzwerkDude 08.08.2018 aktualisiert um 16:06:15 Uhr
Goto Top
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"}  

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
colinardo
Lösung colinardo 08.08.2018 aktualisiert um 16:38:33 Uhr
Goto Top
Zitat von @NetzwerkDude:

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"}  
Das wird so aber ebenfalls nicht funktionieren da die Anführungszeichen innerhalb des Arguments nicht escaped werden.

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"  
oder wenn keine Variablen in den Argumenten vorkommen auch einfach mit einfachen Hochkommas außen rum
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
adminst
adminst 09.08.2018 um 07:58:24 Uhr
Goto Top
Hallo zusammen
Danke @colinardo. In PS Fragen immer Top.
Weiter so.

Gruss
adminst