Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 7786 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst PowerShell, Log Datei auslesen, bei Änderungen E-Mail senden (12)

Frage von swissbull zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell INI Tags auslesen (2)

Frage von H41mSh1C0R zum Thema Batch & Shell ...

Installation
gelöst Mit Powershell in einer Datei eine Zeile auslesen (6)

Frage von Bommi1961 zum Thema Installation ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...