从Powershell运行.bat文件作为管理员

时间:2013-03-09 00:30:13

标签: powershell

所以我一直在转动这个轮子。我正在powershell gui中创建一个小应用程序,需要通过传递从文本框输入的凭据来运行.bat。我一直想弄清楚的是当在GUI上单击按钮时如何传递这些凭据。

我在GUI上有两个框,用户在那里传递凭证。

$userTextBox.Text
$passwordTextBox.Text

然后当单击该按钮时,.bat文件需要运行用户\密码。这下面更像psuedo代码,因为我不知道如何做到这一点。我看过网上和野生动物园书籍,但我找不到一个例子。我找到了一个,但它做了不同的事情,我不理解。

$StartButton.Add_Click({Start-Process 
runas $userTextBox.Text\$passwordTextBox.Textc:\temp\Scripts\MapCopyTuner.bat
})

任何帮助都非常感谢,因为你可以说我在这里很绿。

1 个答案:

答案 0 :(得分:7)

您需要将用户名\密码转换为PSCredential,并将其传递给Start-Process

以下是一个示例PowerShell代码段(如果您愿意,可以通过内联变量来减少这种情况)。

$password= convertto-securestring $passwordTextBox.Text -asplaintext –force
$credential = new-object -typename System.Management.Automation.PSCredential -argumentlist $userTextBox.Text,$password
$script = "c:\temp\Scripts\MapCopyTuner.bat"
Start-Process powershell -Credential $credential -ArgumentList "-noprofile -command &{Start-Process $script -verb runas}"