Session $env:Username在PowerShell中如何工作?

Session $env:Username在PowerShell中如何工作?,session,powershell,scripting,scripting-language,Session,Powershell,Scripting,Scripting Language,在前面的一个问题中,有人告诉我: $env:Username allways指的是已创建powershell会话的用户,而不是当前登录的用户 但是,当前登录的用户不总是创建powershell会话的用户吗 我想我的问题是,你能给我描述一两个场景吗?用户X正在为当前登录的用户Y创建powershell会话 另外,我想我不理解会话的概念。如果右键单击ps1文件并选择“使用powershell运行”,则谁在创建该会话?当前登录的用户,还是脚本的创建者 如果我有一个在登录时运行的.bat文件,并调用ps

在前面的一个问题中,有人告诉我:

$env:Username allways指的是已创建powershell会话的用户,而不是当前登录的用户

但是,当前登录的用户不总是创建powershell会话的用户吗

我想我的问题是,你能给我描述一两个场景吗?用户X正在为当前登录的用户Y创建powershell会话

另外,我想我不理解会话的概念。如果右键单击ps1文件并选择“使用powershell运行”,则谁在创建该会话?当前登录的用户,还是脚本的创建者

如果我有一个在登录时运行的.bat文件,并调用ps1文件,那么谁是该powershell会话的创建者


非常感谢您提供的任何帮助

它以powershell当前运行的用户身份运行,即使它与登录用户不同

PS C:\Windows\system32> $env:username
jasonw

PS C:\Windows\system32> Start-Process powershell.exe -Credential "domain\admin.jasonw" -NoNewWindow -ArgumentList "Start-Process powershell.exe -Verb runAs"
[This opens new window running PS as the user]

PS C:\Windows\system32> $env:username
admin.jasonw

当前登录的用户不总是创建powershell会话的用户吗?否,因为可能有人使用备用凭据启动了powershell.exe进程。此外,远程会话在大多数情况下是使用其他帐户启动的,而不是使用计算机的帐户