Batch Problem als Admininstrator ausführen

Tag zusammen,

Folgendes Problem:

Ich habe eine Batch-Datei, die z.B. Dateien verschiebt und einen Registryeintrag erstellt. Nun erfragt Windoof beim Ausführen der Batch immer Administratorrechte, wenn der Registryeinrag erstellt wird. Da mich dieser Dialog stört, führe ich die Datei mit Administratorrechten aus, dabei ändert sich aber der "current directory" pfad ( also %cd% ), wodurch das Verschieben einer Datei, die im selben Ordner wie die Batch liegt, nicht mehr möglich ist. Den Pfad zur zu verschiebenden Datei will ich allerdings nicht fest, sondern Variabel halten.
Und ganz nebenbei:

Warum ändert sich der %cd% pfad nur, wenn man als Admin ausführt???
Ich nehme an die Antwort lautet Windows, wie es leibt und lebt...

Irgendwelche Ideen? (Bitte in Batch bleiben, danke :wink:)
 
Du könntest den Wert von %CD% speichern bevor du in den Admin-Level wechselst.

lG
 
Und wie soll ich das konkret veranstalten? Ich starte praktisch die batch mit Admin rechten, das ist bereits der Einstiegspunkt, da lässt sich vorher nichts werkeln...außer ich hätte vorher eine andere batch, die %cd% abspeichert und an die Ursprungs batch übergibt, aber wie komme ich dabei wieder an Adminrechte? Hoffe ihr versteht, was ich meine :(
 
Über runas bin ich auch schon gestolpert. Ich aber befürchte wir reden aneinander vorbei: Ich spreche von dem UAC in Win 7 und Vista und da scheint die runas Funktion nicht so leicht zu greifen. In XP stellt mein Code ohnehin keine Probleme dar, da ich dort schon Admin bin. Hoffe jemand kann mir in dieser Sachlage helfen...mir will nichts mehr einfallen.
 
Mir fällt nur noch die Möglichkeit ein, statt einer Batch, zwei zu verwenden, wobei eine die zweite callt.
Gibt es ein Programm, dass beide Dateien in z.B. eine exe packt, bei der Ausführung der exe nach Adminrechten fragt und bei Bestätigung nur bestimmten Dateien innerhalb der gepackten exe den Adminzugriff gestattet? Mit winRAR wird das nichts. fürchte ich...
 
Hi,

ich habe leider keine konkrete Antwort auf deine Frage jedoch möchte ich nochmal eines vorgeschlagen haben.

Hast du schonmal daran gedacht die UAC abzuschalten? Ist zwar keine perfekte Lösung könnte dir aber vielleicht helfen.

Grüße,
Kuttengeier
 
Natürlich habe ich schon mit dem Gedanken gespielt, den ganzen Quatsch einfach zu deaktivieren, konnte mich aber bisher nicht dazu durchringen und das wird sich auch mit diesem kleinen Problem hier nicht ändern denke ich...

Edit: Um etwas genauer darauf einzugehen, warum ich das nicht einfach abschalte: Ich arbeite an einer simplen Installationsrutine für ein Programm, das sowohl Ordner und Dateien an richtigen Ort und Stelle im System kopiert und Registryeinträge hinzufügt, damit das ganze z.B. für meinen Freundeskreis komfortabel auszuführen ist und diese somit keine Schritt für Schritt Anleitung benötigen (die meistens auch noch falsch nachfolzogen wird...)
 
Zuletzt bearbeitet:
Die UAC lässt sich leider nicht direkt übergehen.

Entweder du führst die Datei direkt als 500er-Admin aus oder über einen Scheduled Task mit entsprechenden Rechten.

Die UAC wird außer bei diesen Varianten eigentlich immer "stören".

Aber ist es so schlimm, wenn deine Freunde 1 Mal "ja" klicken müssen (so wie bei jeden anderem Setup auch)?

lG
 
1 Mal ja wäre kein Problem, aber wie soll ich das veranstalten? Angenommen ich packe alle für die Installation benötigten Dateien in eine sfx Datei und versuche mit einer startenden Batch Dateien und Ordner an die richtige Stelle zu verschieben und Registryeinträge zu erstellen, erstellt mit die batch den registryeintrag nicht, da die Rechte dazu fehlen. Auch die sfx Funktion "Administratorzugriff erfragen" betrifft nur das sfx Archiv selbst, nicht aber die batch, die ausgeführt werden soll. Wie also bringe ich es fertig diesen Eintrag zu erstellen, bzw. ist das ganze so überhaupt möglich, gibt es eine Alternative?
 
Das bedeutet für mich andere Sprache als batch einsetzen, nehme ich an, bin allerdings mit C noch nicht so weit, als das ich das bewerkstelligen könnte...
 
Und wenn du dir einfach ein Setup zusammen klickst? Da gibt es ja auch genug Freeware und deren Scripte sind nicht so kompliziert, als das man nach ein wenig einlesen nicht was zusammen gebastelt bekommen würde.
 
Für einfache Sachen tut es auch der eingebaute Installermaker von Visual Studio. Der kann zumindest Files kopieren und Registrykeys erzeugen und macht nen Setupdialog dazu.
 
Wie jetzt andere Sprache als Batch !?! Das gibt's wirklich?

Die Lösung für Dich ist ganz einfach wenn man Ahnung hat :wink::

cd %~dp0

Ich mache das nun einmal schon ein paar Jährchen und früher gab es nichts anderes, man kann sehr viel mit Batch machen.

Inzwischen finde ich VBScript super, aber wenn Du die Möglichkeit hast, ist heute wohl PowerShell die Wahl der Qual.

Ich lege auch jedem Batch-Interessenten noch folgende Seite ans Herz:
http://www.robvanderwoude.com
 
Vielen Danke an alle Helferlein, besonders aber Yyger, der Befehl klappt wunderbar! Auch die Seite finde ich super! :)

Wieder mal ein Problem gelöst!
 
Zurück
Oben