# Windows-Username sicher einlesen



## celebrant (28. Jul 2005)

hi @ all


ich schreibe meine frage mal hier rein. ich hoffe es passt so.

meine aufgabenstellung lautet, dass ich auf eine sichere art und weise den windows-usernamen einlesen soll. 

Warum bloß sicher?
weil es um ein sicheres netzwerk geht, und dieser Benutzername weiterverarbeitet wird. andere lösungen habe ich schon mithilfe von novell gelöst. aber auf ein paar pcs ist die novell-lösung nicht anwendbar.

bitte schlagt nicht System.getProperty("user.name") vor
die environment variablen sind zu einfach zu verfälschen.

besten dank im voraus,
celebrant

_L-ectron-X hat das Thema verschoben._


----------



## The_S (28. Jul 2005)

Hm, vielleicht hilft dir das hier:

http://www.java-forum.org/de/viewtopic.php?t=13018&highlight=wmic


----------



## celebrant (28. Jul 2005)

sieht interessant aus...
sehs mir mal an

danke für die rasche antwort


----------



## celebrant (28. Jul 2005)

hab ein "kleines" problem:

-erstens bin ich sicher nicht auf alle rechner lokaler admin
-zweitens ist es zu unperformant, weil ich nicht alle infos brauch, die ich durch wmic bekomme, sondern nur den akt. user
-drittens hab ich nicht nur xp maschinen

würd mich über weitere vorschläge freuen...


----------



## KSG9|sebastian (28. Jul 2005)

dann kommst du mit java wohl nicht weit..aber warum benutzt du nicht einfach visual basic script ?


----------



## Sky (28. Jul 2005)

Versuchs mal mit 
	
	
	
	





```
Process p = null;
    try {
      p = Runtime.getRuntime().exec( "cmd /c net name" );
      BufferedReader in = new BufferedReader( new InputStreamReader( p.getInputStream() ) );
      while( ( s = in.readLine() ) != null ) {
        System.out.println( s );
      }
    } catch( IOException ex ) {
      ex.printStackTrace();
    }
```

Bei mir läuft w2k und das Ergebnis war in Ordnung, muss nur noch geparst werden.


----------



## KSG9|sebastian (28. Jul 2005)

net name is auch nichts, da viele den Nachrichtendienst deaktiviert haben und dann laufen net xxx befehle nicht

zudem bekommt man damit, wenn ich recht weis, nicht den angemeldeten benutzer. wenn der benutzer sich in einer domäne anmeldet geht es nicht..glaub ich  zumindest


----------



## celebrant (28. Jul 2005)

KSG9|plak hat gesagt.:
			
		

> net name is auch nichts, da viele den Nachrichtendienst deaktiviert haben und dann laufen net xxx befehle nicht
> 
> zudem bekommt man damit, wenn ich recht weis, nicht den angemeldeten benutzer. wenn der benutzer sich in einer domäne anmeldet geht es nicht..glaub ich  zumindest



der mann weiß wovon er spricht.

wollt mich zwar mit händen und füßen davor wehren etwas in vb zu schreiben, werde mich jetzt aber doch mal umsehen ob ich da was finde.


----------



## The_S (28. Jul 2005)

Also zu 2. den Befehl kannst du so abändern, dass du nur die Usernamen bekommst, aber das 1. mal starten von wmic dauert scho ne Zeit lang. Aber ansonsten ... tja ... hm ... wirst wohl net um VB oder sowas rumkommen. Ich weiß, es ätzt, aber was muss, dat muss (ich muss betrieblich selbst seit neuestem VB lernen *kotz*)


----------



## Celebrant (1. Aug 2005)

habe jetzt was interessantes gefunden:

public static System.Security.Principal.WindowsIdentity GetCurrent()

diese methode macht genau das, was ich will (nur leider ist sie in VB).

meine fragen jetzt: 
 - wie rufe ich das vb-programm auf?
 - wie bekomme ich den rückgabewert in meine java-applikation?


----------



## Bleiglanz (1. Aug 2005)

Anonymous hat gesagt.:
			
		

> meine fragen jetzt:
> - wie rufe ich das vb-programm auf?
> - wie bekomme ich den rückgabewert in meine java-applikation?


du übersetzt sie mit dem vb compiler und machst eine exe draus
aufruf genau wie oben

dann hoffen, dass der client die .NET Runtime installiert hat


----------



## celebrant (1. Aug 2005)

hab noch eine letzte idee, bevor ich es wirklich mit vb mache.

das ganze funktioniert auch mit der Klasse:
com.sun.security.auth.module.NTSystem

innerhalb der klasse jedoch steht
System.loadLibrary("jaas_nt");

bin mir nun nicht sicher ob dies auf die environment variablen zugreift oder nicht. 

bitte um antwort


----------

