2017-03-16 8 views
-1

Ich habe Probleme mit meinem Skript, das eine ausführbare Datei remote installieren soll. Alle vorbereitenden Aktionen meines Skripts funktionieren einwandfrei. Ich schnappe mir die Hostnamen von etwa einem Dutzend Computern aus einer Textdatei. Ich verwende PSExec, um PSRemoting zu aktivieren. Dann wird das Installationsprogramm in ein temporäres Verzeichnis auf dem Remote-Computer kopiert. Alles funktioniert gut, bis auf den wichtigen Teil. Ich kann es einfach nicht installieren.PowerShell: Remote exe Installation

Ich habe versucht, die folgenden:

Invoke-Command -ComputerName remoteComp -ScriptBlock {C:\temp\installer.exe} -ArgumentList /SILENT 
Invoke-Command -ComputerName remoteComp {Start-Process C:\temp\installer.exe -ArgumentList /SILENT -Wait} 

Ich habe versucht, mit New-PSSession wie folgt aus:

$s = New-PSSession -ComputerName remoteComp 
Invoke-Command -Session $s -ScriptBlock {C:\temp\installer.exe} -ArgumentList /SILENT 

senden Keine irgendeine Art von Fehler, sie tun einfach nichts. Befehle, die haben -Warten Sie einfach für immer hängen. Wenn ich ein -Sleep setze, wartet es nur die angeforderten Sekunden und endet dann, ohne etwas zu erreichen. Ich weiß nicht, ob das wichtig ist, aber wenn ich die ausführbare Datei auf dem lokalen Computer mit der Option/SILENT ausführe, werden keine Eingabeaufforderungen angefordert, aber es wird ein Explorer-Fenster geöffnet.

Ich habe versucht, PSExec.exe zu verwenden, aber ich bekomme ein ähnliches Ergebnis. Es bleibt einfach für immer ohne Fehler. Vielen Dank im Voraus für jede Hilfe!

+0

Ich habe dies auf verschiedenen Installern versucht, einige arbeiten je nach UAC-Ebene. Ich habe dann etwas geschrieben, um die Erstellung einer geplanten Aufgabe auf einem Zielrechner auszuführen, auf dem eine Batch-Datei mit allen meinen Befehlen für die unbeaufsichtigte Installation ausgeführt wird. 'SCHTASKS' – ssaviers

+0

in den Skriptblockbeispielen haben Sie Ihren Parameter nicht an Ihre exe übergeben. '-ScriptBlock {C: \ temp \ installer.exe $ args [0]} -ArgumentList/SILENT', obwohl möglicherweise mehr los ist. Das würde erklären, warum es für immer so weitergeht, weil es mit keinem Benutzer interagieren kann. Es gibt freie Software, die mit solchen Dingen wie PDQ Deploy umgehen kann, anstatt zu versuchen, ein eigenes fyi zu erstellen. – Matt

+0

Das erscheinende Explorer-Fenster kann dazu führen, dass der Installationsprozess nicht beendet wird, was erklären würde, warum bei Verwendung von "-Wait" dieser niemals endet. Sie können dies auf einem lokalen Computer testen ... Öffnen Sie den Task-Manager und führen Sie das Installationsprogramm mit dem Schalter "silent" aus, um den Prozess "installer.exe" im Task-Manager zu finden. Wenn das Installationsprogramm ein Explorer-Fenster öffnet, verschwindet der 'installer.exe' Prozess? –

Antwort

0

versuchen Sie die Argumentliste innerhalb ... wenn die exe es unterstützt.

ex:

Invoke-Command -ScriptBlock { c:\temp\yourexe.exe /verysilent /norestart /log="c:\install.log"} 

Bitte versuchen Sie es.

+0

Leider unterstützt diese exe nicht /ysylent –

+0

versuchen/still zusammen mit der exe, wenn/verysilent nicht unterstützt wird – VGSandz

1

Nachdem er mit dieser Sache etwas zu kämpfen, konnte ich die exe erfolgreich installieren, indem Sie eine Batch-Datei erstellen und dann mit

Invoke-Command -ComputerName remoteComp -ScriptBlock {C:\temp\installer.bat} 

Alles, was in der Batch-Datei ist

installer.exe /SILENT 

Ein anderer Weg, der für mich funktioniert hat, wurde von ssaviers erwähnt, ich könnte mit schtasks.exe eine einmalige Aufgabe planen.

Verwandte Themen