Hi Leuts,
Ich will ein kleines Programm schreiben mit dem sich bestimmte Aktionen umsetzen lassen(beispielsweise Defragmentierung oder so) von denen nur manche Adminrechte brauchen.Ich will aber nicht das der Nutzer jedesmal beim Programmstart nach Rechten gefragt wird sondern nur wenn bestimmte Aktionen gestartet werden,da es ziemlich nervig ist immer UAC Zeugs zu beantworten.Deshalb bin ich auf die Idee gekommen das man einfach die Batch als Admin ausführen kann ohne das sofort am Anfang gefragt wird.Ist das irgendwie realisierbar?
mfg masterplc
Bat Datei als Admin ausführen
-
- [ gelöst ]
-
masterplc -
21. September 2013 um 17:53 -
Geschlossen -
Erledigt
-
-
Entwender du startest das Skript direkt als Admin mit #RequireAdmin oder du verwendest
[autoit]RunAs
[/autoit] -
Naja das Problem mit RunAs ist das dafür das Userpasswort erfordert wird und ausserdem der Nutzername.Das Skript soll ja auch auf anderen PCs laufen können ohne das ich den Nutzernamen weiß oder das der Nutzer das PW einem Programm geben muss das ohne jegliche Probleme das PW übermitteln könnte und sich dann selbst schrottet.Also ich würde nem Programm net so einfach über den Weg trauen.Es muss doch universell möglich sein zur Laufzeit Adminrechte zu erfragen oder eine Batch oder whatever mit Adminrechten zu starten oder?
-
Wie gesagt, wenn das Skript mit #RequireAdmin mit Admin-Rechten gestartet wird, haben alle anderen Programme, welche dann mit Run etc. gestarteten werden, genauso Admin-Rechte.
Das heißt, #RequireAdmin bewirkt, dass beim Start des Skriptes das UAC-Fenster kommt.
-
Naja das Problem mit RunAs ist das dafür das Userpasswort erfordert wird und ausserdem der Nutzername.Das Skript soll ja auch auf anderen PCs laufen können ohne das ich den Nutzernamen weiß oder das der Nutzer das PW einem Programm geben muss das ohne jegliche Probleme das PW übermitteln könnte und sich dann selbst schrottet.Also ich würde nem Programm net so einfach über den Weg trauen.Es muss doch universell möglich sein zur Laufzeit Adminrechte zu erfragen oder eine Batch oder whatever mit Adminrechten zu starten oder?
Ja was denn nun? Du hast (zu Recht) Bedenken bzw. Probleme damit einem Programm das du nicht kennst Accountdaten anzuvertrauen, damit es die Rechte bekommt die es nunmal braucht (oder gerne hätte...), aber andererseits wünscht du dir Programme die ohne die Interaktion mit dem Anwender (nach Erlaubnis / PW fragen...) einfach mal so Administrator Rechte erlangen können. Das widerspricht sich doch, meinst du nicht?
UAC wurde eben genau deshalb eingeführt, damit nicht mehr jeder Hobbyprogrammierer volle Administratorrechte auf fremden Systemen erlangen kann. Wenn dir das nicht gefällt kannst du UAC auch abschalten und wieder wie zu XP Zeiten jeder Malware Tür und Tor öffnen.
Wie schon erwähnt bleibt dir "#requireadmin" um die UAC Abfrage zu starten und dadurch jedesmal bei Programmstart nach Erlaubnis zu fragen oder aber du fragst einmal nach Administrator Daten speicherst diese irgendwo verschlüsselt (z.B. in einer ini) und verwendest sie für alle zukünftigen Programmstarts in deinen runas Aufrufen. Alternativ muss UAC eben auf dem System deaktiviert werden oder zumindestens eine Ausnahme für dein Programm eingerichtet werden, aber auch dafür brauchst du einmalig Administratorrechte, welche du erstmal erfragen musst.
-
Du hast wohl nicht kapiert was ich machen will oder?Ich will das die UAC nicht immer bei jedem start erscheint.Deshalb erfrage ich wie man eine Batch Datei mit Adminrechten MIT UAC starten kann.Ich will das die UAC nur dann auftritt wenn es umbedingt nötig ist da nur eine Handvoll Funktionen Adminrechte benötigen.Das wollte ich erfragen.
-
Du könntest ja auch deine .bat Datei in eine AutoIt-Exe unschreiben, welche ein #RequireAdmin am Anfang hat.
-
versuchs mal damit
[autoit]ShellExecute("notepad.exe", "", @ScriptDir, "runas")
[/autoit]mfg Krabat
-
[autoit]
#RequireAdmin
[/autoit][autoit][/autoit][autoit]Run()
[/autoit]Du startest das Script einmal und es startet die Bats automatisch mit Admin-Rechten. Einmal UAC bestätigen, danach nicht mehr.
-
[autoit]
#RequireAdmin
[/autoit] [autoit][/autoit] [autoit]Run()
[/autoit]Du startest das Script einmal und es startet die Bats automatisch mit Admin-Rechten. Einmal UAC bestätigen, danach nicht mehr.
Das hatte ich ihm auch schon vorgeschlagen.
Er will aber, das seine Batch-Datei dann nach Admin-Rechten fragt, ohne das das Skript welche besitzt
Du hast wohl nicht kapiert was ich machen will oder?Ich will das die UAC nicht immer bei jedem start erscheint.Deshalb erfrage ich wie man eine Batch Datei mit Adminrechten MIT UAC starten kann.Ich will das die UAC nur dann auftritt wenn es umbedingt nötig ist da nur eine Handvoll Funktionen Adminrechte benötigen.Das wollte ich erfragen. -
Ok danke Leute ich habe eine Methode gefunden
Macht zwar einen 2. Thread und braucht die Aut2Exe aber macht ja auch nichts.
Danke LeuteEDIT:Die Methode von Krabat funzt perfekt!!
Danke -
Ok danke Leute ich habe eine Methode gefunden
Macht zwar einen 2. Thread und braucht die Aut2Exe aber macht ja auch nichts.
Danke LeuteEDIT:Die Methode von Krabat funzt perfekt!!
Danke
Dann setze bitte den Thread-Präfix auf "gelöst".