Benutzerkontensteuerung

Adrian_

Grünschnabel
Hallo zusammen,

Kurze Beschreibung des IST Zustandes:
Ich habe mir eine Anwendung zur vereinfachten Steuerung der Netzwerkeigenschaften geschrieben. Dabei kann ich Profile erzeugen die jeweils die Verbindung, IP, Subnetmask, Standardgateway, Bevorzugter und Alternativer DNS Server beinhalten. Diese Einstellungen werden in einer Batch Datei gespeichert und durch Auswahl des Profiles geladen. Funktioniert direkt in der IDE auch da diese mit Adminrechten ausgeführt wird.
Mein System ist Windows 7 prof. und ich schreibe in Eclipse.

Nun zum eigentlichen Problem:
Die Batch Dateien beinhalten hauptsächlich netsh-Befehle, diese allerdings benötigen
Adminrechte. Da ich die Anwendung aber auch als normaler Benutzer ausführen will,
benötige ich die Möglichkeit die Anwendung auch als Admin auszuführen.

Wie bekomme ich das hin das ich die Anwendung starte und diese "eigentliche" nervige Meldung kommt das das Programm erhöhte Rechte benötigt?
Selbst wenn ich einen Rechtklick auf die executeJar Datei mach, kommt nicht einmal die Möglichkeit sie mit Adminrechten auszuführen :(
Gibt es in Eclipse oder generell eine Möglichkeit die Bedingung zu setzen das sie automatisch mit Adminrechten ausgeführt wird? Kommt das in die MANIFEST.MF?
Was ich auf keinen Fall will, ist das ich unter Windows direkt ständig mit
Adminrechten herum irre.

Kann mir da vielleicht einer unter die Arme greifen?

Gruß Adrian
 
Hallo,

wenn du den externen Prozess innerhalb deines Java Programms über Runtime.exec(..) bzw. ProcessBuilder(...) via cmd /c ... ausführst kommt IMHO ein Fester zur hoch das die erweiterten Berechtigungen einfordert.

Gruß Tom
 
Naja wenn es das tun würde wäre ich ja froh,
also momentan läuft das Programm, allerdings nur unter "Administraoren"
hier mal mein Code der die Batch-Dateien ausführt:
Code:
@Override
	public void actionPerformed(ActionEvent e) {
		
		if (e.getActionCommand().equals("ladeprofil")) {
		profilbenutzen = profilWaehlen.getSelectedItem();
		System.out.println(profilbenutzen);

		try {
			ProcessBuilder processBuilder = new ProcessBuilder("C:\\ipmanager\\profiles\\" + profilbenutzen);
			Process process = processBuilder.start();
			process.wait();
			
		} catch (Exception e1) {// Catch exception if any
			System.err.println("Error: " + e1.getMessage());
		}
		}

und hier noch ein Beispiel für die auszuführende Batch:
Code:
cd \
netsh interface ip set address "WLAN" source="static"  192.168.0.99 255.255.255.0 192.168.0.1
netsh interface ip set dns "WLAN" source="static"  4.4.4.4
netsh interface ip add dns "WLAN" 4.4.2.2 2

die Sache ist ja die das Java nur ne Batch in diesem Sinne ausführt, und nicht erkennt das die Befehle die drin stehen erhöhte Rechte erfordern.
Von daher führt er die auch ohne Kompromisse aus, nur in der Konsole kommt ja dann die Info wegen der Rechte.

Vielleicht hast du ja ne Lösung ?!

Danke schon mal im Vorraus

Greetz Adrian
 
Zuletzt bearbeitet:
Zurück