Как следует из заголовка, если я попытаюсь добавить -persist
в cmdlt, он вернет ошибку:
New-PSDrive : The network resource type is not correct
At line:1 char:1
+ New-PSDrive -Name P -Root <redacted> ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (P:PSDriveInfo) [New-PSDrive], Win32Exception
+ FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand
Для справки, это сеанс администратора в PowerShell, но я получаю точно такие же ответы, если делаю это в сеансе обычного пользователя:
PS> $PSVersionTable.psversion
Major Minor Build Revision
----- ----- ----- --------
5 1 16299 666
С самого начала: я подтверждаю, что буква диска, которую я хочу использовать, доступна (в данном случае P)
PS> get-psdrive
Name Used (GB) Free (GB) Provider Root CurrentLocation
---- --------- --------- -------- ---- ---------------
Alias Alias
C 36.80 22.11 FileSystem C:\ windows\system32
Cert Certificate \
D FileSystem D:\
Env Environment
Function Function
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE ...ntrol\NetworkProvider\Order
Variable Variable
WSMan WSMan
затем я пытаюсь запустить: (я уже определил $locale
как переменную, например, '\\foo\bar\'
).
New-PSDrive -PSProvider FileSystem -Name P -Root $locale -Scope global
Name Used (GB) Free (GB) Provider Root CurrentLocation
---- --------- --------- -------- ---- ---------------
P FileSystem \\foo\bar\
Счастливые дни. Это работает. Но, конечно, проводнику Windows это не видно, потому что это просто в этой сессии PS. Итак, я уничтожаю его (remove-psdrive P
) и проверяю, что он исчез (get-psdrive
), здесь не показан, а затем пытаюсь создать постоянную версию (та же команда, только с -persist
):
PS> New-PSDrive -PSProvider FileSystem -Name P -Root $locale -Scope global -Persist
New-PSDrive : The network resource type is not correct
At line:1 char:1
+ New-PSDrive -PSProvider FileSystem -Name P -Root $locale -Scope globa ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (P:PSDriveInfo) [New-PSDrive], Win32Exception
+ FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand
И это не удается. Для контекста, я делаю это, чтобы я мог использовать RoboCopy с помощью сценария с удаленными PSDrives (мы хотим использовать robocopy из-за его встроенной отчетности, управления атрибутами и возможности поддерживать файловую структуру в месте назначения, и мы хотим использовать PSDrives, чтобы мы могли указать учетные данные для целевых дисков).
У кого-нибудь есть идеи?
Редактировать: О боже... Я не могу в это поверить.... Но на случай, если кто-то еще найдет это, я оставлю это. Проблема была в конце \
на моем пути. Я удалил это, и это сохранилось просто отлично.