Перемещение файлов на сетевых ресурсах - PullRequest
3 голосов
/ 21 января 2011

Я хочу автоматизировать многие из моих ежедневных задач с помощью 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.

Кажется, это корень проблемы. Любая идея, как я могу обойти это? Я вошел на сервер как администратор.

Ответы [ 2 ]

9 голосов
/ 21 января 2011

Запуск сценария от имени администратора не имеет значения для сетевых ресурсов IIRC.Разрешение общего ресурса по умолчанию разрешает только чтение.Эти разрешения необходимо обновить, чтобы разрешить запись в общий ресурс.

К вашему сведению, если вы используете net share для создания общих ресурсов в Windows 7, вам нужно будет использовать /grant:<users>,CHANGE для предоставления этих разрешенийпользователь.

2 голосов
/ 21 января 2011

Я на сервере 2003 R2. У администратора был полный доступ на вкладке «Безопасность», но я перешел на вкладку «Общий доступ», где для всех разрешен доступ «Чтение». Я добавил администратора и себя как полный контроль, теперь жизнь хороша!

...