Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Batch Datei, Nutzerordner mit Berechtigungen

Frage Microsoft

Mitglied: Gerschi

Gerschi (Level 1) - Jetzt verbinden

24.03.2010 um 15:40 Uhr, 5583 Aufrufe, 28 Kommentare

Hallo Leute,
ich sitz grad vor einer Aufgabe und steh mit batch programmierung oder überhaupt programmierung auf Kriegsfuß.

Ich würde gern mittels einer Batch Datei auf dem Server einen Ordner mit dem Namen "Scanner" anlegen.
In diesem Ordner sollen wiederrum Ordner erstellt werden, mit den Namen der Nutzer. Ich hab mir das so gedacht, dass ich die Benutzernamen manuell in eine .txt Datei eintrage, die Batch Datei diese nutzer.txt dann ausliest und daraufhin die Ordner, mit den Namen aus der txt anlegt. In jedem Benutzerordner soll wiederrum ein Ordner mit dem Namen "Original" angelegt werden.
Wichtig ist noch, dass nur der Nutzer, dem der Ordner gehört ändern Rechte über diesen hat (und der Admin natürlich Vollzugriff).
Leider fehlen mir die Kenntnisse dies zu realisieren
Gibt es da vielleicht noch eine elegantere Lösung, als die mit der txt Datei?

Danke schon mal!

Gruß
Gerschi
28 Antworten
Mitglied: MaceWindu
24.03.2010 um 16:30 Uhr
Führe in einem Anmeldescript folgendes aus:

if EXIST \\Servername\Scanner\%USERNAME% (
dir \\Servername\Scanner\%USERNAME%
) ELSE (
md \\Servername\Scanner\%USERNAME%
md \\Servername\Scanner\%USERNAME%\Original
)


Das macht folgendes:

Schau nach ob es auf dem Serverlaufwerk einen Ordner mit %USERNAME% gibt. Wenn nicht dann erstell ihn inkl. einem enthaltenen Ordner "Original". Wenn aber ja, dann liste den Inhalt auf (das ist mir gerade so eingefallen, kenn den Befehl nicht für "tu nichts" .

Dieses Script soll vom Client aus aufgerufen werden, dadurch entspricht USERNAME=Ordnername und der Ordnerbesitzer hat alle Rechte. domAdmin sowieso durch die Vererbung.
Wennst keine Domäne oder keine Anmeldescripts hast, dann leg die Datei auf eine zugängliches Serverlaufwerk und eine Verknüpfung in den Autostart.


*Hach! ich liebe diese quick & dirty Dinger*
Bitte warten ..
Mitglied: 60730
24.03.2010 um 17:23 Uhr
Servus,

es gibt ein Tool namens Xcacls damit vergibt man Rechte auf NTFS Ordner, die Aussage dass der der Ordnerbesitzer alle Rechte hat, ist sehr gewagt und mag in Waldwiesenundfreiluftinstallationen hier und dort so sein.

Ps: Anstatt ein Dir wegen tu nix zu machen - vielleicht eher ein
01.
if not exist ?
Und ich würde das erstellen der Ordner auch mit einer .txt machen, denn dann kann man mit administrativen Rechten genau diesem einen User per xcacls auch die Rechte geben.
Am besten also

  • xcacls.exe (nicht das .vbs) bei den redmontern runterladen
  • for /? in eine Dosbox eingeben und sich die Hilfe ansehen - ist ganz einfach.


Gruß

ich habs gerne dreckig, aber für quickys bin ich zu alt
http://support.microsoft.com/kb/318754/de
Bitte warten ..
Mitglied: bastla
24.03.2010 um 19:41 Uhr
Hallo @All!
Ps: Anstatt ein Dir wegen tu nix zu machen - vielleicht eher ein
if not exist ?
... oder einfach das Ganze reduzieren auf
md \\Servername\Scanner\%USERNAME%\Original 2>nul
und gut ist ...
Ansonsten schließe ich mich TimoBeil an - die Textdatei als Basis ist sicher nicht zu verachten, und schematisch könnte (und dafür sollte auch das bereits an Bord befindliche "cacls" genügen) das dann so aussehen:
01.
@echo off & setlocal 
02.
set "Liste=D:\Benutzerliste.txt" 
03.
set "Basis=D:\Scanner" 
04.
 
05.
for /f "usebackq delims=" %%i in ("%Liste%") do ( 
06.
    md "%Basis%\%%i\Original" 2>nul 
07.
    echo j|cacls "%Basis%\%%i" /T /G Administratoren:F %%i:C >nul 
08.
)
[Edit] "/T" an die richtige Position befördert und "cacls"-Ausgabe unterdrückt [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: Gerschi
25.03.2010 um 07:56 Uhr
Danke für die schnellen Antworten!
Leider funktioniert es so nicht, wie du es beschrieben hast bastla. Der Rechner führt nix aus
Hab mir jetzt selber ein kleines Skript zusammen gebastelt jedoch bekomm ichs nicht mit den Berechtigungen hin
Mein Skript sieht folgendermaßen aus und legt nun die Ordner, mit den Namen aus der .txt Datei an:

md "c:\ocr2\Scanner"
for /f "delims=" %%i in (c:\Nutzernamen.txt) do md "c:\ocr2\scanner\%%i" 2>nul
do md "c:\ocr2\scanner\%%i\Original"

Hab es mit den Berechtigungen so versucht:

XCACLS "c:\ocr2\Scanner\%%i" /T /G %%i:F

Wie gesagt, so geht das mit den Ordnern, aber die Berechtigungen machen mir Kopfschmerzen da es einfach nicht geht
Wäre sehr dankbar für euchre Hilfe

Gruß
Gerschi
Bitte warten ..
Mitglied: Biber
25.03.2010 um 08:37 Uhr
Moin Gerschi,

der Wert der dynamischen Laufvariablen %%i ist nur innerhalb der FOR-Anweisung vorhanden und sichtbar.
Dem entsprechend musst du alle userverzeichnisbezogenen Arbeitsschritte (Verzeichnisse anlegen und Rechte setzen) innerhalb der FOR-Anweisungs-DO KlammerAuf-KlammerZu-Sequenz abfackeln.

Ungetestete Skizze:
01.
 
02.
..... 
03.
for /f "delims=" %%i in (c:\Nutzernamen.txt) do ( 
04.
       REM [redundant] md "c:\ocr2\scanner\%%i" 
05.
       md "c:\ocr2\scanner\%%i\Original" 2>nul 
06.
      XCACLS "c:\ocr2\Scanner\%%i" /T /G %%i:F 
07.
08.
.....
Grüße
Biber

[edit] Überflüssige MD-Zeile auskommentiert - s. bastlas Hinweis unten. [/edit]
Bitte warten ..
Mitglied: bastla
25.03.2010 um 08:48 Uhr
@Biber
Gescheitert ist mein erster Ansatz aber nur an der falschen Position des Parameters "/T" (ich korrigiere das mal oben).
Das "md" in Deiner Zeile 4 könnte übrigens durch die Zeile 5 mit erledigt werden ...

Grüße
bastla

P.S.: Du wirst ja immer noch schneller ...
Bitte warten ..
Mitglied: Biber
25.03.2010 um 09:06 Uhr
Moin bastla,

jetzt, nach dem zweiten Kaffee und dem zweiten Lesen könnte allerdings das Problem darin begündet sein, dass diese User evtl. Leerzeichen im Namen mitschleppen.
Zumindest der Zusatz "delims=" in der C:\Nutzernamen.txt-Auslese-Anweisung deutet diese Möglichkeit an.

Dann sollte auch der XCACLsAufruf auf mögliche Leerzeichen angepasst werden.
01.
... 
02.
FOR .....DO ( 
03.
      MD .... 
04.
      XCACLS "c:\ocr2\Scanner\%%i" /T /G "%%i":F  
05.
06.
....
Grüße
Biber
Bitte warten ..
Mitglied: Gerschi
25.03.2010 um 09:39 Uhr
Danke für die Antworten!
Leider funktioniert es immernoch nicht
Jetzt legt er nur den Ordner "scanner" an , keine Unterordner und auch keine Berechtigungen
Ich denk mal, es haut was mit der Shleife nich hin, da scanner ja außerhalb der Schleife angelegt wird, wie ich es oben beschrieben hab.

Gruß
Gerschi
Bitte warten ..
Mitglied: 60730
25.03.2010 um 10:08 Uhr
Salü,

jetzt mal gaanz langsam und der reihe nach.

Seit Bibers Kommentar ist die Funktion der Schleife doch erklärt.
Und seit Bastlas /T Änderung auch seine Version nicht nur per Copy und Paste übertragbar, sondern offensichtlich in den Status Getestet übergegangen.

Da unsere beiden Bs aus dem B Bereich aber Bereits jeder eine Batch geschrieben hat ist deine Aussage irgendwie verwirrend.
  • Welche der beiden Batche hast du denn als Vorlage genommen?

Wenn du zuerst eine Dosbox öffnest - dadrin die Batch laufen läßt - die idealerweise kein echo off hat - dann sieht du doch den Fehler.

Würdest du "deine" batch hier reinschreiben - "könnten" wir evtl. den fehler sehen, aber grob ungestestet vertraue ich auf beide Batche.
Bitte warten ..
Mitglied: Gerschi
25.03.2010 um 10:54 Uhr
Tut mir leid für die Verwirrung!
Ich hab Bibers vorlage genommen.
So sieht meine Batch derzeit aus:

md "c:\ocr2\scanner"
for /f "delims=" %%i in (c:\nutzernamen.txt) do
(
REM [redundant] md "c:\ocr2\scanner\%%i"
md "c:\ocr2\scanner\%%i\Original" 2>nul XCACLS "c:\ocr2\scanner\%%i" /T /G "%%i":f
)

Wenn ich es über die Dosbox starte kommt folgende Fehlermeldung:

http://www.fotos-hochladen.net/cmd208jbzaq.jpg

Gruß
Gerschi
Bitte warten ..
Mitglied: 60730
25.03.2010 um 11:13 Uhr
Servus again,

ich meinte das anders...


  • Dosbox öffnen
  • das Script aus dem Explorer in die Dosbox schieben
  • Der Pfad und der Name der Batch erscheint
  • Return drücken

%%i ist immer ein Batch - als einzelner Befehl %i.

btw: du kannst Hier auch Bilder reinstellen
Die Nutzernamen haben aber keine ß,üö Sonderzeichen?

Da ich keine Struktur c:\ocr2\scanner\ haben möchte ein simples Echo vor dem MD Befehl gesetzt.
Und dann kommt sowas bei raus.

01.
c:\script\>for /F "delims=" %i in (c:\script\Nutzernamen.txt) 
02.
 do (echo md "c:\ocr2\scanner\%i\Original" ) 
03.
 
04.
c:\script\>(echo md "c:\ocr2\scanner\Mueller\Original" ) 
05.
md "c:\ocr2\scanner\Mueller\Original" 
06.
 
07.
c:\script\>(echo md "c:\ocr2\scanner\meier\Original" ) 
08.
md "c:\ocr2\scanner\meier\Original" 
09.
 
10.
c:\script\>(echo md "c:\ocr2\scanner\Schultze\Original" ) 
11.
md "c:\ocr2\scanner\Schultze\Original" 
12.
 
13.
c:\script\>pause 
14.
Drücken Sie eine beliebige Taste . . 
Wenn die dazugehörige Batch so aussieht:
01.
for /f "delims=" %%i in (C:\script\Nutzernamen.txt) do ( 
02.
       echo md "c:\ocr2\scanner\%%i\Original" 
03.
04.
 
05.
pause
Den Inhalt der Nutzernamen.txt erkennt man ja oben.
Mueller
meier
Schultze
Bitte warten ..
Mitglied: Gerschi
25.03.2010 um 11:19 Uhr
Achso, dann gibt er mir nen Syntaxfehler aus:

http://www.fotos-hochladen.net/cmdwjyqrxdt.jpg

Nein, ß und sowas sind nicht in den Namen enthalten.
Bitte warten ..
Mitglied: 60730
25.03.2010 um 11:25 Uhr
*uff*

  • gibts denn den Ordner "c:\ocr2\scanner"?
  • Wenn du schon einen Syntaxfehler beim simplen md bekommst - wird es aber irgendwie kosmisch komisch...
  • die Nutzernamen sind in c:\ als nutzernamen.txt?


auf was hab ich mich da wieder eingelassen..
ich habs gerne dreckig, aber für quickys bin ich zu alt - war eigentlich ironisch gemeint und der Hinweis, das des Ösis Ansatz etwas neben der Spur war..
Bitte warten ..
Mitglied: Gerschi
25.03.2010 um 11:50 Uhr
Ja, der Ordner "scanner" wird ja vor der Schleife angelegt:

md "c:\ocr2\scanner"
for /f "delims=" %%i in (c:\nutzernamen.txt) do
(
REM [redundant] md "c:\ocr2\scanner\%%i"
md "c:\ocr2\scanner\%%i\Original" 2>nul XCACLS "c:\ocr2\scanner\%%i" /T /G "%%i":f
)

Ja, die Nutzernamen befinden sich in der nutzernamen.txt

Mit dem Skript, welches ich in dem post von 7:55Uhr gepostet hab geht das Ordner anlegen ja, nur die Berechtigungen vergeben hab ich nicht hin bekommen.

Danke für die Mühe und die Gedult!

Gruß
Gerschi
Bitte warten ..
Mitglied: 60730
25.03.2010 um 11:59 Uhr
Zitat von Gerschi:
Ja, der Ordner "scanner" wird ja vor der Schleife angelegt:

md "c:\ocr2\scanner"

und darauf komt doch schon der Syntaxfehler

Ohne einem der beiden Bs nahetreten zu wollen und weil das eigentlich kompletter Unfug ist - schreib ich die B der Bs mal um:

bzw: ist das wirklich "deine Batch"?
md "c:\ocr2\scanner\%%i\Original" 2>nul XCACLS "c:\ocr2\scanner\%%i" /T /G "%%i":f
alles in einer Zeile?
So war aber die Vorlage nicht...

01.
for /f "delims=" %%i in (c:\nutzernamen.txt) do 
02.
                         (echo md "c:\ocr2\scanner\%%i\Original" >>c:\doit.cmd 
03.
                          echo  XCACLS "c:\ocr2\scanner\%%i" /T /G "%%i":f >>c:\doit.cmd 
04.
05.
echo pause >>c:\doit.cmd 
06.
if not exist xcacls.exe echo xcacls nicht gefunden - kann also nicht mit Bibers Batch laufen 
07.
Echo Xcacls runterladen oder Bastlas batch nutzen 
08.
c:\doit.cmd
das ding jetzt mal ohne Änderungen haaargenauso laufen lassen - wie immer in einer eigenen Dosbox.

Was passiert?
Bitte warten ..
Mitglied: Gerschi
25.03.2010 um 12:06 Uhr
Da kommt haargenau der selbe Fehler!?
Das gibts doch nicht!


Gruß
Gerschi
Bitte warten ..
Mitglied: 60730
25.03.2010 um 12:12 Uhr
kann nicht..

der Syntaxfehler ist doch beim md "c:\ocr2\scanner" erschienen....

Die Zeile gibts bei mir doch gar nicht - schon allein deswegen ist das mit der Meldung irritierend.

Jetzt gehts du mal an einen anderen Rechner und läßt das laufen.
Vorher aber die Nutzerdaten.txt an die gleiche Stelle im Dateisystem kopieren.

Glaub mir, das was ich um 11:59:19 Uhr geschrieben hab - ist eigentlich lachhaft für so ein micker Schleifchen haargenau der Zustand, wie er bei einem Winblows Xp Servicepack egal rauskommt.
Bitte warten ..
Mitglied: Gerschi
25.03.2010 um 12:23 Uhr
So war an nem anderen Rechner und da kam folgender Fehler:#

http://www.fotos-hochladen.net/batsrle9yi4.jpg

Mit dem Skript, welches ich in dem post von 7:55Uhr gepostet hab geht das Ordner anlegen ja, nur die Berechtigungen vergeben hab ich nicht hin bekommen.

Gruß
Gerschi
Bitte warten ..
Mitglied: 60730
25.03.2010 um 12:31 Uhr
der letzte Versuch aus dem Dirty doch noch einen doppelquickie zu machen..

UNd was genau ist der UNterschied der Bat, die das geschafft hat und zu denen, die gleich einen Syntaktischen fehler raus werfen, bevor Sie irgendwas machen?

  • Die Ordner sind schon alle da?
  • cacls oder xcacls
  • was steht in der c:\doit.cmd - und bitte zwischen <code> </code> Blöcken auf externe Bilderhoster hab ich keine klickeritis.
Bitte warten ..
Mitglied: Gerschi
25.03.2010 um 12:43 Uhr
Es wird kein Ordner angelegt. Den ordner ocr2 hab ich auf dem anderen Rechner erstellt, sowie die nutzernamen.txt.
Bei mir gibt es keine doit.cmd?
Was meinst du mit cacls oder xcacls?
Würde es gehen, das du meine Funktionierende bat als grundlage nimmst und da einfach noch die Ordnerberechtigungen setzt?

Gruß
Gerschi
Bitte warten ..
Mitglied: 60730
25.03.2010 um 12:58 Uhr
Ein aller allerletztes Wort

Diese Batch ist so banal, da brauchts keinen Biber oder Bastla vorgehehend als B aus dem B Bereich genannt.

Das was du da um 7.55 und ebbes gepostet hat - kann garnicht funktioniert haben.

Und was es mit rem redundant auf sich hat...

01.
for /f "delims=" %%i in (c:\Nutzernamen.txt) do md "c:\ocr2\scanner\%%i\Original" 
02.
pause 
03.
for /f "delims=" %%i in (c:\Nutzernamen.txt) do XCACLS "c:\ocr2\Scanner\%%i" /T /G "%%i":F 
04.
pause
Edit:
T /G "%%i":F - ist doch erst morgen, woher wußte Biber das dieses Thema erst morgen gelöst sein wird?
Bitte warten ..
Mitglied: Gerschi
25.03.2010 um 13:28 Uhr
Vielen, vielen Dank!
So klappts
Echt super!

Gruß
Gerschi
Bitte warten ..
Mitglied: 60730
25.03.2010 um 13:32 Uhr
Zitat von Gerschi:
Vielen, vielen Dank!
So klappts
Echt super!

Gruß
Gerschi
Bittte bitte bitte Haken dran

Gruß
Bitte warten ..
Mitglied: Gerschi
25.03.2010 um 14:13 Uhr
Bin ja neu hier, was hats denn mit dem Haken auf sich?
Bekommst du da Punkte weil dus gelöst hasst?

Gruß
Gerschi
Bitte warten ..
Mitglied: bastla
25.03.2010 um 17:22 Uhr
Hallo Gerschi!
Bekommst du da Punkte weil dus gelöst hasst?
Glaub mir - niemand hier hasst gelöste Threads ...

Übrigens (korrigiere mich bitte, wenn ich falsch liege): Kaum war die Klammer (der Art "(") am Ende der "for"-Zeile platziert, war's auch schon vorbei mit dem Syntaxfehler ...

Grüße
bastla
Bitte warten ..
Mitglied: 60730
25.03.2010 um 20:31 Uhr
Zitat von Gerschi:
Bin ja neu hier, was hats denn mit dem Haken auf sich?

In dem speziellen Fall nicht persönlich nehmen

Dein Problem ist gelöst wir erlöst

Bekommst du da Punkte weil dus gelöst hasst?
Nur wenn du nicht aus Flensburg bist und ich hab das Problem ganz sicher nicht gelöst das Bier geht an die Beiden Bs.

Gruß
Gerschi
yupp
@ Bastla: so genau will ich das garnicht wissen, nachher liegt es noch an nem lahmen Netz und das xcacls soll einen halbangelegten Ordner anfassen oder noch einfacher..
Bitte warten ..
Mitglied: Biber
25.03.2010 um 20:42 Uhr
Moin gerschi,

Zitat von Gerschi:
Bin ja neu hier, was hats denn mit dem Haken auf sich?
Lass dich bloss nicht verwirren durch bastlas und T-Mos Wortspielchen.
Es ist viel einfacher: Der Haken an diesem Forum ist, dass nur gelöste Beiträge in dem Light-Ableger "benutzer.de" angezeigt werden.
Und da es bei manchen Beitragserstellern mit dem Abhaken hakt, wollte T-Mo noch mal eben einhaken.

Aber, um mal auf den Punkt zu kommen: Punkte bekommt er nicht dafür.

So einleuchtender?

Grüße
Biber
Bitte warten ..
Mitglied: Gerschi
26.03.2010 um 12:03 Uhr
Jap, jetzt versteh ich!
Danke!

Gruß
Gerschi
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Ä in batch Datei (12)

Frage von BergEnte zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
RODC über VPN - Verbindung weg (10)

Frage von stefan2k1 zum Thema Windows Server ...