首页 > 解决方案 > Rundeck 作业因 PermissionDenied UnauthorizedAccessException 而失败

问题描述

我在 rundeck 中有一份工作,它通过某些域网络的用户凭据连接到 windows 机器,并运行从域网络中的另一台机器复制某些文件夹的脚本。由 WinRM 完成到 windows 节点的连接。

当我通过 rundeck 作业运行该脚本时,它失败并出现错误

[ERROR  ]  Test-Path : Access is denied
10:43:56    At E:\scripts\site_backup.ps1:20 char:10
10:43:56    + if(-not (Test-Path $BackupDirectory)) {
10:43:56    +          ~~~~~~~~~~~~~~~~~~~~~~~~~~    

PermissionDenied: (\\some.path.local\dprr...rw-tests-pq:String) [Test-Path], UnauthorizedAccessException

但是,如果我在通过 RDP 连接到该计算机的同一用户下运行该脚本,则它可以正常工作。

我怀疑 WinRM 服务没有足够的权限。也许我错了。我该如何解决这个问题?任何帮助将不胜感激。

标签: powershell-2.0rundeck

解决方案


正如@MegaDriver68k 所说,这是“双跳”Powershell 问题。为了克服 Rundeck 上的问题,需要:

winrm-authtype: credssp

在节点 yaml 文件上(我通过添加 yaml 文件将节点添加到 rundeck)

  1. 在 Rundeck 机器上安装所需的 pip 包

pip install pywinrm[credssp]

  1. 在 Windows 节点上为“WinRM 客户端”和“WinRM 服务”启用 credSSP 身份验证组策略。有关它的更多详细信息,您可以在这里找到

推荐阅读