2016-10-05 116 views
1

此代碼運行在本地完美的罰款:對象返回無輸出

$objAutoUpdate = New-Object -ComObject "Microsoft.Update.AutoUpdate" 
$objautoupdate.settings 

然而,這並不返回任何東西:

Invoke-Command -ComputerName qaildc01 -ScriptBlock { 

$objAutoUpdate = New-Object -ComObject "Microsoft.Update.AutoUpdate" 
$objautoupdate.settings 

} 

其實即使在使用時輸入-PSSession中運行以上object命令不返回任何內容。

回答

1

由於某種原因你沒有得到結果,但你沒有把這個原因返回給你。

讓我們調試吧:)

所以,首先..嘗試在遠程計算機上創建對象並獲取該對象的所有屬性後面

Invoke-Command -ComputerName MACHINENAME-HERE -ScriptBlock { 
    $PSAUObject = (New-Object -ComObject "Microsoft.Update.AutoUpdate") 
    $PSAUObject | Select * 
} 

你應該得到類似的東西:

Settings  : 
ServiceEnabled : 
Results  : System.__ComObject 
PSComputerName : MACHINENAME 
RunspaceId  : 3a951a05-9856-4ad2-8978-1b5827c42e32 

現在,你可能會得到的回報對象的所有可用的屬性,設置似乎是空的,但您將能夠訪問結果屬性 嘗試以下操作:

Invoke-Command -ComputerName MACHINENAME-HERE -ScriptBlock { 
    $PSAUObject = (New-Object -ComObject "Microsoft.Update.AutoUpdate") 
    $PSAUObject | Select -ExpandProperty "Results" 
    $PSAUObject | Select -ExpandProperty "Settings" 
} 

雖然試圖檢索設置屬性,我收到一個異常,可能是由於UAC

Exception getting "Settings": "Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))" 
+ CategoryInfo   : InvalidResult: (System.__ComObject:PSObject) [Select-Object], GetValueInvocationException 
+ FullyQualifiedErrorId : PropertyEvaluationExpand,Microsoft.PowerShell.Commands.SelectObjectCommand 

祝你好運:)

+0

這是一個很好的方向。雖然它不是UAC。我會給你進展的投票,但恐怕還不是一個完整的答案。 – JustAGuy