- Aufruf Powershell-Skript von Unix-Shell-Skript
Habe ich ein powershell-Skript auf meinem Windows server das hat einige active directory-Operationen. Ich möchten, rufen Sie das Skript von einem anderen Linux-Computer mit einem shell-Skript.
Habe ich installiert powershell-server auf meinem Windows server und kommunizieren kann mit meiner linux-Maschine Via key-basierten ssh-Authentifizierung.
Da Windows nicht unterstützt SSH-verbindungen auf seine eigene, ich habe installiert eine software namens Powershell-server (http://www.powershellserver.com/) auf meinem Windows-server.
Das Problem ist, dass mein Skript einfach beendet, sobald der Befehl für ssh auf Windows server ausgeführt wird.
Mein shell-Skript unter:
#!/bin/bash
echo "script run"
GROUP=$1
ACCOUNT=$2
ssh Administrator@<Windowshostname>
sleep 10
echo "<pathtoscript>\scriptname.ps1 -group $GROUP -account $ACCOUNT"
sleep 5
echo "exit"
exit
Habe ich versucht, ohne den echo-Befehl auch, und es hängt noch. Keine Ahnung, was muss ich tun hier falsch? Wie kann ich es machen das bitte funktionieren?
ssh Administrator@Winhost "sleep 10; /path/to/script -group $GROUP -account $ACCOUNT"
InformationsquelleAutor Gaurav Kabra | 2016-03-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie keine ssh-Verbindung auf einem Windows-Rechner, es sei denn, Sie installieren ein SSH-daemon.
Sie haben zwei Optionen:
1 - Sie müssen eine Verbindung über Remote-PowerShell (WINRM).
2 - Installieren Sie den SSH daemon und eine Verbindung über SSH (Check hier)
3 - Sie können Sie auch PowerShell Web Access (Windows-Server.)
UPDATE: Wenn Sie mit PowerShellServer.com dann gibt es einige Dinge, die Sie tun können, um zu versuchen, mehr zu verstehen.
Test Skriptname ein.ps1 lokal in Windows Server
Bearbeiten Sie Ihre Skriptname ein.ps1 in der ersten Zeile erstellen Sie eine Datei irgendwo und nach der Ausführung überprüfen, ob eine Datei existiert. Auf diese Weise werden Sie wissen, wenn das script ausgeführt wird oder nicht.
Ausführen Get-ExecutionPolicy und überprüfen Sie die Skripts ausführen kann. Entfernen Sie Einschränkungen durch temporäre Set-ExecutionPolicy unrestricted"
Aber Windows standardmäßig nicht erlauben SSH. Was hast du installiert, Vanille Windows?
powershellserver.com
Sie Bearbeiten sollte Ihre Frage und fügen Sie diese Informationen als für Sie relevant ist.
Ich habe aktualisiert sich meine Antwort mit einigen Tipps...
InformationsquelleAutor Oscar Foley
Versucht, den Vorgang mit einem "expect" - Skript und es funktioniert alles gut jetzt.
InformationsquelleAutor Gaurav Kabra