locked
CMD als Administrator starten, um Batchdatei korrekt auszuführen (Windows 7) RRS feed

  • Frage

  • Hallo,

    Ich hoffe einer von euch kann mir helfen. Folgende Problemstellung:

    Auf einem Windows 7 Rechner mit aktivierter UAC soll eine Batchdatei aufgerufen werden, die auf die Windows-Tools "fsutil" und "diskpart" zugreift. Die Batchdatei wird automatisch von einer GUI-Applikation gestartet, die in C++ programmiert ist. Der Aufruf der Batchdatei durch die GUI-Applikation ist mit

    system("batchdatei.bat");

    realisiert.

    Da die Batchdatei als erstes das Programm fsutil aufruft, bricht die Batchbearbeitung ab, da für fsutil die Konsole (cmd) als Administrator gestartet werden muss.

    Der Benutzer der die Batchdatei aufruft hat Administrator-Rechte. "Von Hand", also rechter Mausklick auf cmd.exe und "als Administrator ausführen" startet auch eine Konsole als Administrator. Darin lässt sich anschließend auch die Batchdatei korrekt ausführen.

    Da der Batch-Aufruf allerdings aus einer Applikation kommen und außerdem noch ohne eine Benutzereingabe stattfinden soll, hilft mir das starten einer Konsole als Administrator über die rechte Maustaste nicht weiter.

    Vielleicht hat jemand einen Lösungsansatz oder ein ähnliches Problem.

    Gruß und Dankeschön,

    BNestler

    Montag, 13. Januar 2014 08:29

Antworten

  • Hi,

    Am 13.01.2014 09:29, schrieb BNestler:

    [...] Der Benutzer der die Batchdatei aufruft hat Administrator-Rechte.

    Starte die Applikation mit "CTRL-LinkShift-Enter" dann wird sie elevated gestartet und auch alle Aktionen aus dieser heraus.

    Alternativ: Integriere eine Manifest Datei für die Applikation, sodass sie autom. nach der Elevation fragt.

    Tschö
    Mark


    Mark Heitbrink - MVP Windows Server - Group Policy

    Homepage: http://www.gruppenrichtlinien.de - deutsch
    GPO Tool: http://www.reg2xml.com - Registry Export File Converter

    • Als Antwort markiert BNestler Dienstag, 14. Januar 2014 09:03
    Montag, 13. Januar 2014 10:52

Alle Antworten

  • Hallo,

    vielleicht kannst du die Batchdatei ja mit "runas" aufrufen.

    Gruß
    Stefan


    st_fbg

    Montag, 13. Januar 2014 09:02
  • Leider ist das nicht die Lösung des Problems. Ich nicht mit runas arbeiten, da das Administrator-Passwort auch wirklich nur dem Administrator vorbehalten ist (EDV-Abteilung).
    Montag, 13. Januar 2014 09:16
  • Hallo,

    ich würde den cmd Aufruf mit einem runas starten:

    runas /user:LokalerComputername\administrator cmd


    MfG, Maikel Gädker Sollte meine Antwort hilfreich oder die Lösung zum Problem sein, würde ich mich über eine entsprechende Bewertung freuen! If my answer was helpful or it solved your problem, I'm glad about a rating!

    Montag, 13. Januar 2014 09:18
  • Im Prinzip bräuchte ich ein Tool, möglichst von Microsoft, welches bei einem angemeldeten Benutzer (mit Administrator-Rechten) das cmd.exe im Administrator-Modus startet. Da cmd.exe ja Teil von Windows ist, lassen sich die Kompatibilitätseinstellungen nicht direkt vornehmen.
    Montag, 13. Januar 2014 09:21
  • Hi,

    Am 13.01.2014 09:29, schrieb BNestler:

    [...] Der Benutzer der die Batchdatei aufruft hat Administrator-Rechte.

    Starte die Applikation mit "CTRL-LinkShift-Enter" dann wird sie elevated gestartet und auch alle Aktionen aus dieser heraus.

    Alternativ: Integriere eine Manifest Datei für die Applikation, sodass sie autom. nach der Elevation fragt.

    Tschö
    Mark


    Mark Heitbrink - MVP Windows Server - Group Policy

    Homepage: http://www.gruppenrichtlinien.de - deutsch
    GPO Tool: http://www.reg2xml.com - Registry Export File Converter

    • Als Antwort markiert BNestler Dienstag, 14. Januar 2014 09:03
    Montag, 13. Januar 2014 10:52
  • > *system("batchdatei.bat"); *
     Bin zwar kein Programmierer, aber "verb runas" wäre der Suchbegriff, um
    Subprozesse elevated zu starten:
     
     
     

    Martin

    Mal ein GUTES Buch über GPOs lesen?

    NO THEY ARE NOT EVIL, if you know what you are doing: Good or bad GPOs?
    And if IT bothers me - coke bottle design refreshment :))
    Montag, 13. Januar 2014 11:11
  • Am 13.01.2014 schrieb BNestler:

    Auf einem Windows 7 Rechner mit aktivierter UAC soll eine Batchdatei aufgerufen werden, die auf die Windows-Tools "*fsutil*" und "*diskpart*" zugreift. Die Batchdatei wird automatisch von einer GUI-Applikation gestartet, die in C++ programmiert ist. Der Aufruf der Batchdatei durch die GUI-Applikation ist mit

    system("batchdatei.bat");

    realisiert.

    Da die Batchdatei als erstes das Programm fsutil aufruft, bricht die Batchbearbeitung ab, da für fsutil die Konsole (cmd) als Administrator gestartet werden muss.

    Du kannst dir dieses Tool ansehen:
    http://www.robotronic.de/runasspc.html Dabei ist das Passwort
    verschlüsselt abgelegt.

    Die andere Variante ist eine geplante Aufgabe anzulegen, und die dann
    anstatt der Batch Datei aufzurufen.
    http://kb.lexo.ch/2012/04/starten-eines-cmd-bat-skripts-in-der-windows-aufgabenplanung-mit-administrator-rechten-als-nicht-angemeldeter-admin-benutzer/


    Servus
    Winfried

    Gruppenrichtlinien
    WSUS Package Publisher
    HowTos zum WSUS Package Publisher
    NNTP-Bridge für MS-Foren

    Montag, 13. Januar 2014 17:54
  • Danke für eure Lösungsmöglichkeiten. Ich konnte mit der Aussage von Mark, einfach die Applikation als Admin zu starten (da alle Subanwendungen auch Admin-Rechte haben) am meisten erreichen. Jetzt muss ich nur noch herausbekommen, wieso die Batchdatei nicht ausgeführt werden kann. Die Applikation und auch die Batch-Datei  liegen auf einem Netzlaufwerk und ich vemute, dass deshalb die Batchdatei nicht ausgeführt wid.
    Dienstag, 14. Januar 2014 08:15
  • Die Applikation und auch die Batch-Datei  liegen auf einem Netzlaufwerk und ich vemute, dass deshalb die Batchdatei nicht ausgeführt wird.

    Bei Ausführung als Admin erfolgt der Netzwerkzugriff auch mit den Credentials dieses Kontos. Wenn dieses Konto keine Anmeldung an dem Netzlaufwerk hat kann kein Zugriff erfolgen. Das passiert mir auch regelmässig wenn ich etwas von einem Netzlaufwerk als Admin installieren will. Da hilft nur vorher (ins tmp) kopieren oder der User (Admin) muss sich separat am Netzlw anmelden.

     

    Dienstag, 18. August 2015 11:10