powershell - 如何使用 'query user' 获取事件用户用户名

标签 powershell scripting

我将在用户框上运行脚本,该脚本在远程服务器上执行某些操作。但是,用户将无权访问服务器,因此我将以具有权限的不同用户身份运行脚本。

我遇到的困难是我需要获取登录用户(盒子用户)的用户名和域以传递给服务器。有各种命令可以获取我需要的数据,但是当以不同用户身份运行 PowerShell ISE 时,它们都会返回用户数据而不是登录用户数据。

我说的一些命令:

[System.Security.Principal.WindowsIdentity]::GetCurrent().Name
$env:USERNAME
$env:USERDOMAIN
$(whoami)

唯一似乎按照我想要的方式工作的是:

query user

这将返回以下格式:

USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME
>user1                sessionName         4  Active          .  6/22/2017 2:56 PM

我的两个问题是:

  1. 是否也可以通过这种方式获取域名?我在运行此命令时没有看到它。
  2. 有没有办法从查询用户中获取用户名? “事件”用户名的具体情况如何?

最佳答案

查询活跃用户:

query user | Select-String '^>(\w+)' | ForEach-Object { $_.Matches[0].Groups[1].Value }

这取决于不包含空格的用户名。将 /server 参数添加到 query 命令以查询远程计算机。

关于powershell - 如何使用 'query user' 获取事件用户用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44784137/

相关文章:

powershell - Powershell Net-Cookie到期

javascript - 如何使用SystemWorker执行PowerShell命令?

powershell - 如何将未知文件名重命名为新文件名

powershell - 在 Powershell 中将管道分隔文件更改为逗号分隔

C# 代码提供程序 : Add reference to XNA?

powershell - 带有删除选项的 Curl 命令引发异常

c++ - 如何在 QlikView 中制作自定义数据源?

python - 使用 VB 或 python 编写 OpenOffice 表单脚本

java - 使用变量 'values' 在 KornShell 中定义变量 'names'

Ruby 特性及其在编写脚本时的优势