我编写了一个 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 : 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。获取WmiObjectCommand*****
我尝试为其他 Windows 服务(Win32_Service)获取 WMI 对象,它工作正常。仅对于 IIS 对象,它会引发错误。
我已经按照某些论坛的建议,在命名空间(实际上是 Root 及其子命名空间)上提供了服务帐户、控制(执行方法、启用帐户、远程启用)。
我还将服务帐户添加为 IIS 管理器,但没有任何结果。