powershell-2.0 - 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 服务没有足够的权限。也许我错了。我该如何解决这个问题?任何帮助将不胜感激。
解决方案
正如@MegaDriver68k 所说,这是“双跳”Powershell 问题。为了克服 Rundeck 上的问题,需要:
- 放
winrm-authtype: credssp
在节点 yaml 文件上(我通过添加 yaml 文件将节点添加到 rundeck)
- 在 Rundeck 机器上安装所需的 pip 包
pip install pywinrm[credssp]
- 在 Windows 节点上为“WinRM 客户端”和“WinRM 服务”启用 credSSP 身份验证组策略。有关它的更多详细信息,您可以在这里找到
推荐阅读
- r - 使用一年中不同地块的常见月份的年平均值
- javascript - 如何在 Javascript 中使用 webpack 隐藏 api 密钥
- reactjs - Gatsby 和 netlify - npm run start 出现cover_image 错误
- azure - 使用 Azure AD 作为 IDP 来保护 Azure 功能
- moodle - 我想编辑此页面 ui“css 和 html”,我应该以“moodle”开头的文件
- php - Laravel 外键约束在没有外键的情况下形成错误
- mysql - 根据子表在父表中添加前缀
- css-modules - 为什么我的 CSS 模块父母继承了孩子的属性?
- javascript - useState Hook 在事件侦听器中不起作用
- c++ - 开关语句的问题“字符常量中有太多字符”