1

У меня есть список файлов для копирования в / из разных мест. К сожалению, у одного из них есть пробелы в подкаталоге. Не все из них имеют подкаталоги, и не у всех есть пробелы. Это каталог, который я не могу переименовать, потому что это каталог виртуальных машин, и для его переименования потребуется удалить и переустановить всю виртуальную машину. Вот как выглядит сценарий.

$vDrive = "V:\VM - USA02xxxx\VM-USA02xxxx.vhd"
$vDriveToLoc = "G:\"

Copy-Item $vDrive $vDriveToLoc

Сообщение об ошибке: Copy-Item: Доступ к пути 'V:\VM - USA02xxxx\VM-USA02xxxxx.vhd' запрещен.

Я администратор и имею полный контроль над файлами / папками, так что это не проблема. Копирует файлы в другие каталоги нормально.

Я пытался заменить двойные кавычки одинарными, и это не помогло. Я попытался с двойными кавычками добавить галочки перед каждым пробелом. Это не сработало.

Я знаю, что когда я делаю это в командной строке PowerShell, он работает с CD V:\ затем CD "VM - USA02xxxx", но я не могу сделать это программно для длинного списка файлов / каталогов. Есть идеи?

Я видел эту ссылку, но я не уверен, что она будет применяться здесь: http://social.technet.microsoft.com/Forums/scriptcenter/en-US/71ec2cae-b126-4a4d-9622-169aa7c6b0ad/tring-to-copy -folderfiles- с помощью PowerShell?-форум = winserverpowershell

Я попытался сделать то, что прокомментировал один парень, но это не сработало:https://stackoverflow.com/questions/3868342/running-an-exe-using-powershell-from-a-directory-with-spaces-in- Это

2 ответа2

0

Вот ключ реестра, чтобы включить подключенный диск через разделенный токен UAC. Я думаю, именно поэтому V: диск не доступен из вашего сценария администратора.

New-ItemProperty -Path "registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableLinkedConnections" -Value 1 -PropertyType "DWord"
#

Эта проблема возникает из-за того, что UAC рассматривает членов группы «Администраторы» как обычных пользователей. Поэтому общие сетевые ресурсы, сопоставленные сценариями входа, используются совместно с токеном доступа стандартного пользователя, а не с маркером полного доступа администратора.

http://technet.microsoft.com/en-us/library/ee844140%28v=ws.10%29.aspx

Альтернативный ответ - net use v: \\etc\etc в вашем скрипте для повторного сопоставления при каждом запуске.

-2

Спасибо за идеи, ребята! Я пробовал кое-что и добавил себя в каталоги и из каталога с полным контролем, и это сработало! Я не уверен, зачем мне это нужно, так как я в группе администраторов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .