我已经多次使用 Get-ADUser 和 Get-ADComputer 来帮助解决系统中的问题。
我已经看到了几种通过注册表、PsLoggedon.exe和其他脚本来识别特定计算机上登录的用户的方法,但由于我不是真正的网络管理员,所以我经常被拒绝访问。这很好,因为我对深入挖掘并不是很感兴趣。
我所需要的只是以某种方式确定哪些用户在机器上拥有帐户(配置文件)(或哪些机器拥有用户帐户),这样我就可以在他们的 IP 地址出现异常时联系他们并帮助他们。
这两个开箱即用的对象之间绝对没有关系吗?
我已经多次使用 Get-ADUser 和 Get-ADComputer 来帮助解决系统中的问题。
我已经看到了几种通过注册表、PsLoggedon.exe和其他脚本来识别特定计算机上登录的用户的方法,但由于我不是真正的网络管理员,所以我经常被拒绝访问。这很好,因为我对深入挖掘并不是很感兴趣。
我所需要的只是以某种方式确定哪些用户在机器上拥有帐户(配置文件)(或哪些机器拥有用户帐户),这样我就可以在他们的 IP 地址出现异常时联系他们并帮助他们。
这两个开箱即用的对象之间绝对没有关系吗?
这些“开箱即用”的对象之间绝对没有关系。Windows 8 / Windows Server 2012 引入了“主计算机” Active Directory 架构属性的概念,但我非常怀疑您是否会发现正在使用它。
在远程机器上获取登录用户是其中之一,听起来应该很容易,但实际上并非如此。
我认为你将不得不从你的网络管理人员那里得到一些合作,才能可靠地得到你正在寻找的东西。通过“正常方式”(WMI 查询、远程注册表访问)远程查询登录用户信息
psloggedon
将要求您在远程计算机上具有本地管理员权限,或者对默认值进行更改以授予您的非管理员权限上下文是正确的。开始谈论“黑客”:我可以想象一个场景,您的异常处理程序尝试将用户的浏览器重定向到需要 NTLM 身份验证的页面,如果客户端配置为自动尝试使用登录用户的凭据进行身份验证,您可以通过这种方式“收获”凭证。我还可以看到网络管理人员如何将其严重误解为对用户的攻击,因此我强烈建议不要这样做。
大概您正在管理一个 web 应用程序,但不是网络管理人员的一部分。如果您可以让网络管理员购买将您的网络服务器加入域,您可以启用身份验证,此时您将知道远程用户的用户名,并且不必处理任何这些 IP 地址的东西。如果您的客户端配置正确,那么身份验证也可以透明地进行。
Windows 计算机上的现有配置文件列在以下注册表项中:
它包含每个用户配置文件的子密钥,每个子密钥的名称通过安全标识符标识相应的用户。
您可以通过枚举子键来“发现”用户配置文件并将所有用户 SID 转换为相应的帐户对象: