Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Systemdaten auslesen mit Powershell

Mitglied: AnkhMorpork

AnkhMorpork (Level 2) - Jetzt verbinden

18.02.2014, aktualisiert 29.07.2015, 11450 Aufrufe, 2 Kommentare, 4 Danke

Hallo zusammen,

oft werden Fragen zu Problemen gestellt, ohne das betroffene System hinreichend vorzustellen. Keine Lust, keine Ahnung, keine Zeit ...
Mit einem kleinen Script ist das schnell erledigt, das System hält die Daten ja vor. Ich habe mal ein Powershell-Script zusammengestellt, das diese Aufgabe schnell und unkompliziert erledigt:

01.
<# MyMachine.ps1 
02.
Systemdaten abfragen (via WMI-Objekte) ... auch remote möglich ... Bildschirmausgabe ...  
03.
Ausgabe in Datei schreiben: .\MyMachine.ps1 > "MachineData.txt" 
04.
#> 
05.
 
06.
Param 
07.
08.
[String]$Computer = "LocalHost"  # entspricht $Computer = "." 
09.
10.
 
11.
$Line = "`n" # Zeilenumbruch schreiben 
12.
 
13.
Function Get-ComputerInfo 
14.
15.
$Line + "COMPUTER:" 
16.
"---------" 
17.
# collect computer data: 
18.
$colItems = Get-WmiObject -class win32_ComputerSystem -Computername $Computer 
19.
 
20.
Foreach($objItem in $colItems) 
21.
22.
"Manufacturer         : " + $objItem.Manufacturer 
23.
"Model                : " + $objItem.Model 
24.
"Name                 : " + $objItem.Name 
25.
"Domain               : " + $objItem.Domain 
26.
"Number of processors : " + $objItem.NumberOfProcessors 
27.
"Physical memory      : " + [Math]::Round($objItem.TotalPhysicalMemory/1GB, 2) + " GB" 
28.
"System type          : " + $objItem.SystemType 
29.
$Line 
30.
} #ForEach 
31.
} #Function 
32.
 
33.
 
34.
Function Get-DiskInfo 
35.
36.
$Line + "DISK:" 
37.
"-----" 
38.
# collect disk data: 
39.
$colItems = Get-WmiObject -class win32_DiskDrive -Computername $Computer 
40.
 
41.
ForEach($objItem in $colItems) 
42.
43.
"Manufacturer         : " + $objItem.Manufacturer 
44.
"Model                : " + $objItem.Model 
45.
"Disk name            : " + $objItem.Name 
46.
"Mediatype            : " + $objItem.MediaType 
47.
"Partitions           : " + $objItem.Partitions 
48.
"Size                 : " + [Math]::Round($objItem.Size/1GB,2) + " GB" 
49.
$Line 
50.
} #ForEach 
51.
} #Function 
52.
 
53.
 
54.
Function Get-GraphicsInfo 
55.
56.
$Line + "GRAPHICS:" 
57.
"---------" 
58.
# collect grafics data: 
59.
$colItems = Get-WmiObject -class cim_PCVideoController -Computername $Computer 
60.
 
61.
ForEach($objItem in $colItems) 
62.
63.
"Name                 : " + $objItem.Name 
64.
"Resolution horizontal: " + $objItem.CurrentHorizontalResolution + " pixels" 
65.
"Resolution vertical  : " + $objItem.CurrentVerticalResolution + " pixels" 
66.
"Refresh rate         : " + $objItem.CurrentRefreshRate + " Hz" 
67.
$Line 
68.
} #ForEach 
69.
} #Function 
70.
 
71.
 
72.
Function Get-ProcessorInfo 
73.
74.
$line + "PROCESSOR:" 
75.
"----------" 
76.
# collect processor data 
77.
$colItems = Get-WmiObject -class win32_Processor -Computername $Computer 
78.
 
79.
ForEach($objItem in $colItems) 
80.
81.
"Manufacturer         : " + $objItem.Manufacturer 
82.
"Name                 : " + $objItem.Name.Trim() 
83.
"Version              : " + $objItem.Version 
84.
"Clock speed          : " + $objItem.CurrentClockSpeed + " Hz" 
85.
"Voltage              : " + $objItem.CurrentVoltage + " V" 
86.
"Data width           : " + $objItem.Datawidth + " bit" 
87.
"Number of cores      : " + $objItem.NumberOfCores 
88.
"Logical Processors   : " + $objItem.NumberOfLogicalProcessors 
89.
$Line 
90.
} #ForEach 
91.
} #Function 
92.
 
93.
 
94.
Function Get-OSInfo 
95.
96.
$Line + "OPERATING SYSTEM:" 
97.
"-----------------" 
98.
# collect OS data 
99.
$colItems = Get-WmiObject -class win32_OperatingSystem -Computername $Computer 
100.
 
101.
ForEach($objItem in $colItems) 
102.
103.
"Manufacturer         : " + $objItem.Manufacturer 
104.
"Name                 : " + $objItem.Name 
105.
"Version              : " + $objItem.Version 
106.
"Build number         : " + $objItem.BuildNumber 
107.
"Build type           : " + $objItem.BuildType 
108.
"Code set             : " + $objItem.CodeSet 
109.
"System directory     : " + $objItem.SystemDirectory 
110.
"Total virtual memory : " + [Math]::Round($objItem.TotalVirtualMemorySize/1MB,2) + " MB" 
111.
"Serial number        : " + $objItem.SerialNumber 
112.
$Line 
113.
} #ForEach 
114.
} #Function 
115.
 
116.
 
117.
Function Get-BiosInfo 
118.
119.
$Line + "BIOS:" 
120.
"-----" 
121.
# collect BIOS data 
122.
$colItems = Get-WmiObject -class win32_Bios -Computername $Computer 
123.
 
124.
ForEach($objItem in $colItems) 
125.
126.
"Manufacturer         : " + $objItem.Manufacturer 
127.
"Name                 : " + $objItem.Name 
128.
"Serial number        : " + $objItem.SerialNumber 
129.
$Line 
130.
} #ForEach 
131.
} #Function 
132.
 
133.
 
134.
Function Get-NetworkInfo 
135.
136.
$Line + "NETWORK:" 
137.
"--------" 
138.
# collect network data (only if available) 
139.
$colItems = Get-WmiObject Win32_NetworkAdapterConfiguration -Computername $Computer | where{$_.IPEnabled -eq "True"} 
140.
 
141.
ForEach($objItem in $colItems) 
142.
143.
"Description         :" + $objItem.Description 
144.
"DHCP enabled        :" + $objItem.DHCPEnabled 
145.
"DHCP server         :" + $objItem.DHCPServer 
146.
"IP address          :" + $objItem.IPAddress 
147.
"Sub net mask        :" + $objItem.IPSubnet 
148.
"Dafault gateway     :" + $objItem.DefaultIPGateway 
149.
"DNS domain          :" + $objItem.DNSDomain 
150.
"DNS host            :" + $objItem.DNSHostName 
151.
"MAC address         :" + $objItem.MACAddress 
152.
$Line 
153.
} #ForEach 
154.
} #Function 
155.
 
156.
 
157.
# and here we go 
158.
Get-ComputerInfo 
159.
Get-DiskInfo 
160.
Get-GraphicsInfo 
161.
Get-ProcessorInfo 
162.
Get-OSInfo 
163.
Get-BiosInfo 
164.
Get-NetworkInfo
Vielleicht kann damit jemand etwas anfangen. Die abgefragten Daten lassen sich natürlich fast beliebig erweitern.

[Edit]: Remote-Fähigkeit angepasst (Parameter, default = ".")


Gruß

ANKH
Mitglied: colinardo
18.02.2014, aktualisiert um 17:44 Uhr
Hi ANKH,
schönes Schnippselchen
als Ergänzung für die Leute die hier vorbei schauen, noch ein Link zu einem Script das das ganze schön aufbereitet in einem Excel-Sheet zusammenfasst und auch automatisiert für mehrere Rechner im Netzwerk macht:
https://www.administrator.de/forum/powershell-skripten-netzwerk-auslesen ...

Grüße Uwe
Bitte warten ..
Mitglied: AnkhMorpork
19.02.2014 um 07:59 Uhr
Hallo Uwe,

man dankt!
"Schnippselchen" passt ganz gut. War eigentlich mehr eine Art Fingerübung und natürlich nicht für den professionellen Gebrauch gedacht. Da passen deine Links deutlich besser.
Ich dachte da eher an die kurze und schmerzlose Zusammenfassung von Elementarinfos z.B. hier im Forum. Ausserdem wollte ich auch mal etwas zurückgeben, nachdem mir hier schon derart gut geholfen wurde. Wenn es wem nützt ... und sei es nur als Anregung.
Ich habe damit meine Distanzstrategie zur PS aufgeben können.

Ich mache mich dann mal auf den Weg zum angehenden Halb-Semiprofi.

Gruß

ANKH
Bitte warten ..
Ähnliche Inhalte
Router & Routing

Powershell: FritzBox über TR-064 im Netzwerk konfigurieren und auslesen

Anleitung von colinardoRouter & Routing20 Kommentare

Ich stand neulich vor der undankbaren Aufgabe eine Fritzbox per Powershell auszulesen und Aktionen darüber automatisiert auszuführen. Herausgekommen ist ...

Batch & Shell

Powershell elevated

Tipp von AnkhMorporkBatch & Shell2 Kommentare

Ein kleiner Tipp am Rande für alle PS-Novizen (ich wars einfach leid): Um eine Konsole mit elevated rights schnell ...

Batch & Shell

Weiterentwicklung von Powershell

Information von Penny.CilinBatch & Shell

Anbei ein Artikel im Heise Newsticker bzgl. Powershell: Systemverwaltung: PowerShell goes Cross-Plattform

Batch & Shell

Powershell: Googlemail (GMail) nativ mit Powershell verwalten

Anleitung von colinardoBatch & Shell2 Kommentare

1. Vorwort Google bietet über die GMail-API die Voraussetzungen um sein Google-Mail-Konto über diverse Programmierschnittstellen (PHP/Javascript/etc. pp) zu verwalten. ...

Neue Wissensbeiträge
Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 8 StundenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 14 StundenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Microsoft Office

MS Office 2019 ohne OneNote - OneNote App speichert nur in Cloud

Information von Deepsys vor 1 TagMicrosoft Office4 Kommentare

Microsoft zeigt deutlich wohin alles bei Ihnen geht, OneNote 2019 wird es nicht mehr geben, und die Windows 10 ...

Humor (lol)

Warum man sein Gast-WLAN nicht beliebig nennen sollte

Erfahrungsbericht von Henere vor 2 TagenHumor (lol)5 Kommentare

Servus, mal was aus dem Alltag. Zu Hause. Eigentlich wollte ich nur einen weiteren WLAN-AP ins Netz bringen, damit ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
Server SSD: NVMe PCIe 3.0 RAID?
Frage von bouneeFestplatten, SSD, Raid15 Kommentare

Hallo liebe Admins, mir stellt sich gerade die Frage, ob ein neuer Server mit SSD NVMe PCIe 3.0 Sinn ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Windows 10
Windows 10 Startmenü-Einstellungen Systemweit festlegen
Frage von flotautWindows 1013 Kommentare

Guten Morgen liebe Admins, wir möchten bei uns am Lehrstuhl demnächst auf Windows 10 umsteigen. Wir installieren unsere PC's ...

LAN, WAN, Wireless
OpenVPN Client Fehlermeldungen
Frage von chris84LAN, WAN, Wireless12 Kommentare

Hallo Zusammen, wir nutzen seit kurzem einen neuen Router und den OpenVPN Client. Die VPN Verbindung klappt; allerdings kommen ...