1

Я создал диск с буквой Z: и поделился им, чтобы сетевой путь: \\GOELA2682012SRV\srv2012r2

Теперь я хочу создать там папку с помощью PowerShell.

Это не работает:New-Item -Path "\\GOELA2682012SRV\srv2012r2\Users\test" -ItemType Directory

Пока это работает: New-Item -Path "Z:\Users\test" -ItemType Directory

Зачем?

1 ответ1

4

Попробуйте добавить FileSystem:: в UNC-путь, чтобы он стал FileSystem::\\GOELA2682012SRV\srv2012r2\Users\test

Поведение PowerShell может быть немного забавным, когда вы передаете UNC-путь к определенным командлетам. PowerShell не распознает эти пути как «корневые», потому что они не на PSDrive; таким образом, любой поставщик, связанный с текущим местоположением PowerShell, будет пытаться их обработать. Например:

Set-Location C:
Get-ChildItem -Path \\$env:COMPUTERNAME\c$

Set-Location HKLM:
Get-ChildItem -Path \\$env:COMPUTERNAME\c$

Первая команда работает нормально (при условии, что у вас включен ac $ share и вы можете получить к нему доступ), а вторая команда выдает ошибку «Cannot find path», потому что поставщик реестра пытался работать с путем UNC вместо поставщика FileSystem , Вы можете обойти эту проблему, добавив префикс UNC-пути к FileSystem::, что позволит PowerShell использовать этого поставщика независимо от вашего текущего местоположения.

PowerShell Gotcha: пути UNC и провайдеры

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