Netzwerkressourcen auflisten

    • Offizieller Beitrag

    Hi,
    ich habe folgendes Skript verwendet, um die im Netzwerk vorhandenen PC zu ermitteln (bzw. den Pfad zu den Festplatten, auf denen die Netzwerkfreigaben zu finden sind, z.B. "\\PC_Name\BugFix").
    Das Skript gefiel mir zwar nicht sonderlich, da es grauenhaft langsam war (wenn verbunden ca. 10 s, sonst >20 s), aber es tat, was es sollte.
    Heute jedoch flutscht es durch und zeigt mir keine Ergebnisse mehr, obwohl sich an meinem Netz (Arbeitsgruppe) von gestern auf heute nichts geändert hat.

    Bringt es bei euch Ergebnisse oder hat jemand vielleicht eine andere Möglichkeit die im LAN vorhandenen PC aufzulisten (jede mgl. IP per Ping zu testen dauert erst recht viel zu lang).

    Spoiler anzeigen
    [autoit]

    Local $wbemFlagReturnImmediately = 0x10
    Local $wbemFlagForwardOnly = 0x20
    Local $colItems = "", $aRemoteDisk[1][3]
    Local $strComputer = "localhost"
    Local $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkConnection", "WQL", _
    $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($colItems) then
    For $objItem In $colItems
    If $objItem.ResourceType <> 'Disk' Then ContinueLoop
    If $aRemoteDisk[UBound($aRemoteDisk)-1][0] <> '' Then ReDim $aRemoteDisk[UBound($aRemoteDisk)+1][3]
    $aRemoteDisk[UBound($aRemoteDisk)-1][0] = $objItem.RemoteName
    $aRemoteDisk[UBound($aRemoteDisk)-1][1] = $objItem.RemotePath
    $aRemoteDisk[UBound($aRemoteDisk)-1][2] = 1 ; == verbunden
    If Not FileExists($objItem.RemotePath) Then $aRemoteDisk[$aRemoteDisk[0][0]][2] = 0 ; == nicht verbunden
    Next
    Endif

    [/autoit] [autoit][/autoit] [autoit]

    _ArrayDisplay($aRemoteDisk, 'Remote Disk', -1, 0, '', '|', 'Name|Pfad|Verbunden')

    [/autoit]