![]() |
Мониторы, выбрать нужное значение.
Всем доброго времени суток! Требуется получить информацию о модели\сн мониторов. Команды найдены и хорошо отрабатывают, но когда в конфигурации пк больше одного монитора, то отображается две, три модели\сн монитора в одну строку:
Код:
HP E231 LG IPS FULLHD Код:
$mn = gwmi wmimonitorid -Namespace root\wmi Код:
([System.Text.Encoding]::ASCII.GetString($wmiMonitorID.UserFriendlyName)).Replace("$([char]0x000)","") Код:
HP E231LG IPS FULLHD |
Код:
$monitors = Get-WmiObject WmiMonitorID -Namespace root\wmi |
Как достать нужное я уже описал выше. Но вас не понял, как все таки из строки с двумя моделями мониторов достать только первую модель или вторую. Ваш код отрабатывает так:
Код:
PS D:\PowerShell\pc_info> $monitors = Get-WmiObject WmiMonitorID -Namespace root\wmi Цитата:
|
Почитал по вашей ссылке, у них проблема другая. У меня все получается достать, просто не могу правильно форматировать. Есть пк, у него два монитора, команда обычно отрабатывает и выдает обе модели в одну строку. Мне нужно записать обе модели в разные переменные, для дальнейшей обработки. Фактически я уже добился этого таким кодом:
Код:
$mn = gwmi wmimonitorid -Namespace root\wmi |
Цитата:
Код:
$monitors = Get-WmiObject wmimonitorid -Namespace root\wmi| Код:
$monitors # тут все |
Цитата:
Код:
$result[0] |
Цитата:
Код:
PS D:\PowerShell\pc_info> $monitors = Get-WmiObject WmiMonitorID -Namespace root\wmi -ComputerName "123-5445" Цитата:
Код:
$name = "123-5445" |
дальше уже за гранью моего понимания. Хочу встроить код в готовый скрипт модуля get-systeminfo, так как он не умеет разделять мониторы, но умеет параллелить опрос множества пк. Как я понял модуль запрашивает всю инфу wmi, а далее уже выбирает нужное. То есть команды встречающиеся в скриптах идут без команды обращения к get-wmiObject. Изначально запускается командой:
Код:
Get-SystemInfo -computername $name -Properties MonitorName Код:
MonitorName= '-Class wmiMonitorID -Script Monitor\MonName.ps1' Код:
if ($wmiMonitorID.UserFriendlyName -ne $null) Код:
ПРЕДУПРЕЖДЕНИЕ: 123-5445 Исключение при вызове "GetString" с "1" аргументами: "Массив не может быть неопределенным. Код:
ПРЕДУПРЕЖДЕНИЕ: 123-5445 Не удается индексировать в объект типа System.String. Статья на хабре, про модуль GET-SYSTEMINFO |
Griboed0ff, воспользуйтесь программой WinAudit, она поддерживает командную строку и умеет выгружать отчёты в csv, откуда потом можно достать что угодно.
Я уже ранее упоминал эту программу в другой теме, даже код приводил. |
Цитата:
|
решение нашлось, опять невероятный костыль. Наверно есть более правильное решение, но тут получается, что модуль редактирован и работает как надо.
-костыль для первого монитора: Код:
if ($wmiMonitorID.UserFriendlyName -ne $null) Код:
if ($wmiMonitorID.UserFriendlyName.Length -gt 13) |
Время: 08:30. |
Время: 08:30.
© OSzone.net 2001-