Захватить информацию монитора Powershell - PullRequest
0 голосов
/ 01 октября 2018

Итак, я поигрался с этим фрагментом кода, который нашел, но не могу понять, как включить его в функцию.

$Monitors = Get-WmiObject WmiMonitorID -Namespace root\wmi
        ForEach ($Monitor in $Monitors)
{
$Manufacturer = ($Monitor.ManufacturerName -notmatch 0 | ForEach{[char]$_}) -join ""
$MName = ($Monitor.UserFriendlyName -notmatch 0 | ForEach{[char]$_}) -join ""
$MSerial = ($Monitor.SerialNumberID -notmatch 0 | ForEach{[char]$_}) -join ""
Echo $Manufacturer
Echo $MName
Echo $MSerial
}    

Эхо есть только для тестированияно это работает как есть.Как только я пытаюсь поместить все это в функцию, ничего не выплевывается.Я также не уверен, как создать массив, чтобы данные могли быть объединены в одну ячейку.В качестве примера можно привести последовательную ячейку 1 + 2 монитора, модель 2 + ячейку монитора 2 *.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 01 октября 2018

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

function Get-MonitorDetails
{
  param
  (
    [Object]
    [Parameter(Mandatory=$true, ValueFromPipeline=$true, HelpMessage="Data to process")]
    $InputObject
  )
  process
  {
    $Manufacturer = ($InputObject.ManufacturerName -notmatch 0 | ForEach-Object{[char]$_}) -join ""
    $MName = ($InputObject.UserFriendlyName -notmatch 0 | ForEach-Object{[char]$_}) -join ""
    $MSerial = ($InputObject.SerialNumberID -notmatch 0 | ForEach-Object{[char]$_}) -join ""

    return [pscustomobject]@{
      Manufacturer = $Manufacturer
      MName        = $MName
      MSerial      = $MSerial
    }
  }
}

Get-WmiObject WmiMonitorID -Namespace root\wmi | Get-MonitorDetails
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...