В этом блоге я нашел что-то похожее на ваш вопрос: определите, какие диски сопоставлены с общими сетевыми ресурсами, у них есть сценарий, и вы можете отредактировать его по своему усмотрению. Внимательно прочитайте.
И вот это Win32_LogicalDisk на помощь. С помощью этого класса мы можем не только определить, какие диски сопоставлены с общими сетевыми ресурсами, но и определить, к каким сетевым ресурсам они подключены. И для этого не требуется ничего, кроме такого скрипта:
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\cimv2”)
Set colDrives = objWMIService.ExecQuery _
(“Select * From Win32_LogicalDisk Where DriveType = 4”)
For Each objDrive in colDrives
Wscript.Echo “Drive letter: ” & objDrive.DeviceID
Wscript.Echo “Network path: ” & objDrive.ProviderName
Next
Сценарий запускается при подключении к службе WMI на локальном компьютере. (Как обычно, вы можете изменить этот скрипт для запуска на удаленном компьютере, просто назначив имя этого компьютера переменной strComputer.) Затем мы используем эту строку кода, чтобы вернуть коллекцию всех подключенных сетевых дисков:
Set colDrives = objWMIService.ExecQuery _
(“Select * From Win32_LogicalDisk Where DriveType = 4”)
Ключ здесь - как вы уже догадались - лежит в нашем предложении «Где».
Мы запрашиваем все экземпляры класса, где DriveType равен 4; Излишне говорить, что DriveType, равный 4, представляет подключенный сетевой диск. (Для других значений DriveType см. WMI SDK на MSDN.) Запрос возвращает коллекцию всех подключенных дисков; Затем мы настраиваем цикл For Each, чтобы пройти через эту коллекцию. Для каждого подключенного диска мы выводим значение двух свойств: DeviceID, которое возвращает букву диска для диска; и ProviderName, который возвращает сетевой ресурс, к которому подключен диск.
Другими словами, мы получаем информацию, похожую на эту:
Drive letter: E:
Network path: \\atl-fs-01\public
Drive letter: F:
Network path: \\atl-fs-01\finance
Drive letter: G:
Network path: \\atl-fs-01\users\kenmyer