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
参数显式指定此类用户的凭据。 -
如果两者都不适合您,那么您就不走运了;您需要要求管理员临时为您拨打电话。
-
-
也就是说,即使远程命令确实以提升方式运行,当该命令尝试访问网络资源(共享)时,也存在一个常见问题:
- 这是臭名昭著的双跳问题,在此处的文档以及解决方案选项中进行了讨论。