使用PowerShell遠程連接WinServer


最近做一個項目后台,涉及到多台服務器,當程序更新的時候,由於用的是WinServer,無法像Linux使用SSH批量更新,用Windows的mstsc的遠程一個一個連接又太麻煩了。查找了一下資料,發現可以使用Windows系統自帶的PowerShell連接的遠程機子。

首先在服務端,打開PowerShell管理員窗口,輸入以下指令開啟允許遠程訪問:

Enable-PSRemoting

然后在客戶端也開啟允許訪問,由於我這邊使用的專用網絡,使用以下腳本跳過網絡限制:

Enable-PSRemoting -SkipNetworkProfileCheck -force

設置信任IP,其中*可更換為任一ip,如果為*即全部IP:

Set-Item WSMan:\localhost\Client\TrustedHosts -Value * -Force 

客戶端設置允許使用腳本:

set-ExecutionPolicy RemoteSigned

可以查看WinRm是否開啟成功:

winrm enumerate winrm/config/listener

使用以下腳本遠程連接到服務器操作:

$uname="administrator" #administrator為用戶名

$pwd=ConvertTo-SecureString "123456" -AsPlainText -Force; #123456為密碼

$cred=New-Object System.Management.Automation.PSCredential($uname,$pwd); #創建自動認證對象

$servers="IP" #IP地址

Enter-PSSession -ComputerName $servers -Credential $cred #登錄

如果要批量更新,則不需要連接到遠程機子上,只需要給遠程機發送指令,讓遠程機自動執行即可:

$uname="administrator" #administrator為用戶名

$pwd=ConvertTo-SecureString "123456" -AsPlainText -Force; #123456為密碼

$cred=New-Object System.Management.Automation.PSCredential($uname,$pwd); #創建自動認證對象

$servers="IP" #IP地址

Invoke-Command -ComputerName $servers -credential $cred -ErrorAction Stop -ScriptBlock {Invoke-Expression -Command "& `"D:\lwccRelease\tools\AutoUpdate\Auto.bat`" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode"} #執行的命令


免責聲明!

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



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