Получение объекта WMI с удаленного компьютера: Инвентаризация компьютеров с использованием PowerShell
Как я могу инвентаризировать удаленные компьютеры с использованием PowerShell? Ответ - с помощью Get-WmiObject на удаленном компьютере. В этом посте предоставляется полное руководство. Продолжайте чтение, если вас это интересует.
Как подключиться к WMI удаленно?
Windows Management Instrumentation (WMI) - это встроенная в Windows инфраструктура управления для запроса данных управления и операций. Его можно использовать для запроса информации о выполнении процессов, установленном программном обеспечении, информации о BIOS и многом другом на локальных и удаленных компьютерах.
Команда Get-WmiObject получает экземпляры классов WMI или информацию о доступных классах WMI. Вы можете использовать параметр ComputerName для указания удаленного компьютера, чтобы подключиться к WMI удаленно.
Как использовать PowerShell Get-WmiObject на удаленном компьютере
Затем мы рассмотрим, как использовать PowerShell Get-WmiObject на удаленном компьютере для инвентаризации информации о компьютере.
Если указан параметр Query, команда выполняет язык запросов WMI (WQL). Если указан параметр List, команда получает информацию о доступных классах WMI в указанном пространстве имен. Параметр ComputerName используется для указания компьютеров. Рассмотрим несколько примеров.
Сначала давайте протестируем соединение с WMI на удаленном компьютере. Ниже приведен пример, позволяющий вам протестировать соединение с WMI на удаленном компьютере с именем PC1.
- Get-WmiObject -query "SELECT * FROM Win32_OperatingSystem" -ComputerName PC1
Вы также можете перечислить список сетевых папок с удаленного компьютера, используя класс WMI Win32_Share в PowerShell. Здесь FT - это команда Format-Table, вы можете изменить ее на FL для отображения результатов в виде списка.
- Get-WMIObject -ComputerName "PC1" -Query "SELECT * FROM Win32_Share" | FL
Вы можете использовать синтаксис SQL-запросов для применения фильтра в классе Win32_Share. В следующем сценарии PowerShell фильтруются и перечисляются только сетевые папки для общего доступа (не скрытые папки), добавляя фильтр Type=0.
- Get-WMIObject -ComputerName "PC1" -Query "SELECT * FROM Win32_Share Where Type=0" | FT
Дополнительные примеры
Пример 1: Получает службы на удаленном компьютере PC1:
- Get-WmiObject -Class Win32_Service -ComputerName PC1
Вы также можете получить список служб на удаленном компьютере, используя Get-WmiObject remote computerCredential. В следующем примере используется параметр Credential. Значением параметра Credential является имя учетной записи пользователя. Пользователю будет предложено ввести пароль.
- Get-WmiObjectWin32_Service -Credential FABRIKAM\administrator -ComputerName Fabrikam
Пример 2: Остановить службу на удаленном компьютере PC1:
- (Get-WmiObject -Class Win32_Service -Filter "имя="WinRM"' -ComputerName PC1).StopService()
Пример 3: Получить информацию о BIOS на удаленном компьютере PC1:
- Get-WmiObject -Class Win32_Bios -ComputerName PC1| Format-List -Property *
Примечание
Следует отметить, что команда Get-WmiObject была заменена на команду Get-CimInstance в PowerShell 3.0. Например, следующая команда отображает каждое запущенное имя процесса вместе с его временем работы ядра в порядке убывания:
- Get-CimInstance -Class Win32_Process -ComputerName DC1 | Select-Object -Property Name,KernelModeTime | Sort-Object KernelModeTime -Descending
AnyViewer: Графическое решение для удаленного рабочего стола в Windows
Если вы хотите более прямой способ получения данных об управлении и операциях компьютера, мы настоятельно рекомендуем использовать AnyViewer - бесплатную программу для удаленного рабочего стола, которая позволяет удаленно управлять компьютером с другого компьютера. Она предоставляет графический интерфейс пользователя для удаленного компьютера, который более прост и интуитивно понятен по сравнению с PowerShell.
Шаг 1. Скачайте, установите и запустите AnyViewer на обоих компьютерах.
Шаг 2. Перейдите к Входу и затем нажмите Зарегистрироваться. (Если вы уже зарегистрировались на официальном сайте, вы можете сразу войти.)
Шаг 3. Заполните информацию для регистрации.
Шаг 4. Затем вы можете видеть, что вы успешно вошли в систему AnyViewer. Ваше устройство автоматически будет привязано к учетной записи, в которую вы вошли.
Шаг 5. Войдите в ту же учетную запись AnyViewer на двух устройствах, затем нажмите кнопку Удаленное управление в один клик, чтобы осуществить наблюдение за устройством с удаленным доступом.
✍Примечание: Если вы улучшите свою учетную запись до Professional или Enterprise-плана, то у вас будут больше возможностей:
- Вы сможете привязать больше устройств для осуществления наблюдения за устройством с удаленным доступом.
- Отобразится больше устройств, которые сейчас соединены, что удобно для просмотра истории соединений в любое время.
- Вы сможете подключиться к другому компьютеру в режиме конфиденциальности, что означает, что вы сможете затемнить экран и заблокировать мышь и клавиатуру удаленного компьютера, дополнительно защищая свою конфиденциальность.
Шаг 6. После того, как вы полностью контролируете удаленный компьютер, вы можете открыть любую программу и управлять ею так, как будто вы используете ее на самом деле.
Итог
Этот пост предоставляет вам полное руководство по использованию PowerShell Get-WmiObject на удаленном компьютере для инвентаризации информации о компьютере. Если вы хотите более прямой и интуитивно понятный способ запроса данных управления компьютером и операций, вам рекомендуется использовать AnyViewer.