hagbard
Goto Top

Jede Nacht nach neuen Shares auf allen Servern scannen

Hallo,

ich bin auf der Suche nach einem Tool bzw. Script welches ich als Cronjob ausfuehren kann (jede Nacht), das mir einen IP-Range auf SMB-Shares durchscanned und mir die Results anschliessend als txt Datei bzw. als Mail zuschickt.

Somit koennte man feststellen wann ein Fileserveradmin oder jemand anders einen neuen Share veroeffentlicht hat.

Praktisch waere es evtl. auch wenn das "Tool" einem evtl. auch die Rechte auflisten kann.

Ich weiss das es mit SRVCHECK aus dem 2003er ResourceKit funktioniert, jedoch kann dies keinen IP-Range scannen, sondern man muss die Server manuell angeben und es kann keine HIDDEN-SHARES auf die es mir auch ankommt.

Hat jemand von euch schonmal sowas gefunden bzw. geschrieben.

Da ich nicht der super Coder bin steh ich da gerade etwas auf dem Schlauch....


Vielen Dank schonmal vorab.

hagbard

Content-Key: 55774

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

Printed on: April 25, 2024 at 12:04 o'clock

Member: bastla
bastla Apr 04, 2007 at 11:04:36 (UTC)
Goto Top
Hallo hagbard und willkommen im Forum!

Als Ansatz könnte ich folgende Kombination aus Batch-File und VBScript anbieten:
@echo off & setlocal
set "Log=D:\SharesList.txt"  
if exist "%Log%" del "%Log%"  
for /l %%i in (2,1,240) do call :ProcessIP %%i
rem blat ...
goto :eof
:ProcessIP
set IP=172.16.0.%1
ping %IP%|findstr /c:"(100" >nul && goto :eof  
cscript //nologo "C:\Scripts\ListSharesForIP.vbs" %IP%>>"%Log%"  
Das verwendete Script (im Beispiel gespeichert als "C:\Scripts\ListSharesForIP.vbs") könnte etwa so aussehen:
'ListSharesForIP.vbs  
If WScript.Arguments.Count = 0 Then
	WScript.Echo "Keine IP angegeben."  
	WScript.Quit(1)
Else
	strComputer = WScript.Arguments(0)
End If
On Error Resume Next
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")   
Set colItems = objWMIService.ExecQuery( _
	"SELECT * FROM Win32_Share",,48)   
For Each objItem in colItems 
	WScript.Echo strComputer & ";" & objItem.Name & ";" & objItem.Caption & ";" & objItem.Path  
Next
Die Anpassung der IP-Range (derzeit 172.16.0.2 bis 172.16.0.240) sollte kein Problem sein - bei Bedarf kann auch eine Liste aus einer Textdatei oder ganz einfach ersatzweise eine Zeile wie
for %%i in (3 4 5 7 10) do call :ProcessIP %%i
zur selektiven Verarbeitung von Adressen (172.16.0.3, 172.16.0.4, etc) verwendet werden.

Ausgegeben wird eine CSV-Datei (oder genauer, wie Biber gerne anmerkt, SSV, weil "semicolon-separated" face-wink) - siehe WScript.Echo-Zeile.

Die als Cron-Job aufzurufende Batchdatei lässt sich natürlich zB um den Mailversand erweitern (Stichwort "blat" - Beispiele dazu hier im Forum).

Voraussetzung für das Auslesen der Informationen sind Admin-Rechte auf den einzelnen Servern.
Nicht ganz auf Deinen Anwendungszweck ausgerichtet, aber vieleicht auch einen Blick wert, wäre ShareEnum.

Grüße
bastla
Member: cykes
cykes Apr 04, 2007 at 11:35:27 (UTC)
Goto Top
Hi,

als (leider nicht kostenloses) Tool kann ich Dir "Security Explorer" empfehlen,
siehe: http://www.scriptlogic.com/products/securityexplorer/

Gibt aber eine kostenlose Demo-/Testversion.

Gruß

cykes