4

我正在尝试查找在服务器上卸载程序的用户。这是我正在使用的脚本和结果。从事件查看器中,我可以看到用户,但看起来 Get-WinEvent 返回 UserId 但没有用户名。有没有办法从 Get-WinEvent 返回事件 1034 的用户名?

Get-WinEvent -FilterHashtable @{LogName='Application'; Id=1034} -MaxEvents 1 | format-list

TimeCreated  : 6/17/2013 1:41:27 PM
ProviderName : MsiInstaller
Id           : 1034
Message      : Windows Installer removed the product. Product Name: PAL. Product Version: 2.3.2. Product Language:
           1033. Manufacturer: PAL. Removal success or error status: 0.
4

1 回答 1

7

使用 .NET 的SecurityIdentifier如此处所述

Get-WinEvent -MaxEvents 1000 | foreach {
  $sid = $_.userid;
  if($sid -eq $null) { return; }
  $objSID = New-Object System.Security.Principal.SecurityIdentifier($sid);
  $objUser = $objSID.Translate([System.Security.Principal.NTAccount]);
  Write-Host $objUser.Value;
}

对于非空用户 ID,我能够成功识别用户名。

于 2013-06-17T19:44:16.460 回答