Beeboop 10 Geschrieben 2. Februar 2007 Melden Teilen Geschrieben 2. Februar 2007 Hallo, ich versuche nach langer Zeit mal wieder unter Windows mit Perl zu Programmieren. Habe das sonst unter W2K mit Perl gemacht und hatte keine Probleme. Jetzt möchte ich unter XP SP2 ein Script schreiben um Ordner mit Tagesdatum zu erstellen. Dies funktioniert unter W2K tadellos, auch als .exe-File. Unter XP mit SP2 bekomme ich die Meldung "Zugriff verweigert" oder "Access denied". Dies beim Aufruf der Systemfunktionen, egal ob ich "mkdir" schreibe oder das über "system" versuche. Hier das Script. SNIP: #!c:\perl\bin\perl.exe -w $a = `date \/t`;#Datum auslesen chomp $a; my ($a1,$a2) = split (/\s+/, $a); #Datum aufsplitten in 2 Variablen system "mkdir C:\\$a2"|| die "Kann Verzeichnis nicht anlengen: $!"; #$a1=Wochentag, $a2=Datum, Verzeichnis mit Datum anlegen print $a; SNAP: Es kann nur an den Berechtigungen oder Sicherheitseinstellungen von XP liegen, doch wo muß ich ändern? Zitieren Link zu diesem Kommentar
patrick210778 10 Geschrieben 2. Februar 2007 Melden Teilen Geschrieben 2. Februar 2007 Dies funktioniert unter W2K tadellos, auch als .exe-File.Unter XP mit SP2 bekomme ich die Meldung "Zugriff verweigert" Greifst Du LOKAL oder über das Netzwerk darauf zu? Ich gehe mal davon aus, dass Du weißt was der Unterschied zwischen Freigabeberechtigungen und NTFS Berechtigungen sind… Das ist in der der 70-270 ganz gut beschrieben... also so auf die schnelle kann man das wohl kaum mal "nebenbei" erklären! :wink2: Es ist "eigentlich" ganz Simple, aber im Konkreten Fall kann man dort durchaus eine Wissenschaft draus machen! :wink2: Jetzt stellt sich nur noch die Frage als „WAS“ greift das Progie denn zu? Bzw. welchen Zugriffstoken besitzt es denn? Und was erlaubt die Datei bzw. das ganze Verzeichnis? Gruß Zitieren Link zu diesem Kommentar
Beeboop 10 Geschrieben 3. Februar 2007 Autor Melden Teilen Geschrieben 3. Februar 2007 Hallo, ich mache das alles lokal und als User mit Adminrechten! Ich weiß jetzt nicht ganz, wie ich es erklären soll, deshalb mal den Ablauf. Ich schreibe diese Programme auf Windows mit einem speziellen Programm, heißt Optiperl. Darin kann ich die Perlgramme testen, funktionieren auch wunderbar. das Programm legt mir im Kommandozeilenfenster auf C:\ den Ordner mit dem aktuellem Datum an. Versuche ich aber auf der Kommandozeile selbst dieses Programm auszuführen, bekomme ich "Zugriff verweigert" oder "Access denied". Ich starte dazu über Ausführen cmd.exe und erhalte ja das Fenster mit der Dos-Kommanodzeile. In dem Fenster gebe ich in C:\ dann die Befehlszeile wie folgt ein, entweder perl ordner.pl oder einfach ordner.exe. Ich habe schon versucht, mit dem ProcessMonitor rauszufinden, was los ist. Dort kann ich sehen, das die cmd.exe bei dem Zugriff auf C:\ ein Access Denied bekommt, da die cmd.exe angelbich nur das Recht hat zu lesen, nicht zu schreiben. Zitieren Link zu diesem Kommentar
patrick210778 10 Geschrieben 3. Februar 2007 Melden Teilen Geschrieben 3. Februar 2007 ich mache das alles lokal und als User mit Adminrechten!Dort kann ich sehen, das die cmd.exe bei dem Zugriff auf C:\ ein Access Denied bekommt, da die cmd.exe angelbich nur das Recht hat zu lesen, nicht zu schreiben. Da kann ich Dir nicht weiter helfen Um das script auch wirklich mit Admin Rechten zu starten ... versuche mal runas /user:AdminAccount script.exe ... aber wenn du schon als Admin angemeldest bist, sollte es Sinnlos sein …mhhh :suspect: PS. Ähm… Überleg -der Compiler übersetzt den Code der Linker macht ein *.exe draus.. also ist der Ersteller der .exe der Linker! Was hat das "FERTIGE" script.exe File den für Effektive Berechtigungen? Zitieren Link zu diesem Kommentar
Beeboop 10 Geschrieben 3. Februar 2007 Autor Melden Teilen Geschrieben 3. Februar 2007 Hallo, es ist egal ob es die *.pl oder *.exe ist. Bei beiden erhalte ich den gleichen Fehler. Das runas habe ich schon ausprobiert, klappt auch nicht. Ich sehe es so, das es nur an den Sicherheitseinstellungen liegen kann, anders kann ich es mir nicht mehr erklären. Warum kann das Programm, mit denen ich die Scripte schreibe, sie richtig ausführen, aber wenn ich die Kommandozeile aufrufe und dort die Programme ausführe geht es nicht. Bin völlig ratlos, da wie gesagt, unter W2K lief das ohne Probleme. Trotzdem danke für die Hinweise. Zitieren Link zu diesem Kommentar
Beeboop 10 Geschrieben 3. Februar 2007 Autor Melden Teilen Geschrieben 3. Februar 2007 :D Hallo, hat sich erledigt. Fehler war, das die 2. Variable leer ist. Unter W2K ist das Datumsformat WOCHENTAG DATUM. Unter XP ist es bei mit nur DATUM. Somit ist die 2.Variable leer und das würde bedeuten, ich würde Ordner ohne Namen anlegen und das geht nicht. Deswegen auch das "ACCESS DENIED" oder "Zugriff verweigert". :D Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.