mendo28
Goto Top

Powershell in Listbox ausgabe anpassen

Guten Tag zusammen

Ich möchte das bei der Listboxausgabe nur die IP und der Ordner(\\XX.X.XX.X\Ordner) angezeigt wird.

Jedoch werden bei mir die Netzlaufwerke wie folgt aufgelistet:

@{Providername=\\XX.X.XX.X\Ordner}
@{Providername=\\XX.X.XX.X\Ordner}
@{Providername=\\XX.X.XX.X\Ordner}

Befehl mit dem ich die Netzlaufwerke anzeigen lasse:

$NetworkShares = Get-WmiObject -Class Win32_LogicalDisk | Select Providername
$listBox_share.DataSource = $NetworkShares;

Hättet ihr eine Idee wie ich diese ohne das @und Providername anzeigen lassen kann?

Content-ID: 343765

Url: https://administrator.de/forum/powershell-in-listbox-ausgabe-anpassen-343765.html

Ausgedruckt am: 18.04.2025 um 19:04 Uhr

133417
133417 18.07.2017 aktualisiert um 15:10:43 Uhr
Goto Top
Und täglich grüßt das Murmeltier
Einfach -Expand hinzufügen ...
$NetworkShares = Get-WmiObject -Class Win32_LogicalDisk | Select -Expand Providername
Immer dran denken, Powershell arbeitet objektorientiert. Und das was du da siehst ist die Ausgabe einer Hashtable in eine Stringeigenschaft, deswegen sieht das so aus wenn du das Objekt nicht expandierst.

Gruß
Mendo28
Mendo28 18.07.2017 um 15:45:47 Uhr
Goto Top
Vielen Dank für die schnelle Antwort.

Es funktioniert leider immer noch nicht, denn nach dem einfügen von -Expand kommt diese Fehlermeldung:

Befehl:
$allNetworkShares = Get-WmiObject -Class Win32_LogicalDisk | Select -Expand Providername
$listBox_share.DataSource = $allNetworkShares;

Fehlermeldung:
ERROR: Select-Object : Das Argument kann nicht verarbeitet werden, da der Wert des Arguments "obj" NULL ist. Ändern Sie den Wert des Arguments "obj" in einen Wert ung
ERROR: leich NULL.
ERROR: Bei C:\Users\LyonAD\Desktop\Tool\Tool.ps1:95 Zeichen:68
ERROR: + $allNetworkShares = Get-WmiObject -Class Win32_LogicalDisk | Select <<<< -Expand Providername
ERROR: + CategoryInfo : InvalidArgument: (face-smile [Select-Object], PSArgumentNullException
ERROR: + FullyQualifiedErrorId : ArgumentNull,Microsoft.PowerShell.Commands.SelectObjectCommand
ERROR:

Wo kann man den obj Wert als NULL definieren? oder an was liegt es das nichts mehr angezeigt wird?

Gruss
133417
Lösung 133417 18.07.2017 aktualisiert um 17:48:29 Uhr
Goto Top
Erst mal die richtige WMI Klasse verwenden! Dann prüfen ob die Variable überhaupt Inhalt hat und erst dann der Listbox als Datenquelle liefern!
    $drives = gwmi Win32_MappedLogicalDisk | select -ExpandProperty ProviderName
    if ($drives){
        $listBox_share.DataSource = @($drives)
    }
Geht hier einwandfrei! Da hier als DataSource nur eine IList benutzt werden darf das zusätzliche Klammern der Variablen in ein Array für den Fall das nur ein Element zurückgegeben wird.

p.s. Get-WMIObject ist schon lange veraltet stattdessen nimmt man heute Get-CIMInstance.

Gruß