0

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

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

$userTextBox.Text
$passwordTextBox.Text

然后,当单击按钮时,.bat 文件需要以用户\密码运行。下面的代码更像是伪代码,因为此时我不确定如何执行此操作。我在网上和野生动物园书籍上看过,但我找不到一个例子。我确实找到了一个,但它正在做一些不同的事情,我不明白。

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

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

4

1 回答 1

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}"
于 2013-03-09T02:11:56.163 回答