PowerShell 技能连载 - 标识本地管理员帐户的名称
有时,PowerShell 脚本需要访问或使用内置的 Administrator 帐户或内置的 Administrators组。不幸的是,它们的名称已本地化,因此它们的名称可以根据 Windows 操作系统的语言进行更改。
但是,它们确实使用了恒定的(众所周知的)SID(安全标识符)。通过使用 SID,您可以获得名称。对于本地 Administrator组,这很简单,因为 SID 始终是已知的:S-1-5-32-544。使用一行代码,可以翻译 SID。这是从德文系统获得的结果:
1 | PS> ([Security.Principal.SecurityIdentifier]'S-1-5-32-544').Translate([System.Security.Principal.NTAccount]).Value |
使用内置管理员等帐户,就不那么简单了。在此,只有 RID(相对标识符)是已知的:-500。
通过简单的WMI查询,您将获得与过滤器匹配的帐户:
1 | PS> Get-CimInstance -ClassName Win32_UserAccount -Filter "LocalAccount = TRUE and SID like 'S-1-5-%-500'" |
PowerShell 技能连载 - 标识本地管理员帐户的名称
http://blog.vichamp.com/2020/12/24/identifying-name-of-local-administrator-account/