Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Admin-Rechte werden trotz uac-prompt nicht an script weitergereicht

Frage Entwicklung Batch & Shell

Mitglied: Schalterschorsch

Schalterschorsch (Level 1) - Jetzt verbinden

26.11.2012 um 21:31 Uhr, 3360 Aufrufe, 9 Kommentare

Ich habe eine Toolbox gebaut, welche auch einen SFC starten soll.
Klickt man direkt auf "als admin ausführen" bei dem script, funktioniert das.
Andere Programme lassen sich sauber mit Adminrechten ausführen.
Ich weiß nicht mehr weiter, wie ich das noch geradeziehen könnte.

Hallo,

ich hoffe, ihr könnt mir helfen.
Ich habe eine kleine Toolbox in hta gebaut, die buttons sind in visual basic gebaut, der uac-prompt klappt auch.
Leider klappt es bei einem Script nicht, die Admin-Rechte auf das Script zu übergeben.

Der vb-Aufruf über die HTA sieht so aus:

Dim UAC

Sub SFC
Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute ".\src\sfc.bat", , , "runas"
End Sub


Der Prompt kommt, windows sagt mir dann aber, man müsse admin sein, um sfc zu starten.
Ursprünglich habe ich vor dem sfc noch Abfragen geplant gehabt, damit man das Laufwerk eingeben kann.
Dann könnte man einen Zweig bauen, der einen offline-sfc erlaubt, sofern das angegebene Laufwerk nicht c: ist.

Bei einer anderen Exe, die zwingend admin-Rechte braucht, funktioniert der Aufruf.
Ich habe auch versucht die getadmin.vbs ins script selbst einzubauen und die "elevation" dadurch herbeizuführen.
Sie steht an oberster Zeile, der Prompt kommt-ändert aber leider an der SFC-Fehlermeldung nichts.

Fehlermeldung: "windows resource protection could not start the repair service"
Diese vbs sieht so aus:

Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute "C:\temp\SFC.bat", "", "", "runas", 1

In der Sfc.bat steht drin:

sfc /scannow
pause

Kann es an dem Startparamenter /scannow liegen ?

Die hta kann ich noch nachreichen, wenn die jemand zum testen haben will.
Denke aber, dass es als eigentständige vbs genauso funktioniert.

Danke schonmal
Mitglied: rubberman
26.11.2012 um 22:44 Uhr
Hallo Schalterschorsch.

Wenn in deinem Batch der Befehl sfc steht und die Batchdatei selbst sfc heißt, was glaubst du was dann aufgerufen wird?

Grüße
rubberman
Bitte warten ..
Mitglied: Schalterschorsch
27.11.2012 um 08:21 Uhr
Hallo rubberman,

ich hatte die Batch vor dem post anders benannt, es ist also leider nicht so, dass der Dateiname der Bat zu irgendwelchen Befehls-Fehlern kommt.
Bitte warten ..
Mitglied: rubberman
27.11.2012 um 18:26 Uhr
Hallo Schalterschorsch.

Dann teste mal so:
CreateObject("Shell.Application").ShellExecute "cmd.exe", "/c ""C:\temp\filename.bat""", "", "runas", 1
Grüße
rubberman
Bitte warten ..
Mitglied: Schalterschorsch
27.11.2012 um 21:59 Uhr
Hallo,

danke für deinen zweiten Tipp, rubberman. Den Aufruf so zu ändern, dass cmd als Parameter den PFad zum script zu fressen
kriegt, hilft leider auch nichts, war aber ein guter Ansatz.

ich bin einen Schritt weiter. Der Aufruf von Skripten als Admin funktioniert. Man braucht hierzu einen Helfer namens "elevate"- dieser als Aufruf startet das uac-Popup. Dumm ist nun nur noch, dass man keine Parameter weitergeben kann.
Er nimmt also "sfc /scannow" nicht an, wenn ich es über eine batch weiterreiche. Das windows-powertoy für elevate funktioniert gänzlich nicht, das andere tool hier nur, wenn ich damit eine weitere Batch starte, die "sfc /scannow" drin stehen hat.
Das elevate-tool als exe gibts hier: http://www.winability.com/elevate/

Letzendlich ist nun noch die Frage: warum ist es ein Unterschied, ob ich in einer selbst aufgerufener shell elevate.cmd aufrufe und in dieser sfc /scannow eingebe.
Ich würde lieber das MS-powertoy nutzen. Das ist mir irgendwie lieber als das third-party-tool.
Das Tool gibts hier:
http://social.technet.microsoft.com/Forums/en/w7itprosecurity/thread/bc ...

Vielleicht müsste ich sowas wie start /wait einbauen, weil die Batch zu früh weiter geht.

bei der elevate.cmd poppt kurz ein sfc-Fenster hoch, welches sich sofort wieder schließt (nicht nur minimiert)
Code:
start /wait elevate.cmd sfc /scannow

Immerhin geht es erstmal "irgendwie"
Bitte warten ..
Mitglied: rubberman
27.11.2012 um 22:35 Uhr
Zitat von Schalterschorsch:
hilft leider auch nichts, war aber ein guter Ansatz

Hallo Schalterschorsch.

Hatte bei mir auf Anhieb funktioniert.

Ich weiß immer noch nicht genau wie du den Pfad übergibst. Bedenke, dass der per ShellExecute aufgerufene cmd.exe Prozess in %SystemRoot%\System32 ausgeführt wird. Mit relativen Pfadangaben wirst du also im Zweifelsfall Probleme bekommen. Wie sieht das bei dir in der Realität aus?

Grüße
rubberman
Bitte warten ..
Mitglied: Schalterschorsch
27.11.2012 um 22:56 Uhr
Hi,

ich habe deine Lösung eingebunden gehabt, in der bat steht sfc /scannow drin
Der UAC-Prompt kommt, wird aber nicht richtig umgesetzt, da die Batch nicht als Admin läuft.
Sie läuft lt.Fenstertitel in C:\windows\syswow64\

Der Inhalt sagt aber was anderes:
C:\Windows\system32>sfc /scannow

Windows Resource Protection could not start the repair service.
Bitte warten ..
Mitglied: rubberman
27.11.2012 um 23:20 Uhr
Hi,

damit habe ich nun ein Problem: 0 Erfahrung auf Win x64
Ich weiß nur so viel, dass es Abhängigkeiten vom aufrufenden Programm gibt, ob die 32 oder 64 Bit Versionen herangezogen werden.
Also ist deine Mithilfe gefragt. Wo liegt die sfc.exe? Rufe die sfc.exe mal mit vollem Pfad aus deiner Batchdatei auf. Falls sie sowohl in syswow64, als auch in system32 existiert, teste beides.

Grüße
rubberman
Bitte warten ..
Mitglied: Schalterschorsch
27.11.2012 um 23:30 Uhr
Hi,
Es gibt die sfc.exe in beiden Ordnern.
Könnte also gut sein, dass genau die falsche von beiden auferufen wird.
Was mir schon seltsam vorkam war, dass es nicht die klassische "you must be an administrator to run this"-Meldung kommt.
Ich werde morgen weitertesten und mal den Pfad nach system32/syswow fest einbauen und schauen was passiert.
Bitte warten ..
Mitglied: Schalterschorsch
05.12.2012 um 15:35 Uhr
Ich habe es erst einmal mit der elevate64 gelöst.
Da auch andere Lösungen ähnlich aussehen, werde ich meine Toolbox irgendwann in VB portieren- dort ist das Chaos wegen der Aufrufe nicht so eine Bastelei.
Man könnte die HTA versuchen als 64 bit Applikation zu starten- dafür muss dann aber auch wieder ein anderes script her ...
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows 7
Dataline Office benötigt zum starten Admin-Rechte (3)

Frage von ingoue zum Thema Windows 7 ...

Windows Userverwaltung
Domain Admin Rechte auf FileServer (3)

Frage von BlueShadow9 zum Thema Windows Userverwaltung ...

Windows 10
gelöst Bitlocker und Admin-Rechte (5)

Frage von quin83 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...