【问题标题】:Gather [System.Windows.Forms.Screen]::AllScreens via Powershell remotely通过 Powershell 远程收集 [System.Windows.Forms.Screen]::AllScreens
【发布时间】:2013-07-26 17:03:53
【问题描述】:

我正在创建一个 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,因为我的工作站包含多个具有不同分辨率的视频卡和显示器。而且我需要审核和检索所有显示器的信息。

【问题讨论】:

    标签: powershell wmi


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 2016-09-10
      • 2014-03-12
      • 2022-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多