2013-07-26 46 views
0

我正在创建一个PowerShell脚本来收集有关桌面视频分辨率的信息,下面是代码的一部分。我遇到的问题是远程使用我的脚本。使用输入文件并连接到远程主机可以正常工作,但是使用“$ ColsResolutions = [System.Windows.Forms.Screen] :: AllScreens”从远程计算机而不是本地数据收集很麻烦。您可以看到“Get-WmiObject -computername $ Target”和simliar可以很好地远程工作,但是如何将它与AllScreens cmd一起使用?就目前来看,除了收集本地AllScreens而非远程主机外,该脚本完美运行。可能吗?通过Powershell远程收集[System.Windows.Forms.Screen] :: 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 

编辑: 请注意,我用的Win32_DesktopMonitor的AllSCreens insteasd因为我有一个包含多个视频卡&显示器分辨率不同的工作站。我需要审核并检索所有显示器的信息。

回答

0

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

相关问题