При выполнении любой команды Set-WMIInstance powershell от имени пользователя домена я получаю эту ошибку.
CategoryInfo: InvalidOperation: (:) [Set-WmiInstance], COMException
FullyQualifiedErrorId: SetWMICOMException, Microsoft.PowerShell.Commands.SetWmiInstance
Это интересно, потому что, когда я использовал эту команду около года назад, все работало отлично. Год назад я вытащил тот же исходный код из github, и теперь он не запускается.
У меня возникла проблема, связанная с тем, что Set-WMIInstance работает как локальный пользователь в экземпляре PowerShell с повышенными правами на многих компьютерах и не работает как пользователь домена, использующий экземпляр PowerShell с повышенными правами на многих компьютерах.
######Code that generates the error
$computer = $env:COMPUTERNAME
$filterNS = "root\cimv2"
$wmiNS = "root\subscription"
$query = "SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_LogicalDisk' AND TargetInstance.DriveType=2"
$filterName = "USB Whitelist Filter"
$consumerName = "USB Whitelist Consumer"
$scriptFileName = "C:\scripts\LaunchPowerShell.vbs"
# This is where the WMI filter is registered
$filterPath = Set-WmiInstance -Class __EventFilter `
-ComputerName $computer -Namespace $wmiNS -Arguments `
@{name=$filterName; EventNameSpace=$filterNS; QueryLanguage="WQL";
Query=$query}
#####Error observed
writeErrorStream : True
PSMessageDetails :
Exception : System.Runtime.InteropServices.COMException (0x80042003)
at
System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32
errorCode, IntPtr errorInfo)
at System.Management.ManagementObject.Put(PutOptions options)
at Microsoft.PowerShell.Commands.SetWmiInstance.ProcessRecord()
TargetObject :
CategoryInfo : InvalidOperation: (:) [Set-WmiInstance], COMException
FullyQualifiedErrorId : SetWMICOMException,Microsoft.PowerShell.Commands.SetWmiInstance
ErrorDetails :
InvocationInfo : System.Management.Automation.InvocationInfo
ScriptStackTrace : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo : {0, 1}
Я ожидал, что команда Set-WMIInstance будет работать как пользователь домена.