PowerShell执行whoami /user筛选SID返回空白如何解决
问题原因
whoami 是传统Windows控制台程序,输出内容为纯文本而非PowerShell结构化对象,直接使用Select-Object筛选不存在的对象属性自然返回空白结果。
可行实现方案
- 方案1(最推荐,原生PowerShell方法,直接返回纯SID字符串):
[System.Security.Principal.WindowsIdentity]::GetCurrent().User.Value
- 方案2(基于
whoami输出结构化处理):
指定whoami输出为CSV格式,转换为PowerShell对象后提取SID
whoami /user /fo csv | ConvertFrom-Csv | Select-Object -ExpandProperty SID
- 方案3(正则匹配提取):
直接从whoami的文本输出中匹配符合格式的SID字符串
(whoami /user) -match 'S-\d-(?:\d+-){1,14}\d+' | Out-Null; $matches[0]
内容的提问来源于stack exchange,提问作者SmartestVEGA
相关产品推荐
相关产品推荐

