2017-03-07 28 views
0

我試圖遠程調用服務器上的命令,並將其更改爲IP以及其他設置。我得到了下面的代碼行:使用Powershell更改遠程服務器的IP會導致斷開連接錯誤

Invoke-Command -ComputerName $currentIP {` 
$wmi = Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "ipenabled = 'true'";` 
$wmi.SetDNSServerSearchOrder($DNSServers);` 
$wmi.SetGateways($Defaultgateway);` 
$wmi.EnableStatic($newIP,"255.255.255.0")} -Credential $cred 

每一個設定值,但在腳本結束它開始去:。

的網絡連接### ## ### ##已被中斷。試圖重新連接長達4分鐘...

並繼續失敗的連接,顯然是因爲IP已經改變。但是在IP更改之後,我發出了更多命令嗎?那麼爲什麼會發生這種情況,我該如何阻止它呢?

+2

好吧,IP HAS CHANGED。你能指望什麼??? – 4c74356b41

+0

由於IP更改發生在發送到遠程服務器的最後一個命令上。更改IP後,我希望它關閉連接。不要中斷它。 –

+0

Powershell如何知道?它不會那樣工作。連接會下降,因爲Powershell不會期望IP發生變化。 – 4c74356b41

回答

4

你們看到的是預期的行爲爲WinRM的不知道正在更改IP和ScriptBlock執行過程中導致連接的IP變化中斷

流暢關閉連接,你可以Invoke-Command使用-AsJob運行參數,以便它不會被打斷,例如:

invoke-command -ComputerName 192.168.56.103 -Credential administrator -AsJob -ScriptBlock {$wmi = Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "ipenabled = 'true'";$wmi.SetDNSServerSearchOrder("8.8.8.8");$wmi.SetGateways("1.1.1.1");$wmi.EnableStatic("192.168.56.104","255.255.255.0")} 
相關問題