c# - 远程调用时 Powershell SendKeys 访问被拒绝

标签 c# powershell remote-access sendkeys sendinput

我正在测试一个监听远程计算机上按键的程序,因此我需要以某种方式生成它们,并且最好仅使用 powershell 核心。

当我尝试通过调用命令在远程计算机上使用 SendKeys 时,我遇到了访问被拒绝(win32 异常或 dotnetmethod 异常)的问题,即使向具有管理员权限的脚本提供了凭据并且它在本地运行良好。

我以这种方式运行许多脚本,而这个脚本是唯一失败的脚本(并且在所有操作系统上都以相同的方式失败)

例如

$script =
{    
    Add-Type -AssemblyName System.Windows.Forms
    [System.Windows.Forms.SendKeys]::SendWait($item);
}

invoke-command -computername $machine -scriptblock $script -credential $cred

SendInput 看起来可能是一个有前途的替代品,但我还没有找到适合我的示例。

最佳答案

事实证明,问题是由于无法访问 Windows 用户 session 造成的。

我通过在远程计算机上创建计划任务并调用 powershell 脚本来解决这个问题。这样脚本就可以在用户 session 中运行。

否则,它似乎在无 GUI 的 session 中运行,无法调用键盘和鼠标 API。

关于c# - 远程调用时 Powershell SendKeys 访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43307722/

相关文章:

powershell - 构造一个自定义对象,其属性将按定义顺序枚举

python - 从另一台机器访问digitalocean服务器上的mongodb

c# - 帮助 LINQ 表达式

c# - 如果一个对象失败,EntityFramework 回滚所有事务

c# - FsCheck c# When 属性组合器

c# - db.SaveChanges() 期间出现 "Invalid Object Name"错误( Entity Framework /MVC)

powershell - 运行 `Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass`是否安全

powershell - 为 Windows 7 开发的 PowerShell 脚本能否在 Win Server 2008 R2 上运行?

php - Wamp MySQL PhpMyAdmin 远程访问配置问题

java - 交互式服务检测显示何时在远程服务器上打开应用程序 (JSch)