以管理员身份远程运行 Powershell 脚本. 服务器 A 上的



Script_A.ps1:

Invoke-Command -ComputerName Server B -ScriptBlock{
Set-Location "C:Path"
.Script_B.ps1
}

脚本"Script_B.ps1":

Set-Location "C:Path"
.Script_C.ps1 -Verb RunAs -Force

Script_C需要提升的权限才能执行。我可以编辑Script_A和Script_B,但不能编辑Script_C。

我的问题是,如果我执行Script_A Script_C出现错误:

Access Denied
+ CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Script_C.ps1
+ PSComputerName        : Server_B

注意:Script_C可以执行,但它会检查它是否在提升模式下启动,如果没有,它会给我拒绝访问错误。我错过了什么,它会起作用?

  • 获取远程 PowerShell 会话以执行提升的唯一方法(具有管理员权限) 是连接在目标计算机上具有管理权限用户帐户(隐式或通过-Credential)。

  • 使用此类帐户,会话会自动且始终以提升方式运行。

    • 相反,不能远程会话内部请求提升 - 无法显示 UAC 对话框。

换句话说,您需要确保以下几点:

  • 关于您的Invoke-Command电话:

    • 任一项:从在目标计算机上具有管理权限(也)的用户帐户进行调用

    • 或者:通过-Credential参数显式指定此类用户的凭据。

    • 如果两者都不适合您,那么您就不走运了;您需要要求管理员临时为您拨打电话。

  • 也就是说,即使远程命令确实以提升方式运行,当该命令尝试访问网络资源(共享)时,也存在一个常见问题

    • 这是臭名昭著的双跳问题,在此处的文档以及解决方案选项中进行了讨论。

相关内容

  • 没有找到相关文章

最新更新