在 powershell 打开提示符下回答是

在 powershell 打开提示符下回答是

我有下一行 powershell 代码

powershell -noprofile -command "&{ start-process powershell -ArgumentList '-noprofile -file D:\powershell\mastermove2.ps1' -verb RunAs}"

该代码的想法是以管理员身份执行 mastermove2.ps1 文件,我现在遇到的问题是当我从命令行执行此代码时,我收到下一个 powershell 提示符

PowerShell 提示符:

在此处输入图片描述

我如何自动在此提示上按“是”,以便 mastermove2.ps1 无需用户交互即可执行?

答案1

您正在尝试提升您的进程并授予其管理员权限。Windows联合航空 正在保护您的安全并请求权限。强烈建议不要禁用 UAC,因为它可以保护您免受病毒的权限提升攻击。

如果您希望避免此提示,您可以在 PowerShell 中创建管理员凭据并将其附加到新进程。这将要求在您的脚本中包含管理员密码,许多人会对这个想法感到震惊。

我提供了以下示例代码来回答这个问题,但我不推荐这种方法,除非您觉得您的环境非常安全并且没有人可以偷偷查看您的脚本。

$uid = "userid"
$pw = "password"
$secPw = ConvertTo-SecureString -String $pw -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $uid, $secPw
Start-Process powershell -Credential $cred -WindowStyle Minimized -ArgumentList "-noexit -command Start-Process cmd -verb runas"

答案2

一般来说,您不需要。常规(非提升)程序不允许与 UAC 提示交互,这就是“以管理员身份运行”UAC 提示和一般 UAC 的全部意义所在。

如果这是您需要经常做的事情 - 请通过任务计划程序定义一个自定义任务,该任务以“所有权限”在您的帐户下运行。

相关内容