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

Powershell Script zum verarbeiten verschiedener Values von verschiedenen WMI-Objekten

Frage Entwicklung Batch & Shell

Mitglied: MasterofDesaster24

MasterofDesaster24 (Level 1) - Jetzt verbinden

03.12.2012 um 14:15 Uhr, 2599 Aufrufe, 1 Kommentar

Hi,

erst einmal: ich bin absoluter Powershell Neuling!

Ich versuche ein Script zu schreiben, das mehrere Values von verschiedenen WMI-Objekten ausgeben soll, z.B.:

Win32_Processor
Caption
Manufacturer
L2CacheSize
NumberofCores

Hierzu habe ich das folgende Script geschrieben. Die Anweisung "Write-Host "Variable j "+ $j" ist nur ein Platzhalter für die weitere Verarbeitung.
01.
$i=0 
02.
$wmi_obj_array= "win32_processor", "win32_diskdrive", "win32_operatingsystem" 
03.
$w32_proc= "Caption, Manufacturer, L2CacheSize, NumberofCores" 
04.
$w32_dd= "DeviceID, Partitions, BytesperSector, TotalSectors" 
05.
$w32_os= "Caption, Buildnumber, OSArchitecture, InstallDate" 
06.
foreach ($i in $wmi_obj_array) 
07.
08.
	"Ausgewählte WMI-Objekte $i">>c:\PS\WMI_Objekt_Werte.txt 
09.
	switch ($i){ 
10.
		win32_processor			{$prop=$w32_proc} 
11.
		win32_diskdrive			{$prop=$w32_dd} 
12.
		win32_operatingsystem	{$prop=$w32_os} 
13.
14.
	 
15.
	$wmi_value_array=Get-WmiObject $i|Format-List -Property $prop 
16.
	$j=0 
17.
	Write-Host "WMI-Werte" + $wmi_werte_array 
18.
	foreach ($j in $wmi_werte_array) 
19.
20.
		Write-Host "Variable j "+ $j	} 
21.
}
Wenn ich das Script laufen lasse, erhalte ich folgenden Output:

Ausgabe bestimmter Werte der WMI-Objekte
WMI-Werte + Microsoft.PowerShell.Commands.Internal.Format.FormatStartData Microsoft.PowerShell.Commands.Internal.Format.GroupStartData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.GroupEndData Microsoft.PowerShell.Commands.Internal.Format.FormatEndData
Variable j + Microsoft.PowerShell.Commands.Internal.Format.FormatStartData
Variable j + Microsoft.PowerShell.Commands.Internal.Format.GroupStartData
Variable j + Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData
Variable j + Microsoft.PowerShell.Commands.Internal.Format.GroupEndData
Variable j + Microsoft.PowerShell.Commands.Internal.Format.FormatEndData
WMI-Werte + Microsoft.PowerShell.Commands.Internal.Format.FormatStartData Microsoft.PowerShell.Commands.Internal.Format.GroupStartData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.GroupEndData Microsoft.PowerShell.Commands.Internal.Format.FormatEndData
Variable j + Microsoft.PowerShell.Commands.Internal.Format.FormatStartData
Variable j + Microsoft.PowerShell.Commands.Internal.Format.GroupStartData
Variable j + Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData
Variable j + Microsoft.PowerShell.Commands.Internal.Format.GroupEndData
Variable j + Microsoft.PowerShell.Commands.Internal.Format.FormatEndData
WMI-Werte + Microsoft.PowerShell.Commands.Internal.Format.FormatStartData Microsoft.PowerShell.Commands.Internal.Format.GroupStartData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.GroupEndData Microsoft.PowerShell.Commands.Internal.Format.FormatEndData
Variable j + Microsoft.PowerShell.Commands.Internal.Format.FormatStartData
Variable j + Microsoft.PowerShell.Commands.Internal.Format.GroupStartData
Variable j + Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData
Variable j + Microsoft.PowerShell.Commands.Internal.Format.GroupEndData
Variable j + Microsoft.PowerShell.Commands.Internal.Format.FormatEndData

Wenn ich das Kommando "Get-WmiObject $i|Format-List -Property $prop" in der Command Line ausführe (Variablen mit Werten ersetzt) funktioniert es prima. In PowerGui hat die Variable $j zur Laufzeit den Wert der oben angezeigt wird.

Vielleicht hat jemand eine Idee.

Vielen Dank im voraus!
RL

Mitglied: 5t8d1e
07.12.2012 um 16:48 Uhr
Hallo,

versuchs mal hiermit:

01.
[array]$wmi_obj_array= "win32_processor", "win32_diskdrive", "win32_operatingsystem" 
02.
[array]$w32_proc= "Caption", "Manufacturer", "L2CacheSize", "NumberofCores" 
03.
[array]$w32_dd= "DeviceID", "Partitions", "BytesperSector", "TotalSectors" 
04.
[array]$w32_os= "Caption", "Buildnumber", "OSArchitecture", "InstallDate" 
05.
foreach ($i in $wmi_obj_array) 
06.
07.
	"Ausgewählte WMI-Objekte $i">>$home\WMI_Objekt_Werte.txt 
08.
	switch ($i){ 
09.
		win32_processor			{[array]$prop=$w32_proc} 
10.
		win32_diskdrive			{[array]$prop=$w32_dd} 
11.
		win32_operatingsystem	{[array]$prop=$w32_os} 
12.
13.
	 
14.
    $wmi_value_array=Get-WmiObject -class $i |select $prop  
15.
	Write-Host "WMI-Werte" 
16.
    $wmi_value_array | Format-List
das $i=0 kannst du weglassen hat irgendwie kein Sinn
und die 2. Schleife habe ich weggelassen, die hat für mich keinen Sinn ergeben.

Wenn noch Fragen offen sind, helfe ich gerne weiter

Der Torsten wars
Bitte warten ..
Ähnliche Inhalte
PHP
gelöst Ein Script, verschiedene Intervalle für Cronjob (7)

Frage von tsunami zum Thema PHP ...

Batch & Shell
gelöst Powershell - WMI Return Codes unterdrücken, WIE? (3)

Frage von instinctless zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell - Dateien aus verschiedenen Arrays - Attribute vergleichen (5)

Frage von Giffas zum Thema Batch & Shell ...

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
SAN, NAS, DAS
MSA 2050 RAID Konfig (27)

Frage von Leo-le zum Thema SAN, NAS, DAS ...

Netzwerkmanagement
Windows Server 2008 R2: "netsh reset" nicht verfügbar? (11)

Frage von RickTucker zum Thema Netzwerkmanagement ...

Outlook & Mail
Outlook Suche liefert kein Ergebnise mehr (8)

Frage von Bjoern-B zum Thema Outlook & Mail ...

Windows Server
gelöst "Kiosk"System für Demoversion und neue Versionen einer Anwendung (7)

Frage von kpieper zum Thema Windows Server ...