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-ID: 55774

Url: https://administrator.de/forum/jede-nacht-nach-neuen-shares-auf-allen-servern-scannen-55774.html

Ausgedruckt am: 23.04.2025 um 02:04 Uhr

bastla
bastla 04.04.2007 um 13:04:36 Uhr
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
cykes
cykes 04.04.2007 um 13:35:27 Uhr
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