Domanda

Sto cercando di ottenere un elenco di tutte le mie unità mappate per un aggiornamento del sistema e vorrei ottenere queste informazioni tramite un file batch. Come posso fare questo?

Per punti bonus: Come posso scriptare la mappatura di queste unità sul nuovo server?

È stato utile?

Soluzione

L'elenco delle mappature correnti verrà restituito da

net use

Il trasferimento funzionerebbe in questo modo (per il divertente 1 , facciamolo nello script batch anziché in VBScript):

@echo off

setlocal EnableDelayedExpansion

set letter=.
set uncpath=.
set colon=.

for /f "delims=" %%l in ('net use') do @(
  for /f "tokens=2" %%t in ("%%l") do @set letter=%%t
  for /f "tokens=3" %%t in ("%%l") do @set uncpath=%%t

  set colon=!letter:~1,1!

  if "!colon!" EQU ":" (
    echo if exist !letter! net use !letter! /delete
    echo net use !letter! !uncpath! /persistent:yes
  )
)

endlocal

l'output va in questo modo:

if exist M: net use M: /delete
net use M: \\someserver\someshare /persistent:yes
if exist N: net use N: /delete
net use N: \\otherserver\othershare /persistent:yes

Basta archiviarlo in un file batch e sei a posto.


1 In realtà, " fun " non è la parola giusta qui. ; -)

Altri suggerimenti

Per elencare le unità mappate

Net Use

Per mappare una nuova unità

Net Use G: \\Server\Path

Puoi farlo usando vbscript

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives

For Each objDrive in colDrives
    Wscript.Echo "Drive letter: " & objDrive.DriveLetter
Next

E puoi mappare le unità di rete con

Set objNetwork = CreateObject("WScript.Network") 
objNetwork.MapNetworkDrive "G:", "\\Server\Path"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top