mapeando o compartilhamento de samba via script PS1 não funcionando

0

então criei um script .ps1 que posso executar sempre que quiser mapear meu compartilhamento de samba.

Quando eu executei o script PS1, ele me pediu a senha, mas não consigo alterar o diretório para a pasta compartilhada. Eu tentei isso duas vezes.

Mas quando copio e colo o conteúdo do meu arquivo PS1 no powershell e o executo, consegui alterar o diretório para o compartilhamento de samba.

Alguma idéia do que eu poderia estar fazendo errado?

Por favor, veja isto:

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:\>
    
por mrjayviper 29.04.2017 / 03:47

1 resposta

0

Adicione -scope global à invocação do cmdlet no seu script. Sem ele, a unidade não é mapeada quando o script é encerrado. Parece contra-intuitivo quando já está usando -persist , mas é o que é preciso.

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).
    
por 11.05.2017 / 22:32