3

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

Сценарий: укажите список любого компьютера с сопоставлением дисков в \CompanyFileShare \c $

Я открыт для использования существующего программного обеспечения, или пытаюсь придумать сценарий.

3 ответа3

4

На сервере откройте «Управление компьютером» и перейдите к «Системные инструменты» -> «Общие папки».

  • В папке Shares будет указан номер клиентских подключений для каждого общего ресурса.
  • Папка Sessions будет перечислять каждое клиентское подключение к любой общей папке
  • В папке «Открытые файлы» будут перечислены заблокированные файлы по имени и имени пользователя (но не по клиентскому компьютеру).

Вы не можете просматривать список клиентских подключений на одну акцию.

Примечание. Оттуда вы можете экспортировать список, щелкнув правой кнопкой мыши и выбрав Экспорт списка.

2

В этом блоге я нашел что-то похожее на ваш вопрос: определите, какие диски сопоставлены с общими сетевыми ресурсами, у них есть сценарий, и вы можете отредактировать его по своему усмотрению. Внимательно прочитайте.

И вот это 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
1

Я закончил тем, что использовал инструмент, который у нас есть в доме, под названием Lansweeper. Сначала я не знал о его возможностях, но в нем много информации о наших ресурсах, включая подключенные сетевые диски. Я смог в кратчайшие сроки составить отчет по всем нашим активам более 3000, и я получил именно то, что мне было нужно. Спасибо за помощь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .