
145963
08.09.2020
Powershell Abfrage Computername Thinclient oder Fatclient?
Hallo an alle,
bin noch nicht lange Admin und habe nun eine Frage bezüglich der Abfrage in Powershell.
Wir haben hier ein Programm namens "OCS Inventory".
Mein Kollege sagt mir grade, dass dieses Programm nur auf den Fatclients installiert ist.
Auf den Thinclients, die an den Servern hängen natürlich nicht.
Jetzt zur eigentlichen Frage.
Kann man mit der Powershell erkennen ob es sich um Thinclients oder Fatclients handelt?
Mit der Abfrage kann ich ja zählen wieviele Computer im ActiveDirectory sind.
Kann man nun explizit nach Thinclients suchen und zählen und auch nach den Fatclients?
Gruß MotoGP
bin noch nicht lange Admin und habe nun eine Frage bezüglich der Abfrage in Powershell.
Wir haben hier ein Programm namens "OCS Inventory".
Mein Kollege sagt mir grade, dass dieses Programm nur auf den Fatclients installiert ist.
Auf den Thinclients, die an den Servern hängen natürlich nicht.
Jetzt zur eigentlichen Frage.
Kann man mit der Powershell erkennen ob es sich um Thinclients oder Fatclients handelt?
Mit der Abfrage kann ich ja zählen wieviele Computer im ActiveDirectory sind.
Kann man nun explizit nach Thinclients suchen und zählen und auch nach den Fatclients?
Gruß MotoGP
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 602727
Url: https://administrator.de/forum/powershell-abfrage-computername-thinclient-oder-fatclient-602727.html
Ausgedruckt am: 13.05.2025 um 12:05 Uhr
22 Kommentare
Neuester Kommentar
Direkt geht das nicht. Es gibt ja keinen Schalter für die Bauart.
Ich hatte neulich ein ähnliche Aufgabe vor mir. Ich musste Rechner nach Bauarten identifizieren. Sprich: Desktop, Minitower, Miditower, etc. da wir einen Ringtausch machen wollten. Glücklicherweise konnte ich das Problem lösen, da jeder Tower ein anderen Mainboard Hersteller hatte und ich übers DHCP an alle MAC-Adressen rankam und dann nach Hersteller sortieren konnte. Das Skript kann ich dir geben (sind bei mir 100 Zeilen).
Alternativ könntest du natürlich auch schauen auf welchem Rechner "OCS Inventory" installiert ist.
Gruß
Doskias
Ich hatte neulich ein ähnliche Aufgabe vor mir. Ich musste Rechner nach Bauarten identifizieren. Sprich: Desktop, Minitower, Miditower, etc. da wir einen Ringtausch machen wollten. Glücklicherweise konnte ich das Problem lösen, da jeder Tower ein anderen Mainboard Hersteller hatte und ich übers DHCP an alle MAC-Adressen rankam und dann nach Hersteller sortieren konnte. Das Skript kann ich dir geben (sind bei mir 100 Zeilen).
Alternativ könntest du natürlich auch schauen auf welchem Rechner "OCS Inventory" installiert ist.
Gruß
Doskias
Hallo
So einfach nicht. Es gibt kein Attribut das ThinClient/FatClient beinhaltet.
Je nachdem wie bei euch die Namenskonvention für Clients ist könntest du darüber gehen. Bei uns ist im Clientname an einer bestimmten Stellen NB/PC/TB untergebracht für Notebook, Desktop und Tablet. Alternativ kannst du auch über das Betriebssystem filtern. Dafür gibt es ein Attribut sofern deine Thinclients da was eintragen beim Domänenbeitritt
Manuel
Kann man nun explizit nach Thinclients suchen und zählen und auch nach den Fatclients?
So einfach nicht. Es gibt kein Attribut das ThinClient/FatClient beinhaltet.
Je nachdem wie bei euch die Namenskonvention für Clients ist könntest du darüber gehen. Bei uns ist im Clientname an einer bestimmten Stellen NB/PC/TB untergebracht für Notebook, Desktop und Tablet. Alternativ kannst du auch über das Betriebssystem filtern. Dafür gibt es ein Attribut sofern deine Thinclients da was eintragen beim Domänenbeitritt
Manuel
Moin,
zwei "Umwege":
Du suchst nach installierter Software (z. B. Office), die im Standard auf den fetten ist und auf den dünnen nicht.
Du suchst nach allen Rechnern im AD und nach allen im Inventory. Die Differenz sind die dünnen.
Der imho richtige Weg: Zwei OUs für fette und dünne. Dann hast Du das Problem nicht.
hth
Erik
zwei "Umwege":
Du suchst nach installierter Software (z. B. Office), die im Standard auf den fetten ist und auf den dünnen nicht.
Du suchst nach allen Rechnern im AD und nach allen im Inventory. Die Differenz sind die dünnen.
Der imho richtige Weg: Zwei OUs für fette und dünne. Dann hast Du das Problem nicht.
hth
Erik

Zwei OUs für fette und dünne
Oha, das gibt gefährliche Schieflage Du suchst nach installierter Software (z. B. Office), die im Standard auf den fetten ist und auf den dünnen nicht.
Das wird zwar funktionieren, hat aber aus meiner Sicht entscheidende Nachteile:
- die Clients müssen in dem Moment in dem abgefragt wird online sein
- es müssen alle Clients abgefragt werden, was schon etwas dauern kann
Das mit dem "müssen online sein" könnte man noch umgehen indem die Client die Softwareinventur beim Start machen und irgendwo eine Textdatei ablegen. Die Dateien könnte man dann entsprechend verarbeiten.
Eine Abfrage im AD ist aber definitiv schneller und unabhängiger.
Manuel
zwei "Umwege":
Du suchst nach installierter Software (z. B. Office), die im Standard auf den fetten ist und auf den dünnen nicht.
Du suchst nach allen Rechnern im AD und nach allen im Inventory. Die Differenz sind die dünnen.
Der imho richtige Weg: Zwei OUs für fette und dünne. Dann hast Du das Problem nicht.
Du suchst nach installierter Software (z. B. Office), die im Standard auf den fetten ist und auf den dünnen nicht.
Du suchst nach allen Rechnern im AD und nach allen im Inventory. Die Differenz sind die dünnen.
Der imho richtige Weg: Zwei OUs für fette und dünne. Dann hast Du das Problem nicht.
Ich werfe mal ein, dass die TCs gar nicht im AD zu finden sind.
Ich tippe einfach Mal daraus, dass die ThinClients kein Domänenmitglied sind, weil sich darauf ein (PXE) Linux befindet, welches eine Sitzung zum TS aufbaut - sodass das Member sein als Computer in der Domäne überflüssig bzw. zu Problem führen könnte.
Bei uns haben wir in der Firma fast ausschließlich ThinClients im Einsatz und in der Domäne befindet sich kein einziger.
Meines Wissens nach gibt es nicht alle Powershell Befehle auch für Linux. Sinnvoll wäre ggf. Im DHCP Server sich die Namen der Systeme herauszusuchen, da die clients normalerweise eine statische IP haben (wenn PXE)
Bei uns haben wir in der Firma fast ausschließlich ThinClients im Einsatz und in der Domäne befindet sich kein einziger.
Meines Wissens nach gibt es nicht alle Powershell Befehle auch für Linux. Sinnvoll wäre ggf. Im DHCP Server sich die Namen der Systeme herauszusuchen, da die clients normalerweise eine statische IP haben (wenn PXE)
Wenn es Windows-Thinclients sind kann das schon sein.
Das will man nicht wirklich als TC.
Moin,
Um was für ThinClients handelt es sich eigentlich?
Wildwuchs oder alles selber Hersteller, z.B. Igel.
Für letzteren gibt es ein PS-Modul, mit dem man sich gegen die UMS verbinden kann:
https://github.com/IGEL-Community/PSIGEL
Gruß
em-pie
Um was für ThinClients handelt es sich eigentlich?
Wildwuchs oder alles selber Hersteller, z.B. Igel.
Für letzteren gibt es ein PS-Modul, mit dem man sich gegen die UMS verbinden kann:
https://github.com/IGEL-Community/PSIGEL
Gruß
em-pie
Hi!
Du kannst eine WMI-Query auf Win32_SystemEnclosure absetzen. Darunter ist auch der ChassisType enthalten. Type 15 (Space-Saving) wäre ein ThinClient.
Eine Liste aller Chassis-Types :
1 - Andere
2 - Unbekannt
3 - Desktop
4 - Flacher Desktop
5 - Pizzabox
6 - Minitower
7 - Tower
8 - Tragbar
9 - Laptop
10 - Notebook
11 - Handheld
12 - Dockingstation
13 - All-in-One
14 - Subnotebook
15 - Platz sparend
16 - Lunchbox
17 - Hauptsystemchassis
18 - Erweiterungschassis
19 - Subchassis
20 - Buserweiterungschassis
21 - Peripheriechassis
22 - Speicherchassis
23 - Gestellchassis
24 - Versiegeltes Computergehäuse
Die Liste wurde irgendwann erweiter auf Convertibles. Siehe: https://thinkdeploy.blogspot.com/2017/04/new-enclosure-types-for-convert ...
Wenn ihr SCCM im Einsatz habt lässt sich das auch über eine Report-Query lösen.
Grüße!
Du kannst eine WMI-Query auf Win32_SystemEnclosure absetzen. Darunter ist auch der ChassisType enthalten. Type 15 (Space-Saving) wäre ein ThinClient.
Get-WmiObject -Class Win32_SystemEnclosure | Select-Object -Property ChassisTypes
Eine Liste aller Chassis-Types :
1 - Andere
2 - Unbekannt
3 - Desktop
4 - Flacher Desktop
5 - Pizzabox
6 - Minitower
7 - Tower
8 - Tragbar
9 - Laptop
10 - Notebook
11 - Handheld
12 - Dockingstation
13 - All-in-One
14 - Subnotebook
15 - Platz sparend
16 - Lunchbox
17 - Hauptsystemchassis
18 - Erweiterungschassis
19 - Subchassis
20 - Buserweiterungschassis
21 - Peripheriechassis
22 - Speicherchassis
23 - Gestellchassis
24 - Versiegeltes Computergehäuse
Die Liste wurde irgendwann erweiter auf Convertibles. Siehe: https://thinkdeploy.blogspot.com/2017/04/new-enclosure-types-for-convert ...
Wenn ihr SCCM im Einsatz habt lässt sich das auch über eine Report-Query lösen.
Grüße!
Class legt fest auf welches WMI-Object du losgehen willst. Das musst du explizit wissen.
Du kannst die das Tool WMIExplorer herunter laden ( https://devblogs.microsoft.com/scripting/weekend-scripter-the-wmi-explor ... ). Da werden alle WMI-Classes gelistet. Inklusive aller Properties usw.
Mit dem WMI Code Generator von MS kannst du die Query gleich als Code bereitstellen lassen (Copy n Paste): https://www.microsoft.com/en-us/download/details.aspx?id=8572
in c# würde der Code in etwa so aussehen:
und wenn du das noch übersetzt (Posting weiter oben) hast du gleich eine lesbare Ausgabe die du weiterverarbeiten kannst.
z.B.:
Und noch ein kleiner Tipp:
Das lässt sich auch als GPO verwirklichen oder beim Aufsetzen gleich einen entsprechenden Registry Eintrag setzen.
Du kannst die das Tool WMIExplorer herunter laden ( https://devblogs.microsoft.com/scripting/weekend-scripter-the-wmi-explor ... ). Da werden alle WMI-Classes gelistet. Inklusive aller Properties usw.
Mit dem WMI Code Generator von MS kannst du die Query gleich als Code bereitstellen lassen (Copy n Paste): https://www.microsoft.com/en-us/download/details.aspx?id=8572
in c# würde der Code in etwa so aussehen:
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2", "SELECT ChassisTypes FROM Win32_SystemEnclosure");
foreach (ManagementObject queryObj in searcher.Get())
{
if (queryObj["ChassisTypes"] != null)
{
UInt16 arrChassisTypes = (UInt16)(queryObj["ChassisTypes"]);
foreach (UInt16 arrValue in arrChassisTypes)
{
Console.WriteLine("ChassisTypes: {0}", arrValue);
}
}
}
und wenn du das noch übersetzt (Posting weiter oben) hast du gleich eine lesbare Ausgabe die du weiterverarbeiten kannst.
z.B.:
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2", "SELECT ChassisTypes FROM Win32_SystemEnclosure");
foreach (ManagementObject queryObj in searcher.Get())
{
if (queryObj["ChassisTypes"] != null)
{
UInt16 arrChassisTypes = (UInt16)(queryObj["ChassisTypes"]);
foreach (UInt16 arrValue in arrChassisTypes)
{
Console.WriteLine((arrValue == 3) ? "Desktop" : "Was anderes");
}
}
}
Und noch ein kleiner Tipp:
Das lässt sich auch als GPO verwirklichen oder beim Aufsetzen gleich einen entsprechenden Registry Eintrag setzen.
Hier ein kleines Beispiel. Einfach in einem PS1 speichern und ausführen:
Function Get-ChassisType {
$typeList =@{
"1"="Andere"
"2"="Unbekannt"
"3"="Desktop"
"4"="Flacher Desktop"
"5"="Pizzabox"
"6"="Minitower"
"7"="Tower"
"8"="Tragbar"
"9"="Laptop"
"10"="Notebook"
"11"="Handheld"
"12"="Dockingstation"
"13"="All-in-One"
"14"="Subnotebook"
"15"="Platz sparend"
"16"="Lunchbox"
"17"="Hauptsystemchassis"
"18"="Erweiterungschassis"
"19"="Subchassis"
"20"="Buserweiterungschassis"
"21"="Peripheriechassis"
"22"="Speicherchassis"
"23"="Gestellchassis"
"24"="Versiegeltes Computergehäuse"}
Clear-Host
[string]$chasType = (Get-WMIObject -Query "SELECT * FROM Win32_SystemEnclosure" -Namespace "root/CIMV2" -ComputerName "." | select ChassisTypes).ChassisTypes
$toRet = $typeList[$chasType]
return $toRet
}
Get-ChassisType
Zitat von @mbehrens:
Ich werfe mal ein, dass die TCs gar nicht im AD zu finden sind.
zwei "Umwege":
Du suchst nach installierter Software (z. B. Office), die im Standard auf den fetten ist und auf den dünnen nicht.
Du suchst nach allen Rechnern im AD und nach allen im Inventory. Die Differenz sind die dünnen.
Der imho richtige Weg: Zwei OUs für fette und dünne. Dann hast Du das Problem nicht.
Du suchst nach installierter Software (z. B. Office), die im Standard auf den fetten ist und auf den dünnen nicht.
Du suchst nach allen Rechnern im AD und nach allen im Inventory. Die Differenz sind die dünnen.
Der imho richtige Weg: Zwei OUs für fette und dünne. Dann hast Du das Problem nicht.
Ich werfe mal ein, dass die TCs gar nicht im AD zu finden sind.
Das kann schon sein. Aber nach Aussage des TO sind sie das.