duc750
Goto Top

Alte Freigaben entfernen...

Hallo Leute,
ich hatte am Wochenende das Vergnügen einen unserer Server (Windows 2000) zu warten und stellte fest, daß im Eventlog Fehlermeldungen auftauchen, so etwa " Freigabe xy... konnte nicht wiederhergestellt werden...". Bei den Freigaben handelt es sich um "alte" Freigaben, die entsprechenden Verzeichnisse existieren gar nicht mehr, hat wohl mein Vorgänger gelöscht ohne die Freigaben vorher aufzuheben. Wie krieg ich diese Meldung weg, an welcher Stelle sind diese Freigabepfade hinterlegt?
Vielen Dank für die Hilfe !
Grüße duc750

Content-ID: 12718

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

Ausgedruckt am: 08.11.2024 um 13:11 Uhr

Longhorn
Longhorn 05.07.2005 um 09:02:07 Uhr
Goto Top
Versuchs mal mit rechte Maustaste, Eigenschaften auf Arbeitsplatz --> Verwalten --> Freigegebene Ordner (shared folders)...
Da müssten eigentlich diese Freigaben aufscheinen..
duc750
duc750 05.07.2005 um 09:51:42 Uhr
Goto Top
Hallo zurück,
genau dort erscheinen die Biester nicht, sie können ja nicht mehr hergestellt werden (beim Start). Habe aber auch keine Lust (Ahnung) in der Registry rumzufuhrwerken face-wink
Grüße duc750
n.o.b.o.d.y
n.o.b.o.d.y 05.07.2005, aktualisiert am 17.10.2012 um 15:39:07 Uhr
Goto Top
Hallo,

schau mal hier:

Ordner mit Freigaben und NTFS-Berechtigungen verschieben

dort wurde das Kopieren der Freigaben behandelt, da steht auch der Reg-Key, wo die Freigaben eingetragen sind. Denke Du mußt die da noch rauslöschen
duc750
duc750 05.07.2005 um 13:11:41 Uhr
Goto Top
Prima, hat funktioniert, vielen Dank. Ich bin halt immer vorsichtig, was das "Allerheiligste" (die Registry) angeht.
Na ja, Augen zu und durch... face-wink

Grüße duc750
Biber
Biber 05.07.2005 um 17:47:19 Uhr
Goto Top
Nachtrag und Ergänzung:

Mit Kenntnis dieses RegKeys und eines Paar-Zeilen.vbs-Skriptchens läßt sich das Ganze automatisieren bzw. administratorfreundlicher gestalten.
'------ValidateShares.vbs------  
Set net = CreateObject("Wscript.Network")  
Set fso = CreateObject("scripting.FileSystemObject")  
Set wshShell = WScript.CreateObject ("Wscript.Shell")  

Const HKLM = &H80000002
Const strRegKey = "SYSTEM\CurrentControlSet\Services\LanManServer\Shares"   
Const strProgName="ValidateShares"  
strEndMsg = "Alle Freigaben überprüft."  
nDauer = 10
Set oReg=GetObject("winmgmts:" _  
	& "{impersonationLevel=impersonate}!\\" &_   
	net.ComputerName & "\root\default:StdRegProv")  
 
oReg.EnumValues HKLM, strRegKey, aEntries, aTypes
 
For i=0 To UBound(aEntries)
	strRegEntry = aEntries(i)
	oReg.GetMultiStringValue HKLM, strRegKey,strRegEntry, aValues
	strSharedDir = Split(aValues(2),"=")(1)        ' siehe Anmerkung unten   
	If not fso.FolderExists(strSharedDir) Then
		result = Msgbox("Verzeichnis "& strSharedDir &" freigegeben, aber nicht mehr existent."_   
		& vbCrLf & "In der Registry löschen?", vbYesNo + vbQuestion,_  
		"HKLM\" & strRegKey  & "\" & strRegEntry )  
		If result = vbYes Then
			WshShell.RegDelete "HKLM\" & strRegKey & "\" & strRegEntry   
			strEndMsg = StrEndMsg & vbCrLf & "gelöscht: " & strRegEntry & ": " & strSharedDir   
		        nDauer = nDauer + 10 ' je 10 sec mehr Zeit zum Lesen lassen  
		End If
	End If
Next
WshShell.Popup strEndMsg, nDauer ,strProgname, vbInformation

'Anmerkung zur den Einträgen ( aValues )  
' aValues(0) = CSCFlags=0      (oder numWert)  
' aValues(1) = MaxUses=numWert   
' aValues(2) = Path=X:\ABC\DEF     ----------------------------> Nur den fass ich an, keine Prüfung der Reihenfolge!  
' aValues(3) = Permissions=numWert   
' aValues(4) = Remark=irgendein text oder auch nicht  
' aValues(whatever)... prüf ich nicht  
'------ValidateShares.vbs------  


Frank / der Biber aus Bremen
u0206084
u0206084 05.11.2008, aktualisiert am 14.03.2023 um 12:36:52 Uhr
Goto Top
Hallo Biber,

habe genau das selbe problem wir haben bei uns ein Löschscript im Einsatz
wo der User als auch das Homelaufwerk löscht.Hier sollten noch das
entfernen der Freigaben implementiert werden. Leider habe ich nicht die
Kenntnisse. Vielleicht könntest du mich hierbei unterstützen.

Frage 1:

was muss ich in folgendem von dir verfassten Script an unserer gegebenheiten
anpassen ?

Könnte hier der Teil makiert werden der an unsere Gegebenheiten angepasst
werden muss ?.

Frage 2:

Hier das Löschsript könntest du mich unterstützen hier noch das
Löschen der zugehörigen Freigabe zu implementieren.

Script
'Bitte Teil 1 des Domain Component Namens angeben:  
Const DC1 = "testdomain"  

'Bitte Teil 2 des Domain Component Namens angeben:  
Const DC2 = "Dom"  

'Bitte Teil 3 des Domain Component Namens angeben:  
Const DC3 = "Local"  

'Variablen werden deklariert  
Dim fso, f, Zeile, Feld
Set fso = CreateObject("Scripting.FileSystemObject")  

'Die Datei user.txt wird eingelesen  
Set f = fso.OpenTextFile ("user.txt",1,0)  

Do while not f.AtEndOfLine
Zeile = f.readLine
Feld = split(Zeile,",")  
Benutzer = Feld(0)
Call Benuntzerloeschen(Benutzer)
Loop
f.Close
Wscript.Quit(0)

'Der Benutzer wird geloescht  
Sub Benuntzerloeschen (Benutzer)
Set objOU = GetObject("LDAP://cn=users,DC=" & DC1 &  
",DC=" & DC2 & ",DC=" & DC3)  

objOU.Delete "user", "cn=" & Benutzer  

WScript.Sleep(1000)

'Das Heimatverzeichnis des Benutzers wird geloescht  
Dim WshShell, ret
Set WshShell = WScript.CreateObject("WScript.Shell")  
ret = WshShell.Run
("U:\Benutzerverwaltung\userdel\delhomedir_cmd\delhomedirs.cmd " &  
Benutzer,0,1)

WScript.Echo "Benutzer " & Benutzer & " erfolgreich  
gelöscht"  

End Sub

Vielen Dank im Vorraus.!!


Zusatzinfo:

-W2k3 Domäne im gemischten modus
-Homlaufwerksfreigaben befinden sich auf einer NT4 Maschine Sp6a


Gruß Martin