| |
|
|
| Hallo Profaner...
Gibt es irgendeine sichere Möglichkeit den User zu bestimmen, dessen Registry im Schlüssel HKEY_CURRENT_USER steht?Die Trickserei, die mir im Augenblick einfält, geht unter NT nicht und ist auch zu umständlich... |
|
|
| |
|
|
|
Peter Mallow | Meinst du sowas? Als Batch-Befehl: @net view > C:Who.txt |
|
|
| WinXP Pro SP2, XProfan 9 + XPSE AMD Athlon 64 X2 3800 | 31.10.2005 ▲ |
|
|
|
|
| |
|
| |
|
|
|
| Nein, ich glaube das meine ich nicht => ich werds noch einmal etwas näher erklären:
Auf einem Rechner loggt sich ein User über die Tastatur ein. Wenn dies geschieht, werden auch seine persönlichen Einstellungen in die Registry geladen. Etwas später startet sich in einem anderen Account (in der gleichen Session) ein Service. Wie bekommt nun der Service heraus, wer sich über die Tastatur eingeloggt hat??? Alles was mir bislang einfällt ist große Trickserei... |
|
|
| |
|
|
|
Michael Wodrich | Probiere die obigen Beispiele doch einfach aus.
Ich nutze z.B. eine Datensicherung, die sich im Admin-Account startet. Das geht ganz einfach: Batchdatei schreiben, (Systemsteuerung - Leistung u Wartung) geplante Tasks aufrufen, die Batchdatei unter Adminkonto aufrufen (Passwort erforderlich).
Die geplante Task kann man jetzt mit rechter Maustaste auf Eintrag auch direkt starten. Damit kannst Du dann testen, was diese Task ermittelt hat. Die Beispiele legen ja eine Datei an.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 01.11.2005 ▲ |
|
|
|
|
| Hallo Michael...
Der net Befehl ist unter den einzelnen Windowsversionen sehr unterschiedlich -> Parameter sind anders. Ich hatte beide Sachen bei mir unter Windows2000 schon getestet: IFs Beispiel macht z.B. etwas total anderes (zeigt alles Usernamen an). Ob es unter XP so geht - keine Ahnung... Meine schwammige liegt also nicht daran, daß ich nicht weiß, was der Quellcode macht (oder ihn nicht getestet habe), sondern daran, daß er vielleicht unter XP das machen könnte, was ich beabsichtige - wie gesagt, keine Ahnung ob das so ist. Außerdem möchte ich bei einem so wichtigen Programmteil wie diesem möglichst auf DOS verzichten. Da, wo die Anwendung unter Umständen später laufen soll, ist DOS abgestellt. |
|
|
| |
|
|
|
Peter Mallow | Habe mal in der Registry gesucht:
Der Current User kann aus folgenden Schlüssel in der Registry ausgelesen werden: HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer unter Logon User Name. Das ist unter Windows XP so. Dann wird es auch in Win 2000 gleich sein. Unter Windows 98 steht der Current User etwa HKEY_LOCAL_MACHINENetworkLogon (username) oder anderer Vorschlag: HKEY_LOCAL_MACHINESystemCurrentControlSetControl (Current User)
Kanns leider nicht genauer sagen, da ich meinen PC alleine nutze. |
|
|
| WinXP Pro SP2, XProfan 9 + XPSE AMD Athlon 64 X2 3800 | 01.11.2005 ▲ |
|
|
|
|
| Hallo Peter...
Erst einmal vielen Dank! Ich habe schon inige Registryeinträge überprüft, kann aber nicht genau sagen, ob diese dazugehören.
Bei diesen Einträgen stand dort wirklich der CurrentUser, also der der im Augenblick einen Prozess ausführt (und den will ich ja nicht, denn es gibt ja noch Impersonation - und dann hat das, was dort steht nichts mehr mit den Einstellungen zu tun, die dort geladen worden sind).
Ich werde mir auf jeden Fall diese Schlüssel noch einmal ganz genau ansehen und melde mich dann zurück. |
|
|
| |
|
|
|
Michael Wodrich | Ich kanns jetzt in der Firma nicht testen, aber.... In der Environment steht USERNAME.
Wenn man sich ein Programm schreibt: wert$ = GetEnv$(USERNAME)
und mal abprüft, ob das unter Admin-Recht gestartete Programm dann den Admin-Namen oder - wie ich vermute - den einfachen Usernamen zurückgibt...
Das könnte die Lösung sein. Auch wenn DOS abgestellt ist - die Environment-Geschichte wird immer mitgeschleppt.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 02.11.2005 ▲ |
|
|
|
|
Michael Wodrich | Ich habe es mal durchgetestet.
Leider schreibt Windows da ganz artig den User hinein, der das Programmrecht hat.
Also Normaluser A und Admin B sind gegeben. Eine geplante Task mit Admin B Rechten wird automatisch gestartet, während User A aktiv ist.
Jetzt sieht man im Taskmanager einen Prozess, der unter Admin B läuft. Und wenn dieser Task die Env-Variable ausliest steht natürlich auch Admin B drin (eigentlich logisch).
So klappt es also nicht, leider.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 03.11.2005 ▲ |
|
|
|
|
| Hallo Peter...
Dein Vorschlag haut wunderbar hin und ist genau das, was ich gesucht habe! Besten Dank!
Das ich diese Lösung nicht gefunden habe liegt daran, daß ich hauptsächlich mit REGEDIT und nicht mit REGED32 arbeite. Bei REGEDIT gibt es einen merkwürdigen Effekt, den ich mir nicht so ganz erklären kann... |
|
|
| |
|
|
|
Peter Mallow | kein Problem
Immer wieder gerne |
|
|
| WinXP Pro SP2, XProfan 9 + XPSE AMD Athlon 64 X2 3800 | 05.11.2005 ▲ |
|
|
|