PI Services

Le blog des collaborateurs de PI Services

Affecter dynamiquement une lettre de disk drive disponible dans un script Powershell

 

Imaginons que vous deviez effectuer un net use dans un script sur plusieurs machines mais que les disks drive disponible ne soit pas les mêmes. Pour cela, nous allons consulter le registre.

Dans le registre, chaque disk drive monté apparait dans HKCU\Network

Exemple :

Un net use

image

Sous le registre

image

 

Avec la cmdlet Get-Random, nous pouvons emprunter une lettre pour un disk drive aléatoire et voir si la clé dans le registre au niveau de HKCU\network est retrouvé par notre valeur obtenu du Get-Random . Si cela n’est pas le cas, cela veut dire que la lettre est disponible pour notre disk drive.

 

Récupérer une lettre disponible dans une variable

Pour notre cmdlet get-random, nous définissons une collection de valeur allant de o à z.

Pour chaque valeur obtenue, nous allons vérifier si la clé correpondante dans le registre sous HKCU\Network existe. La variable récupérera donc une valeur qu’il comparera au registre.

do {$MapDest=get-random -input "o","p","q","r","s","t","u","v","w","x","y","z"; get-childitem "registry::HKEY_CURRENT_USER\Network\$MapDest"; $check=$?} while ($check -eq "true")

Notre variable a maintenant une lettre de lecteur disponible pour un mappage de lecteur réseau. Il ne reste plus qu’à ajouter à notre variable $MapDest le caractere “:”

$MapDest=("$MapDest :").replace(" ","")

La variable peut maintenant être utilisé pour un mappage : net use $MapDest \\path

Ajouter un commentaire

Loading