WMI 查询,从远程服务器获取本地信息(用于 BgInfo)

WMI 查询,从远程服务器获取本地信息(用于 BgInfo)

我在用着背景信息在用户通过 RDP 远程连接的 Windows 服务器上。BgInfo 允许您根据 WMI 查询创建自定义元素。我想显示用户的本地主机名或 IP 地址。是否有包含远程连接用户的本地主机名的 WMI 类?否则,BgInfo 中是否有另一种单步方式来获取此信息?

答案1

这不是 WMI 解决方案,但更简单,如果您在通过 RDP 连接时在服务器上运行以下脚本,您将获得通过 RDP 连接的远程计算机的主机名

@echo off

echo %CLIENTNAME%

exit

由于允许使用自定义字段,因此您实际上不需要任何脚本bginfo。转到自定义字段->添加新字段并选择Environment variable并添加变量 =CLIENTNAME

答案2

据我所知,WMI 无法做到这一点。您需要使用 Win32 API(例如在 PowerShell 中),然后直接调用 WTSQuerySessionInformation 函数 在里面找到wtsapi32.dll,使用以下参数:

hServer = WTS_CURRENT_SERVER_HANDLE (null or 0)
SessionId = WTS_CURRENT_SESSION (-1)

WTSQuerySessionInformation 您可以在此处找到用于调用的 PowerShell 工作示例 serverfault 答案,它应该可以帮助您入门。

您要检索的项目WTSClientName来自 _WTS_INFO_CLASS 枚举,包含“包含客户端名称的以空字符结尾的字符串”,即客户端计算机的名称。如何获取,上面的示例也演示了。

相关内容