Jump to content

Powershell Abfrage nach Hersteller


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben (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 von TechTech
Geschrieben

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.  ;-)

Geschrieben

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

 

  • Like 2
Geschrieben

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.

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...