我试图通过Azure devops Pipeline在PS Inline脚本下运行。但是IAM在代理日志上出现错误 管道代码:
trigger:
master
pool:
name: 'Dev1'
steps:
task: PowerShell@2
inputs:
targetType: 'inline'
script: |
# Write your PowerShell commands here.
New-Item -Path "C:\Manoj" -Force
代理错误:
Starting: PowerShell
Task : PowerShell
Description : Run a PowerShell script on Linux, macOS, or Windows
Version : 2.165.0
Author : Microsoft Corporation
Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/powershell
Generating script.
========================== Starting Command Output ===========================
"C:\windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ". 'C:\tmp\vsts-agent-win-x64-2.165.2_work_temp\65dd1488-c132-4b9a-8403-0604d37f43a4.ps1'"
New-Item : Access to the path 'C:\Manoj' is denied.
At C:\tmp\vsts-agent-win-x64-2.165.2_work_temp\65dd1488-c132-4b9a-8403-0604d37f43a4.ps1:4 char:1
New-Item -Path "C:\Manoj" -Force
+ CategoryInfo : PermissionDenied: (C:\Manoj:String) [New-Item], UnauthorizedAccessException
+ FullyQualifiedErrorId : NewItemUnauthorizedAccessError,Microsoft.PowerShell.Commands.NewItemCommand
##[error]PowerShell exited with code '1'.
Finishing: PowerShell
答案 0 :(得分:0)
使用Microsoft托管代理,该代码对我有用。
trigger:
branches:
include:
- '*'
pool:
vmImage: 'windows-latest'
steps:
- task: PowerShell@2
inputs:
targetType: inline
script: |
New-Item -Path "C:\Manoj" -Force
如果您使用的是自托管代理,请验证运行azure devops服务的用户帐户是否满足您的权限要求。
答案 1 :(得分:0)
该错误表明运行azdo代理的帐户无权在系统驱动器的根目录中创建对象。由于代理应该在多用户/多项目场景中使用,因此这种限制听起来合乎逻辑。
因此,请考虑构建仅在工作目录内作用域的管道逻辑。
例如:Pipeline.Workspace
trigger:
master
pool:
name: 'Dev1'
steps:
- task: PowerShell@2
inputs:
targetType: inline
script: |
New-Item -Path "$(Pipeline.Workspace)\Manoj" -Force
在这种情况下,不同管道的工件相互隔离。
答案 2 :(得分:0)
如果您使用的是自托管代理,请尝试为代理服务用户添加管理员(或至少是磁盘写作者)特权,或允许其为该文件夹写入。