Вывести список подключенных сетевых дисков из командной строки в текстовый файл

Есть ли команда, которую можно использовать из командной строки для вывода списка подключенных сетевых дисков в локальной системе и их расположения в сети в текстовый файл?

Это будет использоваться только в системах под управлением 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"

Другие вопросы по тегам