Comment mapper un lecteur réseau en utilisant PowerShell
En PowerShell , nous pouvons mapper un lecteur réseau de deux manières différentes.
- La première s’appuie sur la cmdlet New-PSDrive qui existe depuis PowerShell 3.0
- La seconde sur la méthode de VB Script MapNetworkDrive
New-PSDrive
Quand vous mapper un lecteur réseau, vous pouvez le faire de manière temporaire , persistante, avec le compte utilisateur actif ou un autre compte. Nous allons donc voir quelques exemple .
Pour mapper le lecteur de Manière temporaire
New-PSDrive -Name « Q » -PSProvider « FileSystem » -Root « \\MonServeur\d$ »
1 2 3 4 5 6 |
PS C:\> PS C:\> New-PSDrive -Name "Q" -PSProvider "FileSystem" -Root "\\MonServeur\d$" Name Used (GB) Free (GB) Provider Root -------- --------------- ---------------- ------------ ------------ Q FileSystem \\MonServeur\d$ |
Pour mapper le lecteur de Manière temporaire avec une autre compte utilisateur
On commence par récupérer les identifiants de connexion, pour cela on utilise la cmdlet Get-Credential
Get-Credential
1 2 |
PS C:\> PS C:\> $identifiants=Get-Credential |
une fois les identifiants renseignés, vous n’avez plus qu’a les passer en paramètre à votre commande New-PSDrive
New-PSDrive -Name « Q » -PSProvider « FileSystem » -Root « \\MonServeur\D$ » -Credential $identifiants
1 2 3 4 5 6 |
PS C:\> PS C:\> New-PSDrive -Name "Q" -PSProvider "FileSystem" -Root "\\MonServeur\d$" -Credential $identifiants Name Used (GB) Free (GB) Provider Root -------- --------------- ---------------- ------------ ------------ Q FileSystem \\MonServeur\d$ |
Pour mapper le lecteur de Manière Persistante avec une autre compte utilisateur
Pour rendre persistant le montage , il vous suffit d’ajouter l’option -persist
New-PSDrive -Name « Q » -PSProvider « FileSystem » -Root « \\MonServeur\D$ » -Credential $identifiants -persist
1 2 3 4 5 6 |
PS C:\> PS C:\> New-PSDrive -Name "Q" -PSProvider "FileSystem" -Root "\\MonServeur\d$" -Credential $identifiants -persist Name Used (GB) Free (GB) Provider Root -------- --------------- ---------------- ------------ ------------ Q 26,09 3,90 FileSystem \\MonServeur\d$ |
Et si vous faite un « net use » dans votre console PowerShell, vous pourrez noter que le lecteur apparaît…
1 2 3 4 5 6 7 8 9 10 11 12 13 |
PS C:\> PS C:\> net use Les nouvelles connexions seront m‚moris‚es. tat Local Distant Reseau ------------------------------------------------------------------------------- OK G: \\.......\Toto$ Microsoft Windows Network K: \\.......\Titi$ Microsoft Windows Network L: \\.......\Tutu$ Microsoft Windows Network OK Q: \\.......\D$ Microsoft Windows Network R: \\.......\Tata$ Microsoft Windows Network La commande s'est termin‚e correctement. |
Vous pouvez retrouver la documentation de la cmdlet New-PSDrive et des exemples d’utilisations ici
A noter que pour supprimer la connexion d’un lecteur réseau , il vous suffira de lancer la commande Remove-PSDrive
Remove-PSDrive -name « Q »
1 2 |
PS C:\> PS C:\> Remove-PSDrive -name "Q" |
MapNetworkDrive
Une alternative pour mapper un lecteur est d’utiliser dans votre code PowerShell la fonction VB Script « MapNetworkDrive »
Pour cela il vous faut donc lancer la commande
$net.MapNetworkDrive(« Q: », »\\$environnement\d$ »,0, »$($domain)\$($user) », »$($password) »)
1 2 |
$net = New-Object -comobject Wscript.Network $net.MapNetworkDrive("Q:","\\$environnement\d$",0,"$($domain)\$($user)","$($password)") |
Pour la suppression du lecteur
$net.RemoveNetworkDrive(« Q: »)
1 |
$net.RemoveNetworkDrive("Q:") |