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, 5569 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
Viren und Trojaner

Gratis-Entschlüsselungstool für STOP-Ransomware verfügbar

Information von AnkhMorpork vor 4 StundenViren und Trojaner

Der Sicherheitsanbieter Emisoft hat ein kostenloses Tool veröffentlicht, mit dem sich Dateien entschlüsseln lassen, die die Ransomware STOP unbrauchbar ...

Off Topic
8 zoll disketten
Information von brammer vor 22 StundenOff Topic5 Kommentare

Hallo, ob das so gut ist brammer

Off Topic
Noch mehr was ich nicht brauche
Information von brammer vor 4 TagenOff Topic6 Kommentare

Hallo, WOFÜR? WARUM? brammer

Windows Server

Windows Server 2016 Suche nicht funktioniert ist ausgegraut Windows Server 2016 Search not work

Erfahrungsbericht von Wano347 vor 5 TagenWindows Server

Hallo Leute, wir haben vor kurzem ein Problem gehabt: Windows Server 2016 frisch installiert. Nach Checkliste konfiguriert (sieht vor ...

Heiß diskutierte Inhalte
Windows 7
Alter PC abgebrannt - Festplatte im neuen PC führt zum Bluescreen
gelöst Frage von CAT404Windows 724 Kommentare

Moin ich habe seit heute mittag einen PC aufm Tisch stehen, total verzweifelter Eigentümer. Der Rechner ist so ein ...

Server-Hardware
Welches Betriebssystem für DL380p Gen8 für den Heimgebrauch
Frage von peter91gServer-Hardware16 Kommentare

Hallo zusammen, betreibe Zuhause einen Dl380p G8 derzeit mit ESXI in der Testversion. Es läuft je nach Bedarf Ubuntu ...

Router & Routing
Zwei Netzwerk miteinander verbinden oder in einem IP Bereich Zugriffsrechte setzen
Frage von spreenautinRouter & Routing14 Kommentare

Hallo, ich würde gerne zwei Netzwerk mit unterschiedlichen IP Bereichen mit einandern verbinden. Dann würde ich gerne definieren wer ...

Windows Server
Powershell Skript kann nicht geladen werden
Frage von renatus85Windows Server12 Kommentare

Hallo, ich habe folgendes Anliegen: In unserer Organisation setzen wir AlwaysOn VPN ein. Das funktioniert soweit auch ohne Probleme. ...