簡體   English   中英

從 linux 終端關閉 Windows 機器

[英]Shutdown Windows machine from linux terminal

我正在linux機器上運行一個應用程序。 通過將 Windows 機器的 IP 地址作為輸入,應用程序必須關閉 Windows 機器。 如果機器運行相同的操作系統,這很容易,但我很困惑如何在跨操作系統中做到這一點。

可能需要進行更多設置,特別是對於 Windows Vista、Windows 7 和更多 Windows 版本,以允許遠程關機:

A 部分)在 Windows 機器上:

1) 添加遠程關機安全策略:

  • 運行secpol.msc

  • 在程序樹中,打開Security Settings > Local Policies > User rights Assignment

  • 找到條目Force shutdown from a remote system

  • 編輯條目,添加將用於關機的 Windows 用戶帳戶(例如:nouknouk)

2) 添加注冊表項以禁用 UAC 遠程限制:

  • 以管理員身份運行regedit.exe

  • 查找HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System

  • 創建一個名為LocalAccountTokenFilterPolicy的新注冊表DWORD(32)值,然后為其分配值1

3) 啟動遠程注冊服務:

  • 以管理員身份打開cmd.exe

  • 執行以下兩條命令:

    sc config RemoteRegistry start= auto

    sc start RemoteRegistry

B 部分)在 Linux 機器上:

1) 安裝包samba-common

這取決於您的 Linux 發行版,但對於 Debian 和衍生版本(Ubuntu、Linux Mint 等),apt-get 命令可以這樣執行:

apt-get install samba-common

2) 要從 Linux 中實際關閉您的 Windows 機器,請運行以下命令:

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

在哪里:

  • -f表示強制關閉所有應用程序(可能是強制性的)

  • -t 0是做之前的延遲(0 表示“現在”)。

  • -U user%password是windows機器上的本地用戶和他的密碼(A部分允許遠程關機的那個)。

  • -I是要關機的 windows 機器的 IP 地址。

從 linux 關閉 windows 系統的命令 -:

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

此命令可以從 bash 發出,甚至可以在 cron 作業中設置以在特定時間關閉計算機,默認情況下,此命令隨許多發行版一起提供。

重要的是要注意,如果有問題的用戶名沒有設置密碼,則上述解決方案將不起作用(至少在我的情況下是這樣)。

對於 Windows 10(可能以及以下版本,未檢查)用戶,必須轉到防火牆設置並啟用“遠程服務管理”以使 linux 框能夠通過 rpc 進行連接。

要查找您的實際 Windows 用戶名,請打開 cmd 並運行

echo %username%

這是您必須在 net rpc 命令中使用的用戶名(不區分大小寫)

這取決於你的基礎設施——你如何對 Windows 機器進行身份驗證,你是否可以自己配置它們,等等。如果是我,我會把Cygwin放在 Windows 機器上,然后ssh到它們並運行shutdown -h 當然,肯定還有其他方法可以做到。

您需要一種在 Windows 機器上啟動 shell 的方法,以便您可以運行 Windows 內置的關機命令。

您可以為此安裝Cygwin ,然后在 Windows 中安裝 SSH 守護程序。 一旦運行,您的 Linux 機器就可以在 Windows 機器上運行命令,就像它是另一台 Linux 機器一樣。

以下是在 Windows 中設置 Cygwin 的 sshd 的一些說明

對於 Windows 10,請安裝 openssh-server 在之后。

nouknouk在此線程之后設置了權限。

它應該由

ssh username@host 'shutdown /p'

選項 1:在 Windows 上安裝 SSH 服務器。 從任何盒子登錄到此服務器並調用關閉命令。 我們使用 Interix(微軟的類 unix 環境)。 它帶有一個 telnet 服務器 - 允許從其他機器調用 Windows 命令..

另一種選擇:如果您在 windows 上安裝了 samba,它可以連接到 windows 並調用 windows 命令

 net rpc SHUTDOWN ...

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

另一種選擇:使用shutdown命令嘗試rdesktop到windows機器(我用它來運行windows批處理腳本,里面有shutdown,不確定你是否可以直接調用shutodwn)

Linux使用telnet命令,確保telnet is enabled in Windows system

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM