New to Powershell and am confused.

This topic contains 4 replies, has 4 voices, and was last updated by  Erik Sundin 1 year, 10 months ago.

  • Author
  • #54213

    Larry Gross

    The command below works but with two monitors the second serial number is truncated I do not know why. Now obviously being new I did not write the code below.

    $monitorserial = gwmi WmiMonitorID -computername $x -Namespace root\wmi | ForEach-Object {($_.UserFriendlyName -notmatch 0 | foreach {[char]$_}) -join ""; ($_.SerialNumberID -notmatch 0 | foreach {[char]$_}) -join ""}
        Write-Host ("Monitor Model(s) and Serial Number(s) is $monitorserial") -ForegroundColor Blue
        Write-Host "`n"
    • This topic was modified 1 year, 10 months ago by  Larry Gross.
  • #54214

    Don Jones

    If you just run:

    gwmi WmiMonitorID -Namespace root\wmi | fl *

    locally on an HP, is all the information present?

    • #54216

      Larry Gross

      Thank you for the reply. I was doing some further research and found out that if there is only one monitor attached to a system the number comes out correctly. Also I should have been clearer on what I am doing. I was verifying serial numbers on remote systems that I do not have access to but know the system and monitors are on. I verified this on a system with only one hp monitor attached.

      • This reply was modified 1 year, 10 months ago by  Larry Gross.
  • #54226

    Mike Eyler

    Try this:

    $Workstations = @('pc1','pc2')

    foreach ($Workstation in $Workstations)

    $SerialNumbers = (Get-WmiObject -Namespace root\wmi -Class WmiMonitorID -ComputerName $Workstation | Where-Object {(($_.UserFriendlyName -and $_.SerialNumberID) -notmatch 0)}).SerialNumberID -join ""

    I did not test on a dual monitor system. You may need to do further text manipulation(ex, -Split) if it returns two or more serial numbers.

    • This reply was modified 1 year, 10 months ago by  Mike Eyler.
  • #54244

    Erik Sundin

    Just wanted to add that this code is a bit broken, excluding zeros (-notmatch 0) yield some weird results. As an example, on my system the models DELL U2713HM and LA2405 becomes DELL U713HM and LA405 (the code works if I don´t exclude the zeros from .UserFriendlyName).

You must be logged in to reply to this topic.