我在用着背景信息在用户通过 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 枚举,包含“包含客户端名称的以空字符结尾的字符串”,即客户端计算机的名称。如何获取,上面的示例也演示了。