随笔 - 24, 文章 - 0, 评论 - 1, 引用 - 0
数据加载中……

Powershell using StdRegProv, error 80070005

$cred = Get-Credential test\test
$computer 
= "." 
$
namespace = "root\DEFAULT" 
$HKLM 
= 2147483650
$oreg 
= get-wmiobject -list -namespace $namespace -ComputerName $computer -Credential $cred| where-object { $_.name -eq "StdRegProv" }
$strKeyPath 
= "SOFTWARE\Symantec\SharedDefs"
$strValueName 
= "DEFWATCH_10"
($oreg.GetStringValue($HKLM,$strKeyPath,$strValueName)).svalue

 

使用上面代码连接远程计算机,将收到返回 :

检索成员“GetStringValue”时发生异常:“拒绝访问。 (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))”
所在位置 行:1 字符: 57
+ ($oreg.GetStringValue($HKLM,$strKeyPath,$strValueName)).s <<<< value

而其他一些class均正常;若不使用凭据,在域环境中运行正常;若不使用凭据,工作组中运行正常(当然本机具有同样密码的相应账户);使用凭据,在本机建立同样密码的相应账户,同样正常。

 

不清楚是powershell对wmi支持不够好,还是某些新的补丁引起 ?目前是怀疑微软某个安全补丁引起,可能会在后续补丁中修复。

posted on 2009-04-15 10:28 nicktang 阅读(636) 评论(0)  编辑 收藏 引用 所属分类: Powershell

只有注册用户登录后才能发表评论。