Не удается предоставить разрешение на запись в каталог C: / для пользователя в конвейере Azure (машина подготовки - vs2017-win2016)

Я создаю конвейер, который загружает артефакт и устанавливает его, а после установки некоторые файлы создаются в каталоге C: \. Но похоже, что у пользователя, запустившего установку, нет разрешения на создание папок в C :. Как дать разрешение на создание файлов в Azure с помощью PowerShell или командной строки в моем конвейере Azure? Согласно моему исследованию, одна из команд будет следующей, но она не работает в моем конвейере (в приведенной ниже задаче она застревает в этой задаче примерно на 1 час). Кто-нибудь может сказать мне, что случилось?

Вот моя задача на моем конвейере:

- task: PowerShell@2
    inputs:
      targetType: 'inline'
      script: |
        $acl = Get-Acl C:
        $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("SYSTEM","CreateFiles","Allow")
        $acl.SetAccessRule($AccessRule)
        $acl | Set-Acl C:
        $acl = Get-Acl C:
        $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("VssAdministrator","CreateFiles","Allow")
        $acl.SetAccessRule($AccessRule)
        $acl | Set-Acl C:

Что я пробовал: PowerShell для установки разрешений для папки Как установить разрешение на запись в папку для всех, кто использует Powershell Как изменить разрешения для папку и ее подпапки / файлы за один шаг?


person tester1908    schedule 26.11.2020    source источник
comment
Пытались ли вы установить какое-либо программное обеспечение в агент хоста Azure DevOps или агент самообслуживания?   -  person PatrickLu-MSFT    schedule 30.11.2020


Ответы (1)


просто чтобы понять это правильно:

Пользователь, запускающий установку, правильный VssAdministrator?

Вы пробовали это с FullControl? Потому что я думаю, что createfiles будет недостаточно.

И если это нормальный системный раздел c :, то владельцем является установщик thrustedinstaller. Может твои настройки не применяются? Если вы выполните set-acl, а затем вызовете get-acl, покажет ли он ваши настройки?

Вот что я бы попробовал:

  • Попробуйте использовать полный контроль (впоследствии вы всегда можете ограничить его). проверьте get-acl после команды set.
person panzerknacker20111    schedule 26.11.2020
comment
Привет, спасибо за ответ. Я пытался установить FullControl, но тоже не работает. Да, мой пользователь - VssAdministrator. Мои настройки не применяются с set-acl, когда я запускаю конвейер, задача выполняется более 1 часа - person tester1908; 27.11.2020
comment
Подозреваю, что задача застревает, пытаясь что-то выполнить, и я не могу найти причину - person tester1908; 27.11.2020