Как видно из названия, если я пытаюсь добавить -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 Explorer, потому что это только в этой сессии 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 с удаленными PSDrive (мы хотим использовать robocopy из-за его встроенных отчетов, управления атрибутами и способности поддерживать файловую структуру в месте назначения, и мы хотим использовать PSDrives, поэтому мы можем указать учетные данные для целевых дисков).
У кого-нибудь есть идеи?
Редактировать: О, чувак ... Я не могу в это поверить ... Но на случай, если кто-то еще найдет это, я собираюсь оставить это. Проблема заключалась в том, что на моем пути тянулся \
. Я удалил это, и оно сохранилось очень хорошо.