Remote SN von angeschlossenen Monitoren per PS auslesen
Ich habe eine Liste der PCs im Netzwerk per PS erstellen und zwar mit folgenden Befehl:
Jetzt möchte Ich noch die Angeschlossenen Monitore (S/N) auslesen und mit auf die Liste bekommen, dieses gerne uch per PS auslesen und in die CSV Datei importieren.
Kann mir wer dabei helfen, jemand ne Idee wie man das realisieren könnte, meine Versuche haben nichts passenden ausgegeben.
Dankeschön.
Get-ADComputer -Filter {enabled -eq $true} -Properties *|select Name, OperatingSystem, LastLogonDate | Export-Csv C:\ad_objects.csv -NoTypeInformation -Encoding UTF8 -Delimiter ";"
Jetzt möchte Ich noch die Angeschlossenen Monitore (S/N) auslesen und mit auf die Liste bekommen, dieses gerne uch per PS auslesen und in die CSV Datei importieren.
Kann mir wer dabei helfen, jemand ne Idee wie man das realisieren könnte, meine Versuche haben nichts passenden ausgegeben.
Dankeschön.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 667845
Url: https://administrator.de/contentid/667845
Ausgedruckt am: 03.12.2024 um 17:12 Uhr
3 Kommentare
Neuester Kommentar
Auch kein Moin,
hier eine Funktion, die ich dafür verwende. Kombiniere das mit deinem Code, um mehrere PCs abzufragen:
hier eine Funktion, die ich dafür verwende. Kombiniere das mit deinem Code, um mehrere PCs abzufragen:
function Get-MonitorInfo {
[CmdletBinding()]
param (
[Parameter(ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)]
[string[]]$ComputerName = $env:COMPUTERNAME
)
process {
foreach ($Computer in $ComputerName) {
try {
$Monitors = Get-CimInstance -ClassName WmiMonitorID -Namespace root\wmi -ComputerName $Computer -ErrorAction Stop
foreach ($Monitor in $Monitors) {
$Manufacturer = ($Monitor.ManufacturerName -notmatch 0 | ForEach-Object {[char]$_}) -join ""
$Name = ($Monitor.UserFriendlyName -notmatch 0 | ForEach-Object {[char]$_}) -join ""
$Serial = ($Monitor.SerialNumberID -notmatch 0 | ForEach-Object {[char]$_}) -join ""
[PSCustomObject]@{
ComputerName = $Computer
Manufacturer = $Manufacturer
Name = $Name
SerialNumber = $Serial
}
}
}
catch {
Write-Error "Failed to retrieve monitor information from $Computer. Error: $_"
}
}
}
}
Versuchs mal damit, als ps1 speichern und mit entsprechenden Rechten ausführen
function Get-MonitorInfo {
[CmdletBinding()]
param (
[Parameter(ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)]
[string[]]$ComputerName = $env:COMPUTERNAME
)
process {
foreach ($Computer in $ComputerName) {
try {
$Monitors = Get-CimInstance -ClassName WmiMonitorID -Namespace root\wmi -ComputerName $Computer -ErrorAction Stop
foreach ($Monitor in $Monitors) {
$Manufacturer = ($Monitor.ManufacturerName -notmatch 0 | ForEach-Object {[char]$_}) -join ""
$Name = ($Monitor.UserFriendlyName -notmatch 0 | ForEach-Object {[char]$_}) -join ""
$Serial = ($Monitor.SerialNumberID -notmatch 0 | ForEach-Object {[char]$_}) -join ""
[PSCustomObject]@{
ComputerName = $Computer
Manufacturer = $Manufacturer
Name = $Name
SerialNumber = $Serial
}
}
}
catch {
Write-Error "Failed to retrieve monitor information from $Computer. Error: $_"
}
}
}
}
$MonitorInfo = @()
(Get-ADComputer -Filter {enabled -eq $true}).name | ForEach-Object {
If (Test-Connection $_ -Count 1 -Quiet) {
$MonitorInfo += Get-MonitorInfo -ComputerName $_
} else {
Write-Output "$_ ist nicht online"
}
}
$MonitorInfo | Export-Csv C:\monitor-serials.csv -NoTypeInformation -Encoding UTF8 -Delimiter ";"
Serie: PowerShell
Remote SN von angeschlossenen Monitoren per PS auslesen3