pixel0815

Zeichen verketten in Powershell mit Bedingung

Hallo zusammen,

ich habe eine Frage zur Verbindung von einzelnen Bausteinen eines Arrays.
Aus einer CSV Datei wird folgende Zeilen ausgelesen (Beispielhaft):

Microsoft Windows Server 2012 R2 Datacenter
Microsoft Windows Server 2016 Standard


Die Zeile lasse ich mit $OS = $MS.Operating System' -split " " zerlegen.
Jetzt kann ich ja ne nachdem ein paar Variablen füllen und später das ganze so zusammensetzen wie ich es gerne möchte.
$Details.Produkthersteller = $OS
$Details.Produktname = $OS[1] + " " + $OS[2]  
$Details.Edition = $OS[5]
$Details.Version = $OS[3] + " " + $OS[4]  
Bei einem Wert von Microsoft Windows Server 2012 R2 Datacenter sieht das ganze so aus
Host              : 122
DNSName           : MaschineXAZ
CPUs              : 2
OS                : Microsoft Windows Server 2012 R2 Datacenter
Produkthersteller : Microsoft
Produktname       : Windows Server
Edition           : Standard
Version           : 2012 R2
Bei einem 2016er oder 2019er Server sieht das dann so aus

Host              : 12345
DNSName           : server4
CPUs              : 2
OS                : Microsoft Windows Server 2019 Standard
Produkthersteller : Microsoft
Produktname       : Windows Server
Edition           : 
Version           : 2019 Standard
Kann man das eleganter Lösen?

Der Skriptteil sieht so aus
foreach($MS in $MSExport){

$Details = "" | select Host, DNSName, CPUs, OS , Produkthersteller, Produktname, Edition, Version  
$OS = $MS.'Operating System' -split " "  

$Details.Host = $MS.Host
$Details.DNSName = $MS.DNSName
$Details.CPUs = $MS.CPUs
$Details.OS = $MS.'Operating System'  
$Details.Produkthersteller = $OS
$Details.Produktname = $OS[1] + " " + $OS[2]  
$Details.Edition = $OS[5]
$Details.Version = $OS[3] + " " + $OS[4]  

$Report += $Details
}

Ich freu mich auf eine kleine Hilfestellung.
LG
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 5229117200

Url: https://administrator.de/forum/zeichen-verketten-in-powershell-mit-bedingung-5229117200.html

Ausgedruckt am: 24.04.2025 um 02:04 Uhr

pixel0815
pixel0815 06.01.2023 um 13:32:21 Uhr
Goto Top
Ich hab das jetzt erstmal in mit if else gelöst.

if ($OS -contains '2016' -or $OS -contains '2019')  
{
    $Details.Edition = $OS[4]
    $Details.Produkthersteller = $OS
    $Details.Produktname = $OS[1] + " " + $OS[2]  
    $Details.Version = $OS[3]
}
else
{
    $Details.Produkthersteller = $OS
    $Details.Produktname = $OS[1] + " " + $OS[2]  
    $Details.Edition = $OS[5]
    $Details.Version = $OS[3] + " " + $OS[4]  

}