Pregunta

Estoy tratando de obtener una lista de todas mis unidades asignadas para una actualización del sistema y me gustaría obtener esta información a través de un archivo por lotes. ¿Cómo puedo hacer esto?

Para puntos de bonificación: ¿Cómo puedo escribir la asignación de estas unidades en el nuevo servidor?

¿Fue útil?

Solución

La lista de asignaciones actuales será devuelta por

net use

La transferencia funcionaría así (por diversión 1 , hagamos eso en un script por lotes en lugar de 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

la salida es algo como esto:

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

Simplemente almacene eso en un archivo por lotes y estará listo para comenzar.


1 En realidad, "diversión" No es la palabra correcta aquí. ;-)

Otros consejos

Para enumerar las unidades asignadas

Net Use

Para asignar una nueva unidad

Net Use G: \\Server\Path

Puedes hacer esto usando vbscript

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

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

Y puede asignar unidades de red con

Set objNetwork = CreateObject("WScript.Network") 
objNetwork.MapNetworkDrive "G:", "\\Server\Path"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top