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

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, 2629 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
Ein Script, verschiedene Intervalle für Cronjob
gelöst Frage von tsunamiPHP7 Kommentare

Hallo, ich habe mal wieder einen Denkhänger. Eine Seite mit Scripten soll via Cronjob aufgerufen werden. Soweit klar. Nun ...

Batch & Shell
Compress Archieve verschiedener Ordner mit PowerShell
gelöst Frage von FRANHEBatch & Shell2 Kommentare

Hallo zusammen, ich habe folgendes Problem und wäre wirklich dankbar für eure Hilfe:-) Vor mir liegt eine Ordnerstruktur, die ...

Batch & Shell
Powershell Übergabe von Variablen zwischen verschiedenen Skripten
gelöst Frage von derhoeppiBatch & Shell7 Kommentare

Hallo, folgende Thematik habe ich gerade. Ich habe ein Skript. In diesem habe ich eine Variable, die ich global ...

Batch & Shell
Powershell PDF drucken auf verschiedene Drucker
gelöst Frage von ChrissssiBatch & Shell2 Kommentare

Hallo zusammen, Mein Problem ist das ich PDF Dateien habe die ich auf unterschiedliche Drucker automatisch drucken muss. Das ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 15 StundenWindows 102 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 17 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte16 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...

Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server13 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server13 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Windows Tools
Software-Tool zum Entfernen von bösartigem Windows
Frage von emeriksWindows Tools11 Kommentare

Hi, siehe Betreff hat das jemals irgendjemand schonmal sinnvoll eingesetzt? (MRT) E.