通過Windows PowerShell遠程管理計算機(精簡版)


現在你手中有一台server(主控端),你打算通過主控端遠程管理多台server(被控端)。這個過程可以通過Windows PowerShell來完成。

首先在被控端上以管理員權限打開PowerShell,輸入以下命令(其中XXX是IP中的字段,TrustedHosts填寫的是主控端的IP地址。):

winrm s winrm/config/client '@{TrustedHosts="XXX.XXX.XXX.XXX"}'

然后在主控端上以管理員權限打開PowerShell,輸入以下命令(其中“XXX.XXX.XXX.XXX”為被控端的IP地址,“domain\userName”為被控端機器的登陸用戶。):

$session = New-PSSession XXX.XXX.XXX.XXX -Credential domain\userName

輸入完這條命令后按回車,會讓你驗證被控端登陸用戶的密碼,輸入后按回車——Session創建成功。

之后我們就可以通過$session變量來對遠程計算機(被控端)進行操控了。

例如:我們想要遠程重啟這台計算機,只需要在主控端的PowerShell窗口中繼續輸入:

icm $session {cmd.exe /c shutdown /r /f /t 1}

輸入完畢按回車,這時被控端的機器就已經被重啟了。

我將上述主控端的過程進行了封裝,封裝后的方法為:

function ShutDownRemoteComputers
{
    param($ip,$userName)
    #winrm s winrm/config/client '@{TrustedHosts=10.1.23.60"}'
    $sen = "'@{TrustedHosts=`""+$ip+"`"}'"
    winrm s winrm/config/client $sen
    $session = New-PSSession $ip -Credential $userName
    icm $session {cmd.exe /c shutdown /r /f /t 1}
}

從此主控端操控被控端只需要如下語句:

ShutDownRemoteComputers -ip XXX.XXX.XXX.XXX -userName domain\userName

唯一比較麻煩的就是執行完上面的語句后,你需要對相應的“domain\userName”進行Password驗證:

對於有密碼驗證的情況,下面方法可以自動完成密碼驗證這一過程:

function ShutDownRemoteComputers
{
    param($ip,$user,$pwd)
    #winrm s winrm/config/client '@{TrustedHosts=10.1.23.60"}'
    $sen = "'@{TrustedHosts=`""+$ip+"`"}'"
    winrm s winrm/config/client $sen
    $pw = convertto-securestring -AsPlainText -Force -String $pwd
    $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $user,$pw
    $session = New-PSSession $ip -Credential $cred
    icm $session {shutdown -s -t 0}
}

感謝園友的幫助

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM