TechTech 0 Geschrieben 16. April 2020 Melden Geschrieben 16. April 2020 (bearbeitet) Hallo Liebe Communitiy Ich will mir ein Script basteln, welches den Hersteller des Systems ausliest und wenn es z.B. Fujitsu ist, soll etwas ausgeführt werden. Folgendes Habe ich bereits erreicht: $Hersteller = Get-ComputerInfo -Property "CsManufacturer" | Format-Table -HideTableHeaders Somit habe ich in der Variable Hersteller den Hersteller stehen. (Allerdings mit einer vorangehenden Leerzeile. Ist diese hier vllt. sogar das Problem?) Nun will ich es in einer IF Schleife verknüpfen. IF ($Hersteller -like "*FUJITSU") { Write-Output "hat geklappt" } else { Write-Output "looooser" } In der IF Anweisung habe ich es bereits mit mehreren Vergleichsoperatoren (-eq, -like, etc) versucht. Alle haben nicht geklappt. Er springt immer in die else anweisung. Kann mit jmd. sagen was der Fehler ist? bearbeitet 16. April 2020 von TechTech
BOfH_666 586 Geschrieben 16. April 2020 Melden Geschrieben 16. April 2020 Hallo TechTech und Willkommen. Get-ComputerInfo ist auf den meisten Computern wahnsinnig träge, weil es erst mal eine Menge Informationen einsammelt, die man aber meistens nicht braucht. In Deinem Fall würde ich etwas Einfacheres empfehlen: $Hersteller = Get-CimInstance -ClassName CIM_ComputerSystem | Select-Object -ExpandProperty Manufacturer IF ($Hersteller -like 'fujitsu*'){ 'cool' } else { 'uncool' } Außerdem solltest Du keine Format cmdlets verwenden, wenn Du die Informationen weiterverarbeiten möchtest. Format cmdlets sind nur gut um Ausgaben in der Konsole für uns Menschen aufzubereiten. Computer (Programme, Scripte) brauchen das nicht und es stört meistens eher.
NilsK 3.045 Geschrieben 16. April 2020 Melden Geschrieben 16. April 2020 Moin, du stolperst über die Eigenschaften der PowerShell: die arbeitet mit Objekten, nicht mit Text. Du versuchst also gerade, ein Objekt mit einem String zu vergleichen, und das geht natürlich nicht. Gib mal $Hersteller aus - das Ergebnis dürfte ähnlich diesem sein: PS E:\Daten\hurz> $Hersteller CsManufacturer -------------- HP Deine Variable hat also eine Eigenschaft. Diese musst du abfragen. Gruß, Nils 2
daabm 1.428 Geschrieben 16. April 2020 Melden Geschrieben 16. April 2020 Weil ich grad extrem freundlich gelaunt bin Was Nils meint: Ersetze IF ($Hersteller -like "*FUJITSU") durch IF ($Hersteller.CSManufacturer -like "*FUJITSU") Und statt -like würde ich -match 'FUJITSU' verwenden, dann kann davor und danach stehen, was will.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden