获取非管理员帐户的IIS应用程序池WMI对象

时间:2017-07-24 08:28:01

标签: powershell iis-7.5 get-wmiobject

我写了一个powershell脚本来停止和启动Windows Server 2008计算机上的IIS应用程序池。 IIS版本是7.5

我在计算机上拥有管理员权限,当我运行它时脚本运行正常。但是,当我使用非管理员服务帐户触发相同的脚本时,它会失败。

触发器来自CA Release Automation工具,代理程序在具有服务帐户的计算机上配置。以下是我被卡住的命令。

gwmi -Namespace root\webAdministration -class ApplicationPool -Authentication PacketPrivacy | Where-Object { $_.Name -eq "siteURL" }

错误:

  

***** Get-WmiObject:提供程序加载失败在C:\ Users \ SVC_DEV_APP \ AppData \ Local \ Temp \ tempz_891958570065876740601304.ps1:2   char:5
+ gwmi<<<< -Namespace root \ webAdministration -class   ApplicationPool
+ CategoryInfo:InvalidOperation:(:)   [Get-WmiObject],ManagementException
+ FullyQualifiedErrorId:   GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand   Get-WmiObject:提供程序加载失败At   C:\用户\ SVC_DEV_APP \应用程序数据\本地的\ Temp \ tempz_891958570065876740601304.ps1:2   char:5
+ gwmi<<<< -Namespace root \ webAdministration -class   ApplicationPool + CategoryInfo:InvalidOperation:(:)   [Get-WmiObject],ManagementException
+ FullyQualifiedErrorId:   GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand *****

我试过为其他Windows服务(Win32_Service)获取WMI对象,但它运行正常。只有IIS对象才会抛出错误。

我已根据某些论坛的建议,在命名空间(实际上是Root及其子命名空间)上提供了服务帐户,控制(执行方法,启用帐户,远程启用)。

我还将服务帐户添加为IIS管理器,但没有任何结果。

1 个答案:

答案 0 :(得分:0)

我认为你正在碰到UAC。不幸的是,UAC影响了WMI。

如何解决: https://msdn.microsoft.com/en-us/library/aa826699(v=vs.85).aspx