【问题标题】:Pull NT user ID from powershell从 powershell 中提取 NT 用户 ID
【发布时间】:2014-09-05 20:52:47
【问题描述】:
get-wmiobject -class win32_computersystem -computername c73118 | format-table username

将输出类似于:

username
--------
GHS_NTDOMAIN\amacor

是否可以只输出amacor部分?

【问题讨论】:

  • 总是有 %USERNAME% 环境变量,它只是用户名组件,没有域。
  • @MarcB 我非常擅长使用 powershell 和批处理脚本,但我不知道如何使用您的评论从远程计算机获取用户名。我认为可以安全地假设他正在查看远程计算机,因为他在 get-wmiobject 调用中指定了 -computername

标签: powershell windows-users get-wmiobject


【解决方案1】:

首先,我不认为你真的不想要 FT。请改用 Select -Expand。这样做我们得到了字符串GHS_NTDOMAIN\amacor。一旦你有了它,你可以用 .Split("\") 把它分成一个字符串数组,然后用 [-1] 指定数组中的最后一个字符串。所以它看起来像:

(get-wmiobject -class win32_computersystem -computername c73118 | Select -ExpandProperty username).Split("\")[-1]

这将导致:

amacor

或者如果你想更详细一点,你可以这样做:

$Data = get-wmiobject -class win32_computersystem -computername c73118
$DomainUser = $Data.Username
$UserName = $DomainUser.Split("\")[-1]

然后$UserName = "amacor"

编辑:根据 Andy Arismendi 的出色建议进行了更新。

【讨论】:

  • 如果没有机器/域名[-1] 在这两种情况下都可以使用。
  • @AndyArismendi 谢谢!我不知道我曾经像这样从最后迭代到一个数组,但我相信我现在知道我可以。我已更新我的答案以利用您的建议。
  • 我不知道你可以从这样的数组末尾开始。很整洁。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-19
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
  • 2021-11-09
  • 1970-01-01
相关资源
最近更新 更多