我在工作的一位学校老师有要求。他希望有一个程序或脚本可以让他锁定和解锁学生的键盘和鼠标。我做了一个powershell脚本,它在本地运行。这是代码:
function Block-UserInput($status) {
$code = @"
[DllImport("user32.dll")]
public static extern bool BlockInput(bool fBlockIt);
"@
$userInput = Add-Type -MemberDefinition $code -Name Win32BlockInput -Namespace Win32Functions -PassThru
$userInput::BlockInput($status)
}
Block-UserInput($true)
Start-Sleep 4
Block-UserInput($false)
但是,由于该命令在用户的单独会话中运行,因此该脚本无法远程运行。从安全角度来看,这是有道理的。以下是远程呼叫:
$password = "xxxxxxx" | ConvertTo-SecureString -asPlainText -Force
$username = "yyyyyyy"
$cred = New-Object System.Management.Automation.PSCredential($username,$password)
$session = New-PSSession -ComputerName 127.0.0.1 -Credential $cred
Invoke-Command -Session $session -ScriptBlock ${function:Block-UserInput} -ArgumentList $true
Invoke-Command -Session $session -ScriptBlock ${function:Block-UserInput} -ArgumentList $false
Remove-pssession -session $session
我的问题是:有没有一种方法可以远程阻止用户输入?它可以是任何类型的解决方案,包括其他编程语言或自动化软件(例如ansible)。我展示了我的解决方案(该方法无效:D),以便讨论有关如何解决此问题的一些想法。 谢谢。