iwan
Goto Top

PCs im Netzwerk nach Novell-Protokollen durchsuchen

die Konstellation: Netzwerk mit Windows 2000 und XP Clients, W2K3 Server (ohne Zugriff von meiner Seite), Active Directory
die Aufgabe: alle PCs überprüfen, ob neben dem TCP/IP-Protokoll noch andere installiert sind
wenn ja -> diese deinstallieren
vorhandene Informationen: IP-Range, alle Computernamen

meine Frage: wie kann ich remote kontrollieren, ob z.B. Novell Netware oder Net/BUI installiert ist?

Content-Key: 60323

Url: https://administrator.de/contentid/60323

Printed on: April 16, 2024 at 04:04 o'clock

Member: AndreasHoster
AndreasHoster Jun 01, 2007 at 09:04:19 (UTC)
Goto Top
Mit WMI (Windows Management Instrumentation) und etwas VBSkript:
On Error Resume Next

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

arrComputers = Array("Name1","Name2")  
For Each strComputer In arrComputers
   WScript.Echo
   WScript.Echo "=========================================="  
   WScript.Echo "Computer: " & strComputer  
   WScript.Echo "=========================================="  

   Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")  
   Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkProtocol", "WQL", _  
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)

   For Each objItem In colItems
      WScript.Echo "Caption: " & objItem.Caption  
      WScript.Echo "Description: " & objItem.Description  
      WScript.Echo "Name: " & objItem.Name  
      WScript.Echo
   Next
Next
Dieses Code-Schnipsel geht die im arrComputers gespeicherten Namen durch und gibt die die installierten Netzwerkprotokolle aus, vorausgesetzt, Du hast genügend Zugriffsrechte auf den PC.
Kann man sicherlich erweitern, um eine IP Range durchzugehen und die zu melden, wo was bestimmtes drinsteht.
Member: Iwan
Iwan Jun 01, 2007 at 09:29:50 (UTC)
Goto Top
danke schonmal für die Antwort
an WMI hab ich auch schon gedacht
nur müsste die Ausgabe in eine TXT erfolgen und zwar für jeden PC eine eigene
also am besten nachdem Hostnamen
die Hostnamen existieren in einer Textdatei, untereinander geschrieben
das würde dann Array bilden


*nachtrag*
hier das funktionierende Skript:
On Error Resume Next
strCompListe = "C:\Scripts\Computers.txt"  

Set fso = CreateObject("Scripting.FileSystemObject")  
Set objCompFile = fso.OpenTextFile(strCompListe, 1)

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

Do While Not objCompFile.AtEndOfStream
    strComputer = objCompFile.ReadLine
    strOutDatei = "C:\Scripts\" & strComputer & ".txt"  
    Set strDatei = fso.OpenTextFile(strOutDatei, 2, True)
    strDatei.Writeline "=========================================="  
    strDatei.Writeline "Computer: " & strComputer  
    strDatei.Writeline "=========================================="  

    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")  
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkProtocol", "WQL", _  
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
 
    For Each objItem In colItems
       strDatei.Writeline "Caption: " & objItem.Caption  
       strDatei.Writeline "Description: " & objItem.Description  
       strDatei.Writeline "Name: " & objItem.Name  
       strDatei.Writeline "------------------------------------------"  
       strDatei.Close
    Next
Loop
objCompFile.Close
Wscript.Echo "Fertig"