2017-10-02 10 views
0

スクリプトで問題が発生した場合は、常に自分のPCを再起動し、前述のIPやセッションは再起動しないという問題があります。行ごとに動作するはずですが、私は問題を見ていません。リモートでセッションを再起動するためのPowerShellスクリプトの問題

任意の提案が高く評価されています

#Security Policy 
Set-ExecutionPolicy -ExecutionPolicy Unrestricted 

#Adding the range of IP address for Trading network 
Set-Item -Path WSMan:\localhost\Client\TrustedHosts -value '10.22.*' 

#IP address of the target PC, hostnames doesn't seems to be working 
$targetpc = Read-Host "Please enter the IP Address of the target PC" 

New-PSSession $targetpc -Credential(Get-Credential) 

$sessionid = Read-Host "Please enter the session ID" 

Enter-PSSession -Id $sessionid 

Write-Host Test 

[string]$forcereboot = Read-Host "Would you like to force reboot the PC ? [y][n]" 

if ($forcereboot -eq "y") { 
    #Restart-Computer -Force 
    Stop-Process -Name "Notepad" 
} 

else { Exit-PSSession } 

答えて

2

ここRestart-Computerがローカルマシン自体で実行されます。

Enter-PSSessionは、対話型リモーティング用であり、スクリプトで使用することはできません。 リモートコンピュータを再起動するには、セッションを作成する必要はありません。リモートホストを再起動するには、Restart-Computerコマンドレットの-ComputerNameパラメータを使用します。

#Example 
Restart-Computer -ComputerName $Computer 

そして、あなたはまだこのためWSMANを使用したい場合は、あなたがInvoke-Command

Invoke-Command -Session $SessionObject { Restart-Computer -Force } 
とのセッションを使用することができます