Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Lokal am Computer angemeldet, oder an Domäne? (https://www.delphipraxis.net/121401-lokal-am-computer-angemeldet-oder-domaene.html)

Guido Eisenbeis 2. Okt 2008 12:22

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Zitat:

Zitat von Union
Zitat:

Einerseits wird das für jeden Prozess auf jeden Fall gesetzt. Auf der anderen Seite kann natürlich jeder Prozess auch sein Environment ändern.

Heißt das, dass es im Prozess meines Programmes zuverlässig ist, solange mein Programm die Umgebungs-Variable nicht selbst ändert? Oder kann das von außen, also von einem anderen Programm geändert werden?

Guido

Union 2. Okt 2008 12:30

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Jeder Prozess erhält eine Kopie des System-Environments. Wenn man ein Delphi Programm schreibt und die obige Funktion ausführt, und dann ein weiteres Programm startet das die Variable ausgibt, ist sie unverändert. Kann man auch über cmd testen. Ob es nicht doch die Möglichkeit gibt, irgendwie auf den (fremden) Processspeicher zuzgreifen, entzeiht sich meiner Kenntnis.

nahpets 2. Okt 2008 12:35

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Hallo,
Zitat:

Zitat von Guido Eisenbeis
Heißt das, dass es im Prozess meines Programmes zuverlässig ist, solange mein Programm die Umgebungs-Variable nicht selbst ändert? Oder kann das von außen, also von einem anderen Programm geändert werden?

theoretisch könnte Dein Programm über eine Batch aufgerufen werden, die vorher die Umgebungsvariabeln "umschießt".

Schau doch bitte mal in der Registry unter
Code:
HKEY_CURRENT_USER\Volatile Environment
Dort findest Du einen Eintrag LOGONSERVER und einen Eintrag USERDNSDOMAIN.

Wenn die sich, abhängig von der Anmeldung, unterscheiden, könnte das für Dich eine Alternative sein.

Jetzt komme mir bitte keiner uns sage:

Wenn Du das Programm per Batch aufrufst, kannst Du dort die Einträge vor dem Programmaufruf ändern.

Habe es ausprobiert, Änderung ist möglich.

Guido Eisenbeis 2. Okt 2008 12:58

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Zitat:

Zitat von Union
Jeder Prozess erhält eine Kopie des System-Environments.

Das verstehe ich nun so, dass eine Enviroment-Varibable im System-Enviroment NICHT geändert wird, wenn in meinem oder einem anderen Programm diese Variable geändert wird, da dieses Programm mit seiner eigenen Kopie der Enviroment-Variablen arbeitet. Ist das richtig?


Zitat:

Zitat von nahpets
Schau doch bitte mal in der Registry unter
Code:
HKEY_CURRENT_USER\Volatile Environment
Dort findest Du einen Eintrag LOGONSERVER und einen Eintrag USERDNSDOMAIN.

Ich habe in der Registry den Wert für 'LOGONSERVER' geändert und dann sowohl mit Delphi als auch in der DOS-Konsole überprüft. Weder in Delphi noch in der Konsole hat sich der Wert geändert! Das würde doch die oben stehende Aussage bestätigen, dass das System-Enviroment unverändert bleibt, sogar wenn der oben genannte Registry-Eintrag geändert wird?

Guido.

nahpets 2. Okt 2008 13:23

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Zitat:

Zitat von Guido Eisenbeis
Ich habe in der Registry den Wert für 'LOGONSERVER' geändert und dann sowohl mit Delphi als auch in der DOS-Konsole überprüft. Weder in Delphi noch in der Konsole hat sich der Wert geändert! Das würde doch die oben stehende Aussage bestätigen, dass das System-Enviroment unverändert bleibt, sogar wenn der oben genannte Registry-Eintrag geändert wird?

Nein, nein, Missverständnis:
Eine Änderung der Registry führt nicht zu einer Änderung der Umgebungsvariabeln und umgekehrt, was ich sagen wollte ist:
Den Wert in der Registry kannst Du genauso manipulieren, wie den Wert der Umgebungsvariabeln. D. h.: Zu Laufzeit Deines Programmes hast Du keine 100%ige Sicherheit, dass die Umgebungsvariabeln noch den ursprünglichen Wert enthalten, ebenso könnte jemand die Einträge in der Registry geändert haben. Beides ginge am Einfachsten durch Aufruf Deines Programmes per Batch, mit vorheriger Manipulation innerhalb des Batchs. Die Batchdatei bekommt beim Ausführen ihre eigene Umgebung, kann dann damit "machen was sie will" und die so veränderte Umgebung ist dann das System-Enviroment für Dein Progamm. Neben LOGONSERVER könnte ja auch PATH geändert werden, aber deshalb suchen wir in unseren Programmen nicht danach, ob es noch eine andere Möglichkeit gibt, an den Suchpfad zu kommen.
Änderungen der Registry aus einem Batch könnten dann eher dauerhaft sein (bis zum Neustart des Systems?).

Zugegeben halte ich die Diskussion für eher akademisch.

An einem normalen System solltest Du Dich sowohl auf die Umgebungsvariabeln, als auch auf die Einträge in der Registry verlassen können. Andernfalls müsste "jemand" hergehen und bewußt diese Einträge ändern, um Dir bei Deinem Programm Probleme "zubeschaffen".

Bei meiner Arbeit als Administrator käme ich bei meinen eigenen Systemen nicht auf die Idee, hier eine Manipulation zu erwarten, wer da was manipulieren will, sucht sich sicherlich nicht ganz so banale Dinge.

Guido Eisenbeis 2. Okt 2008 13:39

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Ich habe gerade meinen PC neugestartet. Der von mir veränderte Eintrag in der Registry wurde automatisch zurückgesetzt.

Zitat:

Zitat von nahpets
An einem normalen System solltest Du Dich sowohl auf die Umgebungsvariabeln, als auch auf die Einträge in der Registry verlassen können. Andernfalls müsste "jemand" hergehen und bewußt diese Einträge ändern, um Dir bei Deinem Programm Probleme "zubeschaffen".

Somit sehe ich nun die Umgebungs-Variablen als ausreichend sicher an! (Es sei denn, jemand würde das Gegenteil konkret beweisen.)

Unter "Ausreichen sicher" verstehe ich, dass die Umgebungs-Variablen ohne mehr oder weniger aufwendige Manipulation zuverlässige Werte beinhalten.

Somit verwende ich die von Union in Posting #4 gepostete Lösung.

Vielen Dank an alle Mitwirkenden!

Guido.

nahpets 2. Okt 2008 13:48

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Hallo,
Zitat:

Zitat von Guido Eisenbeis
Somit sehe ich nun die Umgebungs-Variablen als ausreichend sicher an!

ja!
Zitat:

Zitat von Guido Eisenbeis
Unter "Ausreichen sicher" verstehe ich, dass die Umgebungs-Variablen ohne mehr oder weniger aufwendige Manipulation zuverlässige Werte beinhalten.

ja!

p80286 2. Okt 2008 14:38

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Hallo zusammen,

bei der Suche nach Servern habe ich einwenig mit NetServerEnum herum gespielt.
1) der %LOGONSERVER% taucht in keiner der generierten Listen auf.
2) über die Maske $80000000 sehe ich alle für mich verfügbaren Domänen
3) über die Maske $40000000 sehe ich alle Rechner in meiner näheren Umgebung (Netzsegment?)

Ich hoffe diese Info hilft dem einen oder anderen weiter.

Gruß
K-H

Guido Eisenbeis 2. Okt 2008 14:49

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Kleiner Hinweis:

Ich habe den Code in Posting #12 nach den hier gewonnenen Erkenntnissen aktualisiert und entsprechende Edit-Hinweise eingefügt. Auf dass es auch anderen hilft. :-D

Guido.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:27 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz