TechTech 0 Geschrieben 16. April 2020 Melden Teilen 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 Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 16. April 2020 Melden Teilen 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. Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 16. April 2020 Melden Teilen 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 Zitieren Link zu diesem Kommentar
daabm 1.354 Geschrieben 16. April 2020 Melden Teilen 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. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.