0

我正在创建一个 powershell 脚本来收集有关桌面视频分辨率的信息,下面是代码的一部分。我遇到的问题是远程使用我的脚本。使用输入文件并连接到远程主机可以正常工作,但是使用“$ColsResolutions = [System.Windows.Forms.Screen]::AllScreens”从远程计算机而不是本地收集数据很麻烦。

如您所见,“Get-WmiObject -computername $Target”和类似的远程工作正常,但是如何将它与 AllScreens cmd 一起使用?就目前而言,该脚本运行良好,只是它收集本地 AllScreens 而不是远程主机。可能吗?

Write-Output "..Monitor Information"
$ColsMonitors = Get-WmiObject -computername $Target Win32_PnPEntity

Write-Output "..Video Information"
$ColsVideos = Get-WmiObject -computername $Target win32_videocontroller

Add-Type -AssemblyName System.Windows.Forms
$ColsResolutions = [System.Windows.Forms.Screen]::AllScreens

编辑: 请注意,我使用的是 AllScreens 而不是 Win32_DesktopMonitor,因为我的工作站包含多个具有不同分辨率的视频卡和显示器。我需要审核和检索所有显示器的信息。

4

1 回答 1

0

不,这是不可能的。Screen.AllScreens 没有远程版本,因此您需要使用 PowerShell 远程处理在远程计算机上调用该方法。如果您使用 PowerShell 远程处理,您最终会使用具有默认桌面的 PowerShell Windows 服务。这个桌面是不可见的,属于系统账号,没有真实的屏幕。因此,它根本不会给您想要的结果。也见这里

于 2013-07-26T19:58:25.563 回答