Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Home-Shares aufräumen

Mitglied: 30190

30190 (Level 1)

22.05.2006, aktualisiert 30.05.2006, 5561 Aufrufe, 6 Kommentare

User Home-Shares anhand existierender Domain-User aufräumen (löschen).

Hallo an alle,

seit einiger Zeit habe ich die Vermutung dass einige Verzeichnisse auf unserem Home-Share Server (Win2003) nicht mehr aktuell sind.
Damit meine ich dass die User in der Domäne überhaupt nicht mehr existieren.

Gibt es eine einfache Möglichkeit die existierenden User zu ermitteln - die Homeshares auslesen (sind im Profil angegeben, nicht per *.bat oder *.kix) - die "benötigten" Home-Shares gegen eine Liste der vorhandenen laufen zu lassen und alle Home-shares zu nicht existenten Usern anzuzeigen?

Klingt doch eingentlich sehr einfach - ich hab nur keine Startvorstellung. Leider kann ich selber kein VBS und möchte damit meine vielbeschäftigten Kollegen nicht nerven. Ich würde einen Versuch per PHP starten da ich dies kann ist aber nicht wirklich sinnvoll in dieser angelegenheit wie ich finde.

FYI:

ca. 3500 User
Windows 2003 Domain


PS: Ich kann mir nicht vorstellen dass dieses Problem noch kein Anderer hatte. Vielen lieben Dank für jede Hilfe und / oder Info!!


Cheers

Nils
Mitglied: superboh
22.05.2006 um 21:03 Uhr
Hm,

mit VBS kenne ich mich auch nicht so aus, aber mit einer Liste der User und einer Schleife kannst Du die Basisverzeichnisse mit der Zeile

net user HansDampf /Domain | find "Basisverzeichnis"

auslesen. Jetzt noch gegenprüfen und das wars
Sorry, mehr bekomme ich auf die Schnelle nicht zusammen.

Gruß,
Thomas
Bitte warten ..
Mitglied: 30190
24.05.2006 um 13:00 Uhr
Hi superboh,

lieben Dank für die Antwort, leider hilft mir das nicht wirklich weiter bei der Anzahl von Usern.
Das sollte schon ein etwas automatierterer Prozess sein.

Also eine Liste der existierenden User könnte ich hinbekomen.

Ich denke ich werde es dann doch mit PHP machen obwohl dies ja nun als Adminscript nicht wirklich schön unetr Windows ist da es hier keine CLI für PHP gibt - oder kenne ich die nur nicht?

Vielleicht hat jemand hier noch n Hint für mich ...


Ich kann mir wirklich nicht vorstellen dass ich der einzige bin der dieses Problem auf seinen Windows Servern hat ...

hmm...


Lieben Gruß

Nils
Bitte warten ..
Mitglied: superboh
24.05.2006 um 15:20 Uhr
Hi,

also ich meinte schon automatisiert ...
- eine Lister der User erstellen
- eine Liste aller Homeverzeichnisse erstellen
- dann pro User aus der Userliste das Homeverzeichnis mit der Befehlszeile die ich Dir geschrieben habe auslesen und vergleichen ob dieser Pfad in der Liste der Homeverzeichnisse steht. Wenn ja, diese Zeile aus der Liste löschen. Somit wird die Liste immer kürzer und Du hast zum Schluss die Verzeichnisse, welche keinem User zugeordnet sind.

Per Batch bin ich leider nicht so fit dass ich das mit der Schleife grad so aus dem Ärmel schütteln könnte. Persönlich würde ich so was in KIX schreiben.

Der einzige bist Du sicher nicht der das Problem hat, aber gerade bei der Anzahl der User müsste es halt irgendwie geregelt sein, dass wenn ein User gelöscht wird, auch das Homeverzeichnis, das Profil, das Postfach, ... mit gelöscht wird.
Und wenn man Altlasten beseitigen muss, ist das halt 1x Fleissarbeit, entweder ein Script zu schreiben oder es von Hand zu machen.

Versuch mal ob Du weiterkommst, wenn nicht melde Dich nochmal.

Gruß,
Thomas
Bitte warten ..
Mitglied: superboh
30.05.2006 um 00:18 Uhr
Hi Nils,

falls Du es noch nicht selbst gelöst hast ... ich hatte Langeweile ... hier eine Lösung als KIX-Script:

01.
Break on
02.

03.
$Homepfad="\\Server1\Home\"
04.

05.
; Homeverzeichnisse aus ADS auslesen
06.
$rc=GetUserHome(@DOMAIN)
07.

08.
; Liste der vorhandenen Home-Verzeichnisse erstellen
09.
$l3=FreeFileHandle()
10.
$rc=Open($l3,"%TEMP%\Vorhandene_Verzeichnisse.txt",5)
11.
$FileName = Dir($Homepfad)
12.
While $FileName <> "" AND @ERROR = 0
13.
  If $Filename <> "." AND $FileName <> ".."
14.
    $rc=WriteLine($l3,$Homepfad+$FileName+@CRLF)
15.
  EndIf
16.
  $FileName = Dir()
17.
Loop
18.
$rc=Close($l3)
19.

20.
; Einträge vergleichen
21.
Del "C:\nicht_eingetragene_Verzeichnisse.txt"
22.
$l4=FreeFileHandle()
23.
$rc=Open($l4,"%TEMP%\Vorhandene_Verzeichnisse.txt",2)
24.
$l5=FreeFileHandle()
25.
$rc=Open($l5,"C:\nicht_eingetragene_Verzeichnisse.txt",5)
26.
$line=ReadLine($l4)
27.
While @ERROR=0
28.
  $merker=0
29.
  For $i = 0 to Ubound($Home)
30.
    If $Home[$i]=$line
31.
      $merker=1
32.
    EndIf
33.
  Next
34.
  If $merker=0 ; keine Übereinstimmung gefunden
35.
    $rc=WriteLine($l5,$line+@CRLF) ; in Liste schreiben
36.
  EndIf
37.
  $line=ReadLine($l4)
38.
Loop
39.
$rc=Close($l4)
40.
$rc=Close($l5)
41.

42.
Del "%TEMP%\Vorhandene_Verzeichnisse.txt"
43.
Exit
44.

45.
Function GetUserHome ($DomainName)
46.
	Dim $UHome[10000]	
47.
	$Domain = GetObject("WinNT://" + $DomainName + ",domain")
48.
	$Container = $Domain
49.
		For Each $User In $Container
50.
	  	  If $User.Class = "User"
51.
	      	$UHome[$x] = $User.HomeDirectory
52.
	      	$x = $x + 1
53.
	  	EndIf
54.
	Next
55.
	ReDim Preserve $UHome[$x - 1]
56.
	$Home = $UHome
57.
	$Domain = 0
58.
	$Container = 0
59.
EndFunction
Du musst nur ganz oben den Pfad eintragen, in dem die Homeverzeichnisse liegen.
Das Script liest aus der Benutzerverwaltung von allen Usern den Pfad des Basisverzeichnisses aus. Dann erstellt es eine Liste aller auf dem Server vorhandenen Homeverzeichnisse in %Temp%. Alternativ kannst Du diese Datei auch selbst anlegen und den Teil des Scripts auskommentieren, wenn Du mehr als ein Pfad hast an dem die Homeverzeichnisse liegen.
Als nächstes vergleicht das Script diese vorhandenen Verzeichnisse mit allen Pfaden die es aus der Benutzerveraltung ausgelesen hat. Wenn es einen Pfad nicht findet (sprich kein User hat in eingetragen) landet der Pfadname in einer Text-Datei direkt auf Laufwerk C: .
Diese kannst Du Dir dann mal vornehmen und schauen ob sie wirklich weg können.

Gruß,
Thomas
Bitte warten ..
Mitglied: 30190
30.05.2006 um 09:12 Uhr
Hi Thomas,

WOW !!!

Vielen lieben Dank für die Mühe !! Großer Respekt für die ordentliche nachhaltige Pflege !

Ich habe das script kopiert und werde mir das nachher mal anschauen und evtl. ein bissl anpassen. Hier gibt es ja ein recht gutes Tutorial für *.kix Geschichten.

Leider gibt es hier noch ein paar Stolpersteine die durch eine unsaubere Pflege der server shares enstanden sind ... leider, leider. Doch dafür ham die ja jetzt Dich und mich

Ich werde Dich auf dem Laufenden halten und die Änderunugen posten.


btw. ich bin in den letzten Tagen generell sehr begeistert von administrator.de. Nette, kompetente, ordentliche und tolerante Comunity !



Bis dahin...

Cheers

Nils
Bitte warten ..
Mitglied: gogoflash
30.05.2006 um 12:44 Uhr
Hi,


eine Variante per Batch. Die folgendermassen funktioniert.

Aus einer OU im AD werden die Usernamen exportiert. (Userlist.txt)
Es wird geprüft, ob der jeweilige Nutzer ein Homeverzeichnis hat.
Die Verzeichnise die keinen Besitzer haben werden gemeldet. Ein del muss dann um es scharf zu machen eingebaut werden.

Diese Lösung geht davon aus das die Userverzeichnisse
- in einem Ordner liegen.
- und mit dem Sam Accountnamen übereinstimmen.

Läuft nur auf einem Windows Server ab 2000.

01.
set hpfad=d:\users
02.
set logpfad=d:\log
03.

04.
REM Variablen setzen fuer AD
05.
REM DC Namen
06.
	set domainc=serverA
07.
REm Domänenname 
08.
	set dc1=wurst
09.
	set dc2=de
10.
REM OU Informationen
11.
	set ou1=Oben
12.
	set ou2=Users
13.

14.

15.
ldifde -f %logpfad%\ExportUsers.ldf -s "%domainc%" -d "ou=%ou2%,ou=%ou1%,dc=%dc1%,dc=%dc2%" -p subtree -r "(objectClass=person)" -l "SamAccountName" >> %logpfad%\log.txt
16.
for /f "tokens=2 delims= " %%a in ('find "sAMAccountName:" %logpfad%\ExportUsers.ldf ') do (echo %%a >> %logpfad%\userlist.txt)
17.

18.
REM Verzeichnisse ohne Besitzer finden
19.
for /f %%b in ('dir /b %hpfad%\*.* /a:D') DO findstr %%b %logpfad%\userlist.txt || echo %%b hat keinen Besitzer >> %logpfad%\loeschen.txt
20.

21.

22.
REM User ohne HOmeverzeichnis finden
23.
for /f %%b in (%logpfad%\userlist.txt) do (IF exist %hpfad%\%%b (echo User %%b hat Userverzeichnis unter %hpfad% >> %logpfad%\verzeichnis.txt) else echo User %%b hat kein Userverzeichnis unter %hpfad% >> %logpfad%\verzeichnis.txt)
24.

Gruß Miguel
Bitte warten ..
Neue Wissensbeiträge
Internet
Copyright-Reform: Upload-Filter
Information von Frank vor 20 StundenInternet

Hallo, viele Menschen reden aktuell von Upload-Filtern. Sie reden darüber, als wären es eine Selbstverständlichkeit, das Upload-Filter die Seitenbetreiber ...

Google Android

Blokada: Tracking und Werbung unter Android unterbinden

Information von AnkhMorpork vor 22 StundenGoogle Android1 Kommentar

In Ergänzung zu meinem vorherigen Beitrag: Blokada efficiently blocks ads, tracking and malware. It saves your data plan, makes ...

Google Android
Facebooks unsichtbare Datensammlung
Information von AnkhMorpork vor 22 StundenGoogle Android1 Kommentar

Rund 30 Prozent aller Apps im Play-Store nehmen Kontakt zu Facebook auf, sobald man sie startet. So erfährt der ...

Exchange Server

Exchange 2010 bis 2019 Sicherheitslücke durch CU RU schließen

Information von sabines vor 1 TagExchange Server

Für die hier: und hier: besprochene Sicherheitslücke ist ein Patch für Microsoft Exchange Server 2010 - 2019 verfügbar. RU ...

Heiß diskutierte Inhalte
Windows 10
Windows Update funktioniert nicht - Keine Verbindung mit dem Updatedienst
gelöst Frage von anveWindows 1030 Kommentare

Hallo, ich kann schon länger keine Updates mehr machen. Wenn ich auf Update suchen gehe, dann schreibt er folgendes: ...

LAN, WAN, Wireless
NETBEUI unter Windows 10
Frage von certifiedit.netLAN, WAN, Wireless26 Kommentare

Guten Abend, wir stehen gerade vor dem Rästel, warum man in einer Industriemaschine (wert gut 6-stellig, paar mal vorhanden) ...

Hardware
Was passiert wenn ein Server zu heiß wird?
Frage von LohrakHardware21 Kommentare

Hallo Sollte ein Server zu heiß werden, da z.B ein Lüfter ausfällt, was würde passieren? Wie meldet sich der ...

Internet
EU-Gremien einigen sich auf die schärfste Form von Upload-Filter und Leistungsschutzrecht
Information von FrankInternet17 Kommentare

Nun ist es . Die Verlage, die in der Vergangenheit das Internet verschlafen hatten und kurz vor ihrer Auflösung ...