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-Key: 382712

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

Printed on: April 19, 2024 at 06:04 o'clock

Member: NetzwerkDude
NetzwerkDude Aug 08, 2018 updated at 14:06:15 (UTC)
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
Member: colinardo
Solution colinardo Aug 08, 2018 updated at 14:38:33 (UTC)
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
Member: adminst
adminst Aug 09, 2018 at 05:58:24 (UTC)
Goto Top
Hallo zusammen
Danke @colinardo. In PS Fragen immer Top.
Weiter so.

Gruss
adminst