Script per tentare la mappatura di una share di rete

Per assegnare in modo automatico una lettera ad una share di rete è possibile utilizzare il comando:
NET USE *

Questo comando però in Windows XP parte da Z ad assegnare la lettera mentre su Windows 2000 parte dalla prima libera fino ad arrivare alla Z.

Se si vuole uniformare il comportamento è necessario uno script, che ha anche il pregio di forzare il tentativo in determinati range.

Di seguito uno script vbs e un batch tentare la mappatura sulle lettere X,Y,S

Dim letters, WshNetwork, Fso

letters = Array(“X”,”Y”,”S”)

Set WshNetwork=WScript.CreateObject(“WScript.Network”)

Set Fso = WScript.CreateObject(“Scripting.FileSystemObject”)

For Each letter In letters
    If (Not fso.DriveExists(letter)) Then
 WshNetwork.MapNetworkDrive letter & “:”, “\\ComputerName\ShareName”
        Exit For
    End If
Next

Set letters = Nothing
Set WshNetwork = Nothing
Set Fso = Nothing

Di seguito un batch tentare la mappatura sulle lettere X,Y,S

SETLOCAL

REM Search Letter

FOR %%l in (X Y S) DO (
  IF NOT EXIST %%l: (
    SET FirstAvailableDrive=%%l:
    GOTO :EndSearchLetter
  )
)

:EndSearchLetter

IF “%FirstAvailableDrive%” GTR “” (
  NET USE %FirstAvailableDrive% \\ComputerName\ShareName /persistent:no
)

ENDLOCAL