PowerShell从系统获取用户名

PowerShell从系统获取用户名,powershell,Powershell,我使用工具登录到远程PC。我在远程PC中的所有操作都将由系统执行 我的工具可以执行批处理和PS脚本 如果我运行(获取WMIObject-class Win32\u ComputerSystem |选择用户名)。用户名 是的,输出是正确的 如果我运行whoami,则输出为PC01$nt authority\system 如果运行$env:ComputerName,则输出为 PC01 如果运行$env:UserName,则输出为 PC01$ 你能帮我解释一下这种情况是怎么发生的吗?为什么$env:U

我使用工具登录到远程PC。我在远程PC中的所有操作都将由系统执行

我的工具可以执行批处理和PS脚本

如果我运行
(获取WMIObject-class Win32\u ComputerSystem |选择用户名)。用户名
是的,输出是正确的

如果我运行
whoami
,则输出为PC01$nt authority\system

如果运行
$env:ComputerName
,则输出为 PC01

如果运行
$env:UserName
,则输出为 PC01$


你能帮我解释一下这种情况是怎么发生的吗?为什么$env:UserName无法解析有效用户名?

PowerShell始终在启动它的用户的用户上下文中运行。因此,任何$env都将与其关联。如果您作为系统(环0)运行,并试图获取当前登录的用户(环1),则由于指定的原因,您所做的操作将不起作用。通过事件日志、注册表或作为登录用户在目标上运行的其他进程,或者使用目标上的其他工具,还有其他方法来确定登录用户。这些选项在网络和Youtube视频中都有详细的记录。请参阅以下指针:PowerShell始终在启动它的用户的用户上下文中运行。因此,任何$env都将与其关联。如果您作为系统(环0)运行,并试图获取当前登录的用户(环1),则由于指定的原因,您所做的操作将不起作用。通过事件日志、注册表或作为登录用户在目标上运行的其他进程,或者使用目标上的其他工具,还有其他方法来确定登录用户。这些选项在网络和Youtube视频中都有详细的记录。请参见以下指针: