当powershell是“runas”不同的用户(也是不同的域)时,获取该用户的域,而不是登录用户(在localhost上)域

时间:2015-06-05 18:49:46

标签: powershell active-directory runas

我知道如何获取您在Windows上登录的用户的域名。那不是问题。 你可以用$env:USERDOMAIN(以及其他各种方式......)

来做到这一点

我的情况:

  • 我在D1Username下以DomainOne登录了Windows。
  • 我运行cmd并执行:runas /user:DomainTwo\D2Username /netonly powershell
  • 在此PowerShell会话中,我显然拥有D2Username的权限。
  • 当我执行$ env:USERDOMAIN时,我得到DomainOne,当我(我认为)时,我应该DomainTwo

如果有任何问题,我可以通过“runas”获取正在登录的用户的域名?

1 个答案:

答案 0 :(得分:1)

我没有资源来测试这个atm。,但这不正是/netonly参数的用途吗?

  

/ netonly:表示指定的用户信息适用于   仅限远程访问。

来源:Runas @ TechNet

$env:USERDOMAIN是本地变量/在本地进程内运行,因此它应该报告本地用户的域。但是,如果在远程处理另一台计算机时检查该变量,则runas凭据应用于网络身份验证(并且因为远程会话),并且它有望返回DomainTwo。尝试:

Invoke-Command { $env:USERDOMAIN } -ComputerName computer2.domainone.com

/netonly - 命令中删除runas应该会为您提供所需的输出。