Я пытаюсь написать сценарий PowerShell, который минимизирует каталог, полный файлов .js на веб-сервере. Файлы принадлежат мне; Я создал его; Я вошел в систему как я. Я могу открывать и сохранять файлы в текстовом редакторе или через пакетный файл. Сценарий PowerShell считает, что он работает как я ($env:username
), и я запускаю его с консоли PowerShell, которую я запускал с помощью «Запуск от имени администратора».PowerShell UnauthorizedAccessException запись файла в сетевой ресурс
Цикл выглядит следующим образом. Утверждается, что файлы $ представляют собой коллекцию файловых объектов, представляющих файлы, которые я хочу.
$tool = "c:\Program Files (x86)\Microsoft\Microsoft Ajax Minifier\ajaxmin.exe";
foreach($ofile in $files) {
$outfile = $ofile.DirectoryName + "\" + $ofile.BaseName + ".min.js";
& $tool $ofile.FullName > $outfile;
}
Я получаю следующее сообщение об ошибке на каждом файле:
Access to the path '\\webserver\inetpub\whatever\js\validation.min.js' is denied.
At C:\minifyall.ps1:18 char:27
+ & $tool $ofile.FullName > <<<< $outfile;
+ CategoryInfo : OpenError: (:) [], UnauthorizedAccessException
+ FullyQualifiedErrorId : FileOpenFailure
Файл есть файл он должен быть письменно, и Get-Acl говорит мне, что есть Разрешить FullControl. Он отлично читает файлы без .min.
Если изменить выходной каталог для текущего рабочего каталога (на моей машине), скрипт работает, как ожидалось:
# No prob
$outfile = $ofile.BaseName + ".min.js";
Есть ли что-то еще мне нужно сделать, чтобы включить этот сценарий, чтобы написать удаленные файлы? Помимо перезаписи в Perl.
Подсказки по стилю кодирования PowerShell также приветствуются. Мой профессиональный опыт с PowerShell начался примерно через час после завтрака.
Уже напечатаны все полные пути. Ничего неожиданного. У нас есть куча бешеных и враждебных средств защиты ... Спасибо. –