Powershell 是否使用powerhsell更改远程计算机的鼠标位置?

Powershell 是否使用powerhsell更改远程计算机的鼠标位置?,powershell,powershell-3.0,invoke-command,Powershell,Powershell 3.0,Invoke Command,我正在编写一个脚本来更改远程计算机鼠标的位置。一台或多台计算机位于同一LAN上,并且每个GPO都启用了远程PS会话/命令 我让它在我的电脑上工作,但当我尝试远程运行它时,它不会移动鼠标 Invoke-Command -computername remote computer -ScriptBlock { while($true) { $rand = Get-Random -Maximum 5 -Minimum -5 $a = [windows.forms.cursor]::Posi

我正在编写一个脚本来更改远程计算机鼠标的位置。一台或多台计算机位于同一LAN上,并且每个GPO都启用了远程PS会话/命令

我让它在我的电脑上工作,但当我尝试远程运行它时,它不会移动鼠标

    Invoke-Command -computername remote computer -ScriptBlock
{
while($true)
{
$rand = Get-Random -Maximum 5 -Minimum -5
   $a = [windows.forms.cursor]::Position.y + $rand
   $b = [windows.forms.cursor]::Position.x + $rand

   [Windows.Forms.Cursor]::Position = "$b, $a"

  Start-sleep -s .5

   $rand = Get-Random -Maximum 5 -Minimum -5
   $a = [windows.forms.cursor]::Position.y - $rand
   $b = [windows.forms.cursor]::Position.x - $rand

  [Windows.Forms.Cursor]::Position = "$b, $a"

   Start-sleep -s .5
}
}

我感觉它可能与system.windows.forms程序集有关,但我不确定是否有解决方案。

在远程会话中,这是不可能的,因为您的会话没有可操作的GUI/句柄

在主机上运行的本地计算机上,您有一个GUI和句柄,因此对System.Windows.Forms/Cursor的调用可以正常工作

如果你真的想这样做,你可以把它包装成一个脚本,然后用一个工具来执行它,这个工具允许你与桌面交互

看看PSExec,其中包含用于交互的“-i”参数


AFAIK这在PowerShell中根本不可能实现。这样一个脚本的目的是什么?当您远程运行命令时,PowerShell没有与GUI和所有内容的完整登录会话,因此没有鼠标可操作。对于PS来说,这也是一件很奇怪的事情,对于你想做的事情,可能有更好的解决方案。那你为什么不告诉我们呢?剧本中的目标是随机移动,所以我可以让它工作。但最终目标是更好地理解在远程计算机上使用外围设备,以及它在这类事情上的工作效果。在我的工作中,我们有各种各样的外部配件,在尝试使用它们调整设置和移动之前,我想使用一些看似简单的东西,比如鼠标。