2016-10-05 79 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