Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Probleme bei dem Versand der Ergebnissen einer Inventarisierung

$
0
0

Hallo Skripter,

in einem Skript zur Inventarisierung von dem PC und den angeschlossenen Monitoren gibt es Probleme bei dem Versand der Ergebnisse per E-Mail.

Die Monitordaten werden in einem Array gespeichert, da möglicherweise mehrere angeschlossen werden können. Habe dann versucht diese Array auch im E-Mailbody zu schreiben aber es kommt nur die erste Seriennummer vor und der Rest bleibt leer.

Wenn diese Arrays auf der Console ausgegeben werden funktioniert es ohne Probleme und alles wird so angezeigt wie es sollte.

Habe dann versucht die Arrays in Strings umzuwandeln und diese anzuzeigen, aber es ändert nichts am Ergebnis.

#########################################
###Inventarisierung für Win 10 Rechner###
#########################################

# Informationen über den Computer auslesen #
############################################

#Auslesen der Mac-Addresse
[String] $MacAddress_Computer = (Get-NetAdapter).MacAddress

#Auslesen des Computernamens
[String] $Name_Computer = $env:COMPUTERNAME

$ComputerInfo = (Get-ComputerInfo)
    #Auslesen des Prozessors
    [String] $Prozessor_Computer = ($ComputerInfo).CsProcessors.Name
    #Auslesen des Herstellers
    [String] $Hersteller_Computer = ($ComputerInfo).CsManufacturer
    #Auslesen des Models
    [String] $Model_Computer = ($ComputerInfo).CsModel
    #Auslesen des Betriebssystems
    [String] $Betriebssystem_Computer = ($ComputerInfo).OsName
    #Auslesen der Seriennummer
    [String] $Seriennummer_Computer = Get-WmiObject -Class Win32_BIOS -ComputerName $Name_Computer


#  Informationen über die angeschlossenen Monitore auslesen #
#############################################################

#Auslesen der Seriennummer(n)
[array] $Seriennummer_Monitor = Get-WmiObject WmiMonitorId -Namespace root\wmi|ForEach-Object{($_.SerialnumberID|ForEach-Object{[char]$_}) -join ""}

#Auslesen der Product ID(s)
[array] $ProduktID_Monitor = Get-WmiObject WmiMonitorId -ComputerName $Name_Computer -Namespace root\wmi|ForEach-Object{($_.ProductCodeID|ForEach-Object{[char]$_}) -join ""}

#Auslesen des Herstellers
[array] $Hersteller_Monitor = Get-WmiObject WmiMonitorId -ComputerName $Name_Computer -Namespace root\wmi|ForEach-Object{($_.ManufacturerName|ForEach-Object{[char]$_}) -join ""}

#Auslesen des Produktionsjahres
[array] $Produktionsjahr_Monitor = (Get-WmiObject WmiMonitorId -ComputerName $Name_Computer -Namespace root\wmi).YearOfManufacture

#Auslesen des Angeschlossenen Computers
[array] $Computername_Monitor = (Get-WmiObject WmiMonitorId -ComputerName $Name_Computer -Namespace root\wmi).PSComputerName

#Auslesen der Anzahl an Monitoren
[int16] $anzahl = $Seriennummer_Monitor.Count




#Ergebnise aufbereiten für den E-Mailversand
[String] $SN_M0 = ($Seriennummer_Monitor[0]).ToString()
[String] $PN_M0=($ProduktID_Monitor[0]).ToString()
[String] $H_M0=($Hersteller_Monitor[0]).ToString()
[String] $Pj_M0=($Produktionsjahr_Monitor[0]).ToString()
[String] $Cn_M0=($Computername_Monitor[0]).ToString()

[String] $SN_M1=($Seriennummer_Monitor[1]).ToString()
[String] $PN_M1=($ProduktID_Monitor[1]).ToString()
[String] $H_M1=($Hersteller_Monitor[1]).ToString()
[String] $Pj_M1=($Produktionsjahr_Monitor[1]).ToString()
[String] $Cn_M1=($Computername_Monitor[1]).ToString()

#Emailversand
$PSEmailServer = "******"


Send-MailMessage -to "test@test.de" -from "Powershell <Test@test.de>" -Subject "Inventarisierung" -Encoding UTF8 -Body "
PC:
MAC-Addresse: $MacAddress_Computer      
Hostname: $Name_Computer                
Prozessor: $Prozessor_Computer         
Hersteller: $Hersteller_Computer        
Model: $Model_Computer                 
OS: $Betriebssystem_Computer          


Monitore angeschlossen: $anzahl Stk. 

Seriennummer: 1. $SN_M0 
              2. $SN_M1 
Produktnummer: 1. $PN_M0 
               2. $PN_M1 
Hersteller: 1. $H_M0 
            2. $H_M1 
Produktionsjahr: 1. $Pj_M0 
                 2. $Pj_M1 
Hostname des angeschlossenen PCs: 1. $Cn_M0 
                                  2. $Cn_M1 

" 

Der E-Mailtext sieht wie folgt aus:

"

PC:

MAC-Adresse: MAC-Adresse

Hostname: Host

Prozessor: Prozessor

Hersteller: Hersteller

Model: Model

OS: OS

Monitor(e):

Seriennummer: 1. Seriennummer

"

Mit freundlichen Grüßen

Dominik Hartl


Viewing all articles
Browse latest Browse all 2314