【发布时间】:2013-11-16 15:29:52
【问题描述】:
我正在为 SCOM 2012 SP1 定制一个管理包,其中有一个监视器。 该监视器基于 Microsoft.Windows.PowerShellTriggerOnlyProbe 模块和 WMI 对远程非域服务器的 powershell 脚本查询。此脚本应检查远程服务器上的特定进程。
Сorresponding 部分脚本:
$user = "username"
$password = ConvertTo-SecureString "password" -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $user,$password
try {
Get-WmiObject win32_Process -Impersonation Impersonate -Authentication Packet -credential $cred -ComputerName "$serverIP" | Select Name | Where-Object {$_.Name -eq "$Process"}
}
Catch {
$ErrorMSG = $_.Exception.Message.ToString()
}
脚本工作完美,当我从 SCOM 的操作帐户下的 powershell 控制台运行它时,但是当我将它导入 ManagementPack 时,我收到此错误:"Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))" in $ErrorMSG。
在远程服务器上使用了本地管理员凭据。
远程服务器上没有 powershell,所以我不能使用 powershell 远程处理,唯一的方法是使用 WMI。 请帮忙!
【问题讨论】:
-
msdn.microsoft.com/en-us/library/aa394603%28v=vs.85%29.aspx 提供了一些解决 WMI 问题的技巧。
-
已经阅读了这个和类似的主题,但没有找到任何可以帮助我的东西:(。–E_ACCESS_DENIED 表示用户无法通过 DCOM 远程访问计算机,但使用过的帐户实际上有,它可以在 powershell 控制台上运行。
标签: powershell wmi scom