2012-03-30 9 views
9

Ich bin eine Anwendung auf Linux-Rechner ausgeführt. Durch Angabe der IP-Adresse eines Windows-Rechners als Eingabe muss die Anwendung den Windows-Rechner herunterfahren. Wenn die Maschinen das gleiche Betriebssystem ausführen, ist es sehr einfach, aber ich bin verwirrt, wie man es in Cross-OS macht.Herunterfahren Windows-Maschine von Linux-Terminal

Antwort

15

Befehl zum Herunterfahren Windows-System von Linux -:

$ net rpc -S <ip address> -U <username>%<password> shutdown -t 1 -f

Dieser Befehl kann von bash oder sogar eingestellt in Cron-Job zum Herunterfahren ausgegeben werden der Computer zu einer bestimmten Zeit und dieser Befehl wird standardmäßig mit vielen Distributionen ausgeliefert.

+3

Und für einen Neustart, fügen Sie den '-r' Schalter am Ende. – mivk

+1

Sie müssen Windows und Linux richtig konfigurieren, damit diese Lösung funktioniert. Sehen Sie sich nouknouks Antwort an, wenn net Befehl nicht verfügbar ist oder wenn es nicht funktioniert – ndemou

0

Option 1: Installieren Sie den SSH-Server unter Windows. Melden Sie sich von jedem beliebigen Feld aus bei diesem Server an und rufen Sie den Befehl shutdown auf. Wir verwenden Interix (Microsofts Unix-ähnliche Umgebung). Es kommt mit einem Telnet-server- ermöglicht von anderen Maschinen-Befehle Fenster aufzurufen ..

Eine weitere Option: Wenn Sie Samba installiert Windows es Fenster verbinden und Fenster rufen Befehle

net rpc SHUTDOWN ... 

(von http://www.linuxforums.org/forum/red-hat-fedora-linux/60324-remote-shutdown-windows-linux-box.html#post573872)

Eine weitere Option: Versuch rdesktop auf den Windows-Rechner mit Befehl shutdown (ich benutze es für Windows-Batch-Skript ausgeführt, das Herunterfahren in ihm, nicht sicher, ob Sie direkt shutodwn)

nennen
1

Es hängt von Ihrer Infrastruktur ab - wie Sie sich an den Windows-Rechnern authentifizieren, ob Sie sie selbst konfigurieren können, usw. Wenn ich es wäre, würde ich Cygwin auf die Windows-Boxen setzen, dann ssh und shutdown -h ausführen. Natürlich gibt es andere Möglichkeiten, dies zu tun.

1

Sie benötigen eine Möglichkeit, eine Shell in der Windows-Box zu starten, damit Sie den in Windows integrierten Befehl shutdown ausführen können.

Sie können dazu Cygwin installieren und dann einen SSH-Daemon in Windows installieren. Sobald dies ausgeführt wird, kann Ihre Linux-Box Befehle auf der Windows-Box ausführen, als wäre es ein anderer Linux-Rechner.

Here are some instructions for setting up Cygwin's sshd in Windows.

-1

Verwenden telnet Befehl in Linux, stellen Sie sicher, telnet is enabled in Windows system

+0

WARNUNG: Dies ist fast immer eine schlechte Beratung. Ein Telnet-Server, der auf Ihrem Server läuft, ist fast immer eine schlechte Idee (wenn Sie in den letzten 20 Jahren unter einem Rock gestanden haben, beachten Sie, dass das Telnet-Protokoll Benutzernamen und Passwörter im Klartext über Ihr Netzwerk sendet). – ndemou

9

Es kann mehr Setup zu tun, vor allem für Windows Vista, Windows 7 und weitere Windows-Versionen, Fernabschaltung zu ermöglichen:

Teil A) auf der Windows-Maschine:

1) hinzufügen eine Fernabschaltung Sicherheitspolitik:

  • Lauf secpol.msc

  • im Programmbaum, offenen Security Settings>Local Policies>User rights Assignment

  • Suchen Sie den Eintrag Force shutdown from a remote system

  • Bearbeiten Sie den Eintrag, fügen Sie das Windows-Benutzerkonto, das für das Herunterfahren verwendet wird (zB: nouknouk)

2) Fügen Sie Registrierungsschlüssel UAC remote Einschränkungen zu deaktivieren:

  • Run regedit.exe als Administrator

  • Finden HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System

  • einen neuen Registrierungs DWORD(32) Wert LocalAccountTokenFilterPolicy Namen erstellen und dann den Wert 1

3) Starten Sie Remoteregistrierungsdienst zuweisen:

  • Ope n cmd.exe als Administrator

  • Execute die beiden folgenden Befehle:

    sc config RemoteRegistry start= auto

    sc start RemoteRegistry

Part B) auf dem Linux-Maschine:

1) installieren, die Paket samba-common:

Es hängt von Ihrer Linux-Distribution ab, aber für Debian und abgeleitet (Ubuntu, Linux Mint, ...), Der apt-get-Befehl kann so ausgeführt werden:

apt-get install samba-common

2) aus dem Linux ein, um tatsächlich Herunterfahren Ihres Windows-Rechners, den folgenden Befehl ausführen:

net rpc shutdown -f -t 0 -C 'message' -U userName%password -I xxx.yyy.zzz.ttt

Wo :

  • -f bedeutet Kraft alle Anwendungen herunterzufahren (obligatorisch sein)

  • -t 0 ist die Verzögerung, bevor Sie es tun (0 bedeutet 'gerade jetzt').

  • -U user%password ist der lokale Benutzer und sein Passwort auf der Windows-Maschine (die, die Remote-Shutdown in Teil A haben darf).

  • -I ist die IP-Adresse der Windows-Maschine zum Herunterfahren.

+1

Hallo, ich habe alles versucht, um diese Arbeit von meinem raspberrie pi 2 zu Windows 8 PC zu machen, aber ich kann den Fehler "Verbindung fehlgeschlagen: NT_STATUS_ACCESS_DENIED" nicht erhalten . – tfonias74