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
GELÖST

Powershell liefert statt Arrayinhalt immer den aktuellen Pfad und den Arrayinhalt zurück

Frage Entwicklung Batch & Shell

Mitglied: Andy-M

Andy-M (Level 1) - Jetzt verbinden

24.03.2010 um 08:58 Uhr, 5098 Aufrufe, 1 Kommentar

Hallo zusammen,

ich beschäftige mich gerade ein wenig mit der Powershell. Nachdem ich mich in die Grundlagen eingearbeitet habe möchte ich jetzt ein kleines Beispielskript schreiben.
Mein Kollege hat mich auf die Idee gebracht ein Script zu schreiben, dass aus der Registry ausliest, ob die Speed&Duplex-Einstellung der Netzwerkkarte auf "Auto" steht oder nicht.

Mit folgendem Code kann ich das ganze auch für meinen Rechner passend abfragen:
01.
$lanspeed = Get-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0008" -name RequestedMediaType 
02.
if ($lanspeed.RequestedMediaType -eq 0) 
03.
   {"Autonegotiation ist aktiviert."}
Jetzt möchte ich die Abfrage gern etwas Allgemeiner halten, dazu soll folgender Code dienen:
01.
$substrings = get-childitem 'HKLM:\System\Currentcontrolset\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}' 
02.
$substrings | Foreach-Object {Get-Itemproperty $_}
Was ich mir eigentlich als Ausgabe wünschen würde wäre eine Liste der Werte der Subkeys von {4D36E972-...}. Daraus könnte man dann abfragen ob es das Attribut "RequestedMediaType" (für Broadcom-Karten) oder "SpeedDuplex" (für Intel-Karten) gibt und welche Werte dort gesetzt sind.
Leider bekomme ich jedoch als Ausgabe immer folgendes: "Aktuelles Arbeitsverzeichnis\Arrayinhalt" also zB: C:\HKLM\System\und\so\weiter

Hier noch beispielhaft die Fehlermeldung:
01.
Get-ItemProperty : Der Pfad "C:\temp\powershell\duplex\HKEY_LOCAL_MACHINE\Syste 
02.
m\Currentcontrolset\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0000"  
03.
kann nicht gefunden werden, da er nicht vorhanden ist. 
04.
Bei C:\temp\powershell\duplex\speed.ps1:2 Zeichen:47 
05.
+ $substrings | Foreach-Object {Get-Itemproperty  <<<< $_}
Dieser Fehler taucht dann für alle Objekte unterhalb von HKLM:\...{4D36E972-...} auf.
Die Fehlermeldung ist klar, den Pfad gibt es tatsächlich nicht. Wenn ich mir aber nur das Array ausgeben lasse, dass gibt er mir den Pfad richtig zurück.

Ich hoffe mir kann jemand einen Tipp geben wo ich den Fehler gemacht habe, bzw. wie ich ihn lösen kann. Eine ausgiebige Googlesuche hat leider zu keiner Erleuchtung geführt.

Viele Grüße

Andy
Mitglied: Andy-M
25.03.2010 um 13:46 Uhr
Ich konnte das Problem inzwischen selbst lösen indem ich direkt auf den PSPath zugreife.
Das komplette Skript funktioniet jetzt. Allerdings nur für Broadcom- und Intel-Netzwerkkarten.
Ich habe das Skript dann noch ein wenig umgebaut, dass es jetzt folgendermaßen aussieht:

01.
$path = 'HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}' 
02.
$subpath = Get-ChildItem $path 
03.
$values = $subpath | ForEach-Object {Get-Itemproperty $_.pspath} | where-object {$_.RequestedMediaType -ne $null -or $_.SpeedDuplex -ne $null} 
04.
$values | ForEach-Object {if ($_.requestedmediatype -eq 0 -or $_.speedduplex -eq 0 ) {write-host $_.driverdesc ist auf Auto eingestellt.} else {write-host $_.driverdesc ist NICHT auf Auto eingestellt}} 
05.
Start-Sleep -s 10
Viele Grüße

Andy
Bitte warten ..
Ähnliche Inhalte
Humor (lol)
Zugangskarten zum US-Senat: Bild eines Smart-Chips statt Smart-Chip

Link von magicteddy zum Thema Humor (lol) ...

Windows Server
gelöst Powershell und Remote in der Registry rumwuseln (6)

Frage von H41mSh1C0R zum Thema Windows Server ...

Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(6)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Benutzer lässt sich nur an einem Clientcomputer anmelden (11)

Frage von Ammann zum Thema Windows Server ...

Hosting & Housing
gelöst Webserver bei WIX, aber DNS Server wo anders (9)

Frage von laster zum Thema Hosting & Housing ...

Batch & Shell
gelöst Gruppenzugehörigkeit von AD Usern ermitteln - die Perfektion fehlt (9)

Frage von Stefan007 zum Thema Batch & Shell ...