powershell - 收集远程计算机上的登录用户名?

标签 powershell vbscript dsquery

我想以某种方式解决这一难题。我以前工作的公司破产了。在混乱中,许多用户带着公司的计算机离开了。

现在,他们不知道的是我们已经在每台计算机上安装了UAG。一种静默VPN解决方案,可与域 Controller 进行通信并通过AD中的计算机帐户进行身份验证。

因此,我想做的是运行某种试图与每台计算机联系并收集登录到该计算机的用户名的脚本。这将为我提供一种确定该计算机是否由在购买破产资源的公司中不工作的人使用的简便方法。

我已经运行dsquery来查找过去8周中不 Activity 的计算机。将列表与整个计算机列表进行比较,使我对当前正在使用的计算机有了一个很好的了解。我应该怎么做呢?

最佳答案

假设远程计算机在VPN接入时没有防火墙限制,则可以使用WMI调用来查询登录的用户:

@(Get-WmiObject -ComputerName remote-pc -Namespace root\cimv2 -Class Win32_ComputerSystem)[0].UserName;

如果要在计算机列表上迭代执行此操作,请执行以下操作:
$MachineList = Get-Content -Path c:\ListOfMachines.txt; # One system name per line
foreach ($Machine in $MachineList) {
    @(Get-WmiObject -ComputerName $Machine -Namespace root\cimv2 -Class Win32_ComputerSystem)[0].UserName;
}

关于powershell - 收集远程计算机上的登录用户名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11189964/

相关文章:

excel - 将每个工作表导出到单独的 csv 文件

vbscript - 多次 Dim 变量是否有害?

active-directory - 将逗号添加到 dsquery 输出

python - 将变量从 Powershell 传递到 Python

internet-explorer - 损坏的IE对象(带有Powershell的IE自动化)

Powershell System.__ComObject.document 属性在 IE 9 下不再有效

testing - 如何调用一个函数库函数到另一个函数库?

powershell - 尝试将变量传递到 [adsisearcher] 的问题

powershell - Active Directory 引用跟踪问题

powershell - 带有脚本 block 和正则表达式替换的奇怪Powershell行为