如何发送Atl序列的密钥tu regedit

时间:2015-04-03 14:08:11

标签: powershell vbscript key sendkeys

我需要在远程计算机上打开注册表,我在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上试试它,它可以正常工作,但不能用于注册!

1 个答案:

答案 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