我需要在远程计算机上打开注册表,我在powershell中编写脚本但是Alt键%(FC)没有被发送到regedit
[void] [System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
$Process = start-process regedit -PassThru
Start-Sleep -m 500
[Microsoft.VisualBasic.Interaction]::AppActivate($Process.id)
Start-Sleep -m 500
#[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
[System.Windows.Forms.SendKeys]::SendWait("%(FC)")
[System.Windows.Forms.SendKeys]::SendWait("$serverName")
[System.Windows.Forms.SendKeys]::SendWait("~~")
如果我在notpad上试试它,它可以正常工作,但不能用于注册!
答案 0 :(得分:1)
对于使用powershell的发送密钥,您应该使用wscript.shell
像这样:
$server="dc"
$user="user"
$password="password"
$a = New-Object -ComObject wscript.shell
[void] $a.run("regedit")
Start-Sleep 3
$a.SendKeys("%f")
Start-Sleep 2
$a.SendKeys("c")
Start-Sleep 1
$a.SendKeys("$server")
Start-Sleep 1
$a.SendKeys("{ENTER}")
Start-Sleep 1
$a.SendKeys("$user")
Start-Sleep 1
$a.sendkeys("{TAB}")
Start-Sleep 1
$a.SendKeys("$password")
Start-Sleep 1
$a.SendKeys("{ENTER}")
Start-Sleep 1
Get-Process -Name regedit | Stop-Process