Вывести список подключенных сетевых дисков из командной строки в текстовый файл
Есть ли команда, которую можно использовать из командной строки для вывода списка подключенных сетевых дисков в локальной системе и их расположения в сети в текстовый файл?
Это будет использоваться только в системах под управлением Windows, работающих под управлением Windows XP.
4 ответа
net use > mapped_drives.txt
должен вывести список подключенных дисков в текстовый файл mapped_drives.txt
Хотя я проверял это на Windows 7, Microsoft говорит, net use
будет работать на Windows XP
NET USE
отображал только подключенные диски для моего текущего пользователя и текущего подключения. После еще нескольких поисков я попал сюда:
Информация о подключении дисков хранится в реестре, посмотрите в HKEY_USERS\USER\Network
Итак, я сделал reg query HKEY_USERS
чтобы вывести список пользователей (это были некоторые коды Windows), я запросил их всех по отдельности, например:
reg query HKEY_USERS\S-1-5-21-4205028929-649740040-1951280400-500\Network /s
Если вы запросите их все, вы получите все сопоставления для всех пользователей.
Сохраните следующее как файл.vbs и запустите его. Он создаст MappedDrives.txt в папке, из которой запускается файл VBS. Вы можете заменить strComptuer именем другого компьютера и получить список с удаленного компьютера.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objOutFile = objFSO.CreateTextFile(".\MappedDrives.txt")
Set colDrives = objWMIService.ExecQuery _
("Select * From Win32_LogicalDisk Where DriveType = 4")
For Each objDrive in colDrives
objOutFile.WriteLine(objDrive.DeviceID & " (" & _
objDrive.ProviderName & ")")
Next
objOutFile.Close
Следующий cmd (запускаемый от имени администратора) покажет все карты дисков для всех пользователей (извлекая информацию из реестра)
for /f "tokens=1* delims=" %i in ('reg query HKEY_USERS /f S* /k /v ^| findstr /v /c:"End of search"')do @echo. & @( reg query "%i\Volatile Environment" /s /f USERNAME /v 2>NUL & @reg query %i\Network /f RemotePath /s 2>NUL )| findstr /r /v /c:"End of search" /c:"^$" /c:"Volatile"