поэтому я создал скрипт .ps1, который могу запускать в любое время, когда я хочу отобразить свой общий ресурс samba.

Когда я запустил скрипт PS1, он попросил у меня пароль, но я не могу сменить каталог на общую папку. Я попробовал это дважды.

Но когда я скопировал и вставил содержимое моего файла PS1 в powershell и запустил его, я смог сменить каталог на общий ресурс samba.

Есть идеи, что я могу делать не так?

Пожалуйста, посмотрите на это:

PS D:\myscripts> .\map-myfileserver1.ps1

Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
----           ---------     --------- --------      ----                                               ---------------
y                5371.89        682.30 FileSystem    \\myfileserver1\smb-storage


PS D:\myscripts> y:
Set-Location : Cannot find drive. A drive with the name 'Y' does not exist.
At line:1 char:1
+ Set-Location $MyInvocation.MyCommand.Name
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Y:String) [Set-Location], DriveNotFoundException
    + FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.SetLocationCommand

PS D:\myscripts> .\map-myfileserver1.ps1

Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
----           ---------     --------- --------      ----                                               ---------------
y                5371.89        682.30 FileSystem    \\myfileserver1\smb-storage


PS D:\myscripts> y:
Set-Location : Cannot find drive. A drive with the name 'Y' does not exist.
At line:1 char:1
+ Set-Location $MyInvocation.MyCommand.Name
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Y:String) [Set-Location], DriveNotFoundException
    + FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.SetLocationCommand

PS D:\myscripts> new-psdrive -name y -psprovider filesystem -root \\myfileserver1\smb-storage -credential my-samba-user-here -persist

Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
----           ---------     --------- --------      ----                                               ---------------
y                5371.89        682.30 FileSystem    \\myfileserver1\smb-storage


PS D:\myscripts> y:
PS y:\>

1 ответ1

0

Добавьте -scope global к вызову командлета в вашем скрипте. Без него диск не отображается при выходе из сценария. Кажется нелогичным, когда уже используется -persist , но это то, что нужно.

help new-psdrive -details
-Scope <String>
    Specifies a scope for the drive. Valid values are "Global", "Local", or "Script", or a
    number relative to the current scope (0 through the number of scopes, where 0 is the
    current scope and 1 is its parent). "Local" is the default. For more information, see
    about_Scopes (http://go.microsoft.com/fwlink/?LinkID=113260).

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