diemilz
Goto Top

Netzwerkzugriff für System-Benutzer

Servus und guten Abend,

ich habe ein kleines Problem. Ich habe einen PDF-Drucker im Netzwerk, basierend auf FreePDF XP. Ich hab den Drucker so angepasst, dass er die erstellten PDFs in das Unterverzeichnis "PDF" im Benutzer-Basisverzeichnis kopieren soll, welches als UNC-Pfad im AD hinterlegt ist. Jedoch funktioniert das nicht, der Drucker bzw. das dahinterstehende Skript wird als der Benutzer "SYSTEM" ausgeführt und der Benutzer darf anscheinend nicht auf das Netzwerk zugreifen. Die PDF wird erzeugt, ich kann sie auf dem Server überall hinkopieren wo ich will, aber sobald die Datei ins Netzwerk kopiert werden soll, funktioniert es nicht. Gibt es eine Möglichkeit, dem Benutzer das Recht zu verpassen oder wie würdet ihr das lösen? Von Hand kann ich die Datei kopieren, im Script klappt es nicht.

Besten Dank schonmal im Voraus.

Content-ID: 142988

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

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

FishersFritz
FishersFritz 17.05.2010 um 19:30:02 Uhr
Goto Top
Hast Du schon mal versucht, für "Jeder" einen Schreibzugriff für das jeweilige PDF-Verzeichnis zu geben und den Lesezugriff für "Jeder" gleichzeitig zu deaktivieren?
diemilz
diemilz 17.05.2010 um 19:58:24 Uhr
Goto Top
Schon passiert, funktioniert auch nicht. Das Skript wird als Benutzer "SYSTEM" ausgeführt und der hat anscheinend keine Berechtigung, auf das Netzwerk zuzugreifen. Nur wie kann ich das ändern oder das Skript als anderer Benutzer ausführen? Mit "runas" kann ich das vergessen, da dort interaktiv nach dem Benutzerpasswort gefragt wird.
chips1
chips1 17.05.2010 um 20:31:26 Uhr
Goto Top
muss mal blöd fragen: Wie hast Du den PDFdrucker installiert? auf dem Server und freigegeben oder bekommen alle User einen loakalen Freepdf um die Datei in einem Standardverzeichnis abzulegen? Die zweite Variante hab ich bei einigen Kunden gemacht, bringt es natürlich nur bei kleinen Kunden (bis 20, 25 Clients) weil man es überall installieren muss. Gut, Gruppenrichtlinien- oder Scriptinghelden bekommen es sicher auch per automatischem Softwarerollout hin. Das Standardverzeichnis hab ich dann per loginscript hingebogen, das funktioniert bei mir eigentlich.
diemilz
diemilz 17.05.2010 um 22:08:14 Uhr
Goto Top
Auf dem Server FreePDF XP und GhostScript installiert und den Drucker im Netz freigegeben, als Treiber einen PS-Treiber installiert, egal welcher, Hauptsache farbig. Dann das dazugehörige Script, dessen Pfad im erzeugten Druckeranschluss zu finden ist, entsprechend angepasst:




@echo.
@echo.
@echo.
@echo -------------------------------------------------------------
@echo.
@echo.
@echo PDF Printer used by %REDMON_USER% - Log follows
@echo Timestamp: %date% - %time%
@echo.
@echo.
set USER = %REDMON_USER%
set TITLE = %REDMON_DOCNAME:/=_%
set TITLE = %TITLE:\=_%
set TITLE = %TITLE::=_%
dsquery user -samid %REDMON_USER% | dsget user -hmdir | find "\\" > d:\PDF\%REDMON_USER%2.tmp
for /F "delims= " %%i in (D:\PDF\%REDMON_USER%2.tmp) do @echo %%i>>d:\PDF\%REDMON_USER%.tmp
for /F %%a in (%REDMON_USER%.tmp) do set PDFHMDIR=%%a
rem if not exists %PDFHMDIR%\PDF do mkdir %PDFHMDIR%\PDF
c:\Programme\gs\gs8.64\bin\gswin32c.exe -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dNOSAFER -dAutoRotatePages=/PageByPage -dPDFSETTINGS=/prepress -dCompatibilityLevel=1.4 -sOutputFile="%1.pdf" %1
set filename=%DATE:~6,4%_%DATE:~3,2%_%DATE:~0,2%-%REDMON_USER%_%random%
move %1.pdf %PDFHMDIR%\PDF\%filename%.pdf


Bis zum letzten Befehl und der mit "rem" auskommentierten Zeile funktioniert alles einwandfrei. Die PDF wird erzeugt und auch in der Variable wird der richtige Pfad angezeigt.
Connor1980
Connor1980 18.05.2010 um 09:30:23 Uhr
Goto Top
Was mir aufgefallen ist: die Überprüfung auf das Verzeichnis ist nicht korrekt.
Ersetze das
if not exists %PDFHMDIR%\PDF do mkdir %PDFHMDIR%\PDF
durch
if not exists %PDFHMDIR%\PDF\nul do mkdir %PDFHMDIR%\PDF

Wg. dem Berechtigungsproblem: zur Überprüfung fiele mir ein, mit
set > c:\set.log
die Umgebungsvariablen mal auszugeben, evtl. stimmt hier was nicht.
diemilz
diemilz 18.05.2010 um 13:02:07 Uhr
Goto Top
Hier die Umgebungsvariablen (anonymisiert aus Datenschutzgründen):


ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\Administrator\AppData\Roaming
AVENGINE=C:\PROGRA~1\CA\SHARED~1\SCANEN~1
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
COMPUTERNAME=Server1
ComSpec=C:\Windows\system32\cmd.exe
ETPKIHOME=C:\PROGRA~2\CA\SHARED~1\Etpki
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Users\Administrator
LOCALAPPDATA=C:\Users\Administrator\AppData\Local
LOGONSERVER=\\Server1
NUMBER_OF_PROCESSORS=8
OS=Windows_NT
Path=C:\PROGRA~2\CA\SHARED~1\Etpki\lib;C:\PROGRA~1\CA\SHARED~1\Etpki\lib;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\Windows System Resource Manager\bin;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\idmu\common;C:\Programme\gs\gs8.64\bin;C:\PROGRA~1\CA\SHARED~1\SCANEN~1;C:\Program Files\Intel\DMIX
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 15 Stepping 7, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0f07
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
PROMPT=$P$G
PUBLIC=C:\Users\Public
R_SHLIB_LD_LIBRARY_PATH=C:\PROGRA~2\CA\SHARED~1\Etpki\lib
SESSIONNAME=RDP-Tcp#0
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\ADMINI~1\AppData\Local\Temp\3
TMP=C:\Users\ADMINI~1\AppData\Local\Temp\3
USERDNSDOMAIN=domaine.local
USERDOMAIN=DOMAINE
USERNAME=administrator
USERPROFILE=C:\Users\Administrator
windir=C:\Windows