【问题标题】:Running A PowerShell Script At A UNC Path With Admin Privilege From Shortcut使用快捷方式的管理员权限在 UNC 路径上运行 PowerShell 脚本
【发布时间】:2019-02-07 12:40:56
【问题描述】:

我创建了一个 PowerShell 脚本来为我们公司的系统管理员安装一些按需功能。我为脚本创建了一个快捷方式,并在高级选项中选择了“以管理员身份运行”。当我直接运行脚本时,它会运行但错误状态:

The requested operation requires elevation

如果我从快捷方式运行脚本,则会弹出 UAC 以允许以管理员身份运行,我点击是,然后弹出黑色 CMD 框,然后立即关闭。它不会显示我脚本的任何部分,也不会像我在脚本中那样在最后暂停。在我放置的快捷方式的目标中:

powershell.exe -ExecutionPolicy Bypass

还是有同样的问题。

如果我将powershell.exe -ExecutionPolicy Bypass 放入脚本中,它会在原始窗口顶部打开一个 Admin Powershell 窗口,但脚本在下部窗口中运行。我只能假设它会在 C:\Windows\System32 处启动管理窗口

有没有办法运行命令以管理员身份启动 PowerShell 并直接转到我在 UNC 路径上的脚本?

链接这个:

Start-Process Powershell.exe -Verb runAs -File "\SERVER\Scripts\Script.ps1"

或者有没有更好的方法让我的快捷方式以管理员身份启动我的脚本到 UNC 路径上的脚本?

【问题讨论】:

  • 为了帮助排除故障并查看是否有错误,您可以添加 NoExit 参数,以便在执行脚本后 Powershell 窗口保持打开:powershell.exe -ExecutionPolicy Bypass -NoExit
  • @JamesC。当我这样做时,它会回到 PS C:\Scripts> 并坐在那里。

标签: powershell elevated-privileges


【解决方案1】:

经过大量研究,我发现了问题所在。事实证明,我认为管理框从 C:\Windows\System32 开始是正确的,并且没有传递给该框的参数来告诉它要写什么。经过反复试验,这就是我要做的工作,并且已经完成了我想要的工作:

在快捷方式中,我删除了高级下的“以管理员身份运行”选项。我在快捷方式的 Target 中添加了一些值:

powershell -ExecutionPolicy Bypass "\\UNC\To\Script.ps1"

这启动了一个在用户模式下运行的启动脚本。为了让脚本完成管理功能,我将这些命令移动到不同的脚本“AdminScript.ps1”并从 Script.pst1 调用它,如下所示:

Start-Process powershell -Argument "-ExecutionPolicy Bypass -noexit \\UNC\Path\to\AdminScript.ps1" -Verb runAs

这随后启动了管理 Powershell 窗口并将 ExecutionPolicy 设置为 Bypass,因为它默认启动为 Restricted。

从那里我能够以管理权限完成 FoD 的安装。

【讨论】:

    猜你喜欢
    • 2014-04-24
    • 2021-05-27
    • 2021-08-25
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 2010-11-25
    • 2015-05-13
    相关资源
    最近更新 更多