我遇到了同样的错误:
http://forums.iis.net/p/1033115/1700749.aspx
我有一个PowerShell cmdlet,它试图控制在Windows Server 2008 SP2和IIS 7上运行的Web应用程序。它尝试做的第一件事就是尝试使用WMI连接到远程计算机。它使用如下代码执行此操作:
ConnectionOptions connection = new ConnectionOptions();
connection.Authentication = AuthenticationLevel.PacketPrivacy;
this.iisScope = new ManagementScope(@"\\" + this.Name + @"\root\WebAdministration", connection);
this.iisScope.Connect();
this.Name是服务器名称。此代码始终有效(不会引发异常),但在远程计算机上,我在Windows事件日志中出现此错误:
访问root \ WebAdministration 命名空间被拒绝,因为 命名空间标有 需要加密,但脚本或 应用程序试图连接到 这个名称空间带有身份验证 等级低于Pkt_Privacy。改变 认证级别为Pkt_Privacy 并运行脚本或应用程序 试。
但是当cmdlet继续运行时,它会使用this.iisScope进行一些查询,并且它们都会成功,并且再也看不到该错误。我猜测发生了什么,但我不确定如何证明它。我认为它试图连接没有数据包隐私,失败,然后尝试使用数据包隐私。我试图用Wireshark嗅探数据包,但这并没有告诉我任何有用的东西。
答案 0 :(得分:0)
请参阅本文中的代码:http://learn.iis.net/page.aspx/160/writing-powershell-commandlets-for-iis-70/。 您还可以安装PowerShell v2并使用get-wmiobject等。 - 他们在此版本中修复了这些cmdlet,现在您可以连接到需要加密连接的提供程序,例如IIS WMI提供程序。