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

Tipp Entwicklung Batch & Shell

Mitglied: AnkhMorpork

AnkhMorpork (Level 2) - Jetzt verbinden

18.02.2014, aktualisiert 29.07.2015, 10460 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:
http://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 & Routing14 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
Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 3 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 4 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 16 StundenInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 22 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless19 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement17 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...