чувствую, что сейчас рассмеюсь/заплачу, потому что знаю, что делаю что-то глупое/очевидно неправильное.
Я использую SCCM и PSADT, чтобы попытаться сделать следующее. Это работает нормально, если я UNC к целевой папке и запускаю скрипт, но следующее происходит при развертывании в SCCM
Я перепробовал все варианты ниже, которые только мог придумать. Я пытаюсь переместить каталог из сетевой виртуальной машины на локальный клиент, но все, что я могу сделать, это скопировать сам ПУСТОЙ каталог
Примеры того, что я пробовал:
If (!(Test-Path("C:\Target\"))) {
New-Item -ItemType directory -Path "C:\Target"
Copy-Item -Path "$dirFiles\Target\*" -Destination "C:\Target\" -Recurse -Force -Verbose
}
И
If (!(Test-Path("C:\Target\"))) {
Copy-Item -Path "$dirFiles\Target" -Destination "C:\" -Recurse -Force -Verbose
}
И все, что между ними, я могу придумать. Каждый раз я просто получаю пустую папку каталога, созданную, но ничего из содержимого
решение1
Похоже на проблему с разрешениями. Поскольку вы работаете из SCCM, я предполагаю, что вы используете функцию предварительной версии Run Script. Она запускает сценарий как учетную запись Local System компьютера, которая, вероятно, не имеет правильных разрешений NTFS для вашего сетевого ресурса.
Если вы в домене: В качестве быстрого (грязного и небезопасного - отмените это изменение сразу после тестирования!) теста. Предоставьте компьютерам домена доступ на чтение к папке $dirFiles\target и всем дочерним объектам. Если это сработает, вам нужно решить, что делать:
- Как вы хотите структурировать права доступа для учетных записей локальной системы
- Следует ли преобразовать скрипт в пакет или приложение и запустить его от имени вошедшего в систему пользователя.
Пакетный вариант безопаснее, но немного более долгий.
Удачи