AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Windows Server 2019 Temp Pfad

Ein Thema von zeras · begonnen am 8. Jan 2021 · letzter Beitrag vom 9. Jan 2021
Antwort Antwort
Seite 1 von 2  1 2      
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#1

Windows Server 2019 Temp Pfad

  Alt 8. Jan 2021, 08:46
Guten Morgen,

ich habe folgende Funktion, die mir im Temppfad einen Unterordner erstellt. Dies klappt auch bei einem "normalen" Windows 10 prof.
Nun habe ich das Programm auf einem Windows Server 2019 Standard gestartet und bekomme dann die Meldung angezeigt, dass der Pfad nicht erstellt werden kann.
Dies könnte ich noch ändern, indem ich einen Pfad in C:\temp erstelle. Aber ich nutze ein externes Programm, welches auch in diesen Pfad schreiben will. Da dies nicht klappt, bricht das Programm ab.
Habt ihr eine Idee?


Delphi-Quellcode:
 fname := IncludeTrailingPathDelimiter(TPath.GetTempPath) + s;
  if Not DirectoryExists(fname) then begin
    if not ForceDirectories(fname) then begin
      ShowMessage('lokaler Temp Pfad kann nicht angelegt werden!'
                  + #10#13
                  + fname);
      exit;
    end;
  end
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Windows Server 2019 Temp Pfad

  Alt 8. Jan 2021, 10:49
Klingt komisch. Wie lautet der Pfad? Macht es einen Unterschied, ob das Programm als Administrator läuft? Läuft es überhaupt als ein Benutzer oder als Dienst? Funktioniert GetEnvironmentVariable('TEMP')?

Übrigens ist
Delphi-Quellcode:
if not DirectoryExists(fname) then begin
if not ForceDirectories(fname) then begin
doppelt. ForceDirectories schließt DirectoryExists ein.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#3

AW: Windows Server 2019 Temp Pfad

  Alt 8. Jan 2021, 11:37
Wenn ich zum Test das so aufrufe, kommt ein leerer String raus.
ShowMessage(Format('TPath.GetTempPath = "%s"', [TPath.GetTempPath]));
Nutze ich
ShowMessage(Format('GetEnvironmentVariable("Temp") = "%s"', [GetEnvironmentVariable('Temp')])); , dann kommt auf jeden Fall erst einmal ein String raus, der so aussieht, als wenn dieser OK wäre.

Als Admin kann ich das Programm nicht starten, da ich keine Adminrechte habe.
Das Programm wird nur gestartet (liegt aber auf einem anderen Laufwerk, also nicht auf dem Server) und läuft nicht als Dienst.

Ich habe von der Meldung des anderen Programms mal den Pfad per CMD erstellt und siehe da, es geht nun offenbar. Was mich aber verwundert, ist dass hinter c:\users\xxxx\temp\ noch eine "3" im Pfad steht, siehe Anhang. Dieses habe ich alles per Hand erstellt und nun kommen auch bei beiden Aufrufen oben der Pfad zum Temp Ordner.
Was hat aber der Unterpfad "3" für eine Bewandnis?
Miniaturansicht angehängter Grafiken
temppfad.png  
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain

Geändert von zeras ( 8. Jan 2021 um 12:02 Uhr) Grund: Weitere Infos hinzugefügt
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#4

AW: Windows Server 2019 Temp Pfad

  Alt 8. Jan 2021, 23:10
Ich hab auf der Kiste hier nur XE2 drauf, da ist TPath.GetTempPath das als Winapi.Windows.GetTempPath definiert. Zu dessen Verhalten siehe hier. Möglicherweise ist die TMP-Variable falsch definiert? Das erklärt aber nicht, warum es nach Anlegen des Pfades geht. In Server 2019 gibt es wohl einen Bug mit dem Temp-Pfad, aber da GetTempPath keine Prüfung durchführt, dürfte das egal sein.

Wie es zu der 3 kommt, weiß ich nicht, da würd ich mal GetTempPath untersuchen, was das so tut.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: Windows Server 2019 Temp Pfad

  Alt 9. Jan 2021, 01:27
TPath.GetTempPath benutzt Bei Google suchenGetTempPath, gefolgt von einem Bei Google suchenGetLongPathName.

Leider ist die Fehlerbehandlung von TPath.GetTempPath eher grauenhaft, denn ein TempVerzeichnis muß es immer geben
und wenn die Funktion dennoch mal nichts liefert, dann sollte da besser eine Fehlermeldung geworfen werden, anstatt grob fahrlässig einen Leerstring rauszugeben.


Ach ja, ich empfehle dir eher Delphi-Referenz durchsuchensLineBreak, wenn du die Semantik von Zeilenumbrüchen nicht verstehst.
#10#13 ist definitiv falsch. (#10, #13 oder #13#10 ... aber #10#13 sind zwei gemischte Zeilenumbrüche, also #10+#13)
$2B or not $2B
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#6

AW: Windows Server 2019 Temp Pfad

  Alt 9. Jan 2021, 08:56

Ach ja, ich empfehle dir eher Delphi-Referenz durchsuchensLineBreak, wenn du die Semantik von Zeilenumbrüchen nicht verstehst.
#10#13 ist definitiv falsch. (#10, #13 oder #13#10 ... aber #10#13 sind zwei gemischte Zeilenumbrüche, also #10+#13)
Danke für den Hinweis.
Ich werde das in neuen Projekten beachten und im aktuellen noch korrigieren.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
harfes

Registriert seit: 25. Jun 2006
Ort: Rand der Scheibe
199 Beiträge
 
Delphi 12 Athens
 
#7

AW: Windows Server 2019 Temp Pfad

  Alt 9. Jan 2021, 09:18
Hast Du mal den Admin des 2019er-Servers befragt, ob dieser aus Sicherheitsgründen den Temp-Ordner verändert hat (wegen der "3")? Manche Admins machen das, um Malware diesen einfachen Weg zu versperren, ihren Mist zu verbreiten bzw vorzubereiten... Ich vermute, dass deswegen auch Dein von Hand eingetragener Pfad funktioniert.

Hartmut
Hartmut
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

AW: Windows Server 2019 Temp Pfad

  Alt 9. Jan 2021, 13:53
Hast Du mal den Admin des 2019er-Servers befragt,
Unser RDP-Server macht das.

Und mit GetTempPath gibt es da keine Probleme, denn dafür ist es ja eigentlich auch da, um diesen aktuellen Pfad zu bekommen.
Wird bei jedem Neustart einer Session hochgezählt.
$2B or not $2B
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#9

AW: Windows Server 2019 Temp Pfad

  Alt 9. Jan 2021, 17:35
Hast Du mal den Admin des 2019er-Servers befragt, ob dieser aus Sicherheitsgründen den Temp-Ordner verändert hat (wegen der "3")? Manche Admins machen das, um Malware diesen einfachen Weg zu versperren, ihren Mist zu verbreiten bzw vorzubereiten... Ich vermute, dass deswegen auch Dein von Hand eingetragener Pfad funktioniert.

Hartmut
Ich werde nächste Woche mal den Admin fragen, ob ihm das bewußt ist oder nicht. Dann gebe ich wieder Bescheid.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#10

AW: Windows Server 2019 Temp Pfad

  Alt 9. Jan 2021, 22:28
Also unter Admin ist das oft c:\windows\temp

Du kannst wie du schon schreibst, dass TEMP umbiegen via Umgebungsvariablen. Musst halt schauen, dass die globalen Hinzeigen und ggf. nicht durch Benutzer TEMPs überschrieben werden.
Jedes Konto hat sein eigenes TEMP.

C:\temp klingt für mich nach Problemen mit Dateisystemrechten - unter umständen darf nur der Ersteller da reinschreiben.

Aber da kannst du ja eine passende ACL drauf setzen.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz