在PowerShell中以管理员身份运行CMD

时间:2017-07-06 00:32:18

标签: powershell cmd

我希望这很简单。

$cred = Get-Credential $env:USERDOMAIN\$env:USERNAME
$credUser = $cred.UserName
$credPW = $cred.Password

$Col1Row2 = New-Object System.Windows.Forms.Button
$Col1Row2.Location = New-Object System.Drawing.Size(5,80)
$Col1Row2.Size = New-Object System.Drawing.Size(150,25)
$Col1Row2.Text = "CMD as Admin"
$Col1Row2.Add_Click({Write-Host "Started Command Prompt.";$x= RunAs /user:$credUser C:\Windows\System32\cmd.exe })
$objForm.Controls.Add($Col1Row2)

在我的表单中有一个启动命令提示符的按钮,但是我希望它通过在开始时捕获用户凭据并使用它们来运行来以管理员身份启动。问题是我似乎无法弄清楚如何让它发挥作用。

如果我在脚本中运行它,它似乎根本不起作用(在ISE中)。如果我在PowerShell中以RunAs /user:$credUser C:\Windows\System32\cmd.exe运行该行,则会要求输入密码。如果我在最后使用密码运行它似乎并不关心。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

$params=@("/C";"$x";" >d:\temp\result.txt")

参数转到此处,将其更改为您要传递给命令提示符的参数。

启动流程采用凭证对象,因此建议采用这种方法。

$params=@("/C";"$x";" >d:\temp\result.txt")
$prog="cmd.exe"
Start-Process -Credential $cred  -Verb runas $prog +$params