Я хочу автоматизировать многие из моих ежедневных задач с помощью powershell. Один из процессов, который у нас есть, - это отображение рабочих столов после нескольких часов. После завершения этой операции файлы изображений необходимо перенести с жестких дисков сервера на сетевой диск. Я пишу приложение, которое будет запускаться в качестве службы на моей машине, которое будет вызывать скрипт powershell и выводить все из строя, предупреждая меня только о проблемах.
Я установил каталог на сервере для скриптов. Это работает нормально, если я вызываю мой скрипт FileCopy.ps1 с сервера:
copy-item C:\scripts\myFile1.txt -destination C:\scripts\myFile2.txt
Однако в моем приложении .Net я вызываю скрипт с локального компьютера:
RunScript(LoadScript(@"\\Server\ServerShare\FileCopy.ps1"));
Не работает. Это потому, что он видит C: \ scripts как находящийся на локальной машине. Итак, я изменяю это:
copy-item \\Server\ServerShare\myFile1.txt -destination \\Server\ServerShare\myFile2.txt
Не работает. Я добавляю еще одну строку в скрипт:
copy-item \\Server\ServerShare\myFile1.txt -destination \\Server\ServerShare\myFile2.txt
get-childitem \\Server\ServerShare | format-table name
Он по-прежнему не копирует файл, но действительно возвращает содержимое каталога scripts на сервере.
Итак, я возвращаюсь на сервер и запускаю скрипт с указанными UNC-путями - powershell возвращает ошибку
Copy-Item : Access to the path '\\Server\ServerPath\myFile2.txt' is denied.
Кажется, это корень проблемы. Любая идея, как я могу обойти это? Я вошел на сервер как администратор.