輸出

2017-03-08 27 views
0

我有以下腳本塊:輸出

$scriptblock = { 
       $regpath = "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" 
       $securitylayer = Get-ItemProperty -Path $regpath -Name SecurityLayer -ErrorAction SilentlyContinue 

       If (!($securitylayer) -or ($securitylayer.securitylayer -ne '0')) { 
        Write-Host -ForegroundColor Yellow "Regkey not present or value not 0. Creating/setting to 0" 
        #Commented out for testing purposes 
        #Set-ItemProperty -Path $regpath -Name SecurityLayer -Value 0 
        } 
       Else {Write-Host -ForegroundColor green "Regkey present and set to 0. Skipping."} 
       } 

,我傳遞給PSSession中運行Server 2003 SP2的遠程計算機上:

$computername = 'computer' 
$pssession = New-PSSession -ComputerName $computername -Name $computername 
Invoke-Command -Session $pssession -ScriptBlock {$scriptblock} 

但我不看到任何輸出。

我也試過

寫輸出

,但仍然沒有看到任何輸出。

我看到了另一篇文章,暗示執行以下操作,返回但是什麼:

$scriptblock = { 
        $regpath = "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" 
        $securitylayer = Get-ItemProperty -Path $regpath -Name SecurityLayer -ErrorAction SilentlyContinue 

        If (!($securitylayer) -or ($securitylayer.securitylayer -ne '0')) { 
        new-object pscustomobject –property @{Result = "Regkey not present or value not 0. Creating/setting to 0"} 
        #Commented out for testing purposes 
        #Set-ItemProperty -Path $regpath -Name SecurityLayer -Value 0 
         } 
        Else {new-object pscustomobject –property @{Result = "Regkey present and set to 0. Skipping."}} 
       } 

$computername = 'computer' 
$pssession = New-PSSession -ComputerName $computername -Name $computername 
$results = Invoke-Command -Session $pssession -ScriptBlock {$scriptblock} 

$results.result 

代碼運行正常時,機器上運行。

回答

3

你包裹在一個腳本塊的腳本塊,所以它不是真正執行腳本塊。剛剛從{$scriptblock}周圍刪除{}

Invoke-Command -Session $pssession -ScriptBlock $scriptblock 
+0

無法相信我忽視了,謝謝! – J1raya