vbs Programme als Admin laufen lassen

Hey,

ich möchte 2 Programme als Administrator ausführen.
So wie mein Code jetzt ist popt das uac Fenster auf und fragt nach ob ich diese Programme wirklich als Admin laufen lassen will.

Code:
Set WSHShell = WScript.CreateObject("WScript.Shell")
    WSHShell.Run """Programmpfad1.exe""" 
    WSHShell.Run """Programmpfad2.exe"""
Ich hab versucht die anfrage mit sendkey mit ja zu beantworten aber das wollt nicht.

Code:
Set WSHShell = WScript.CreateObject("WScript.Shell")
    WSHShell.Run """Programmpfad1.exe""" 
    WScript.Sleep 100
    ws.sendkeys("{ENTER}")
    WSHShell.Run """Programmpfad2.exe""
    WScript.Sleep 100
    ws.sendkeys("{ENTER}")
Dann habe ich auchnoch versucht das Programm direkt als Admin laufen zu lassen.

Code:
set ws = CreateObject("Wscript.Shell")
ws.Run "runas /user:Administrator Programmpfad1.exe"
ws.AppActivate ("runas.exe")
WScript.Sleep 100
ws.sendkeys("PASSWORT{Enter}")
Das hat aber auch nicht funktioniert:(
Wenn ich aber meinen Programmpfad durch notepade ersetzte dann kann ich notepad als Admin starten.

Meine Bitte jetzt an euch ist das ich es schaffe endweder die beiden Programme direkt als admin zu starten oder aber die uac popups mit ja zu beantworten mit hilfe eines vbscriptes.
 
Ich hab versucht die anfrage mit sendkey mit ja zu beantworten aber das wollt nicht.

Der "secure Desktop" in dem UAC laeuft, laesst sich "leider" nicht fernsteuern. Das wuerde auch insgesamt wenig Sinn machen. Und "leider" kann man auch Entscheidungen nirgends abspeichern.


Am einfachsten: Code deine Programme so, dasz sie OHNE Adminrechte laufen.

Oder deaktiviere UAC.

Was besserees habe ich leider auch noch nicht gefunden.
Wenn Du was findest, post it ;)

PS: Interessant waere an der Stelle noch, was Deine Programme machen.
BTW. sind alle Windows-internen Programme "Vertrauenswuerdig". Daher laufen die auch im Falle von notepad durch.
 
Das eine Programm ist Speedfan was adminrechte brauch damit es die Festplatten erkennt und das andere Program ist von meinem Asus Board FourEnigne (EPU).
Da FourEngine das system verändern kann (lüfter steuern) Brauch dies auch Adminrechte.

Aber wieso kann ich die Programme nicht direkt als Admin starten?
Mit ner Batch kann ich das doch auch...ich wills jetzt nur in vbs haben.

set ws = CreateObject("Wscript.Shell")
ws.Run "runas /user:Administrator Programmpfad1.exe"
ws.AppActivate ("runas.exe")
WScript.Sleep 100
ws.sendkeys("PASSWORT{Enter}")

Ich hab doch diesen Code wieso will der nicht er bekommt doch das PW.
Das muss sich doch realisieren lassen...
Und danke schonmal ;)
 
Ich hab doch diesen Code wieso will der nicht er bekommt doch das PW.
Das muss sich doch realisieren lassen...
Und danke schonmal ;)

Dann waere UAC ja witzlos :)
Wie gesagt, ich habs nicht rausgefunden und bei den wenigen Windows7 Kisten in der Firma dann letztendlich deaktiviert.
 
Per batch hab ich es als runas hinbekommen.
Gibt es nicht auch so einen Befehl in vbs?

Wenn jemand den kennt kann er ihn ja nochmal posten ansonsten hab ich ne løsung für mein Problem, ne kompination aus vbs und batch :p

@Chromatin
Danke, hast mich wenigsten in sachen windows verständnis weiter gebracht;)
 
Hi! Schon mal darüber nachgedacht per batch und runas dein vbsscript im priviligiertem
Modus starten zu lassen, das ist nämlich der Sinn hinter runas.
Falls du ein mächtigeres batch oder ein Systemnäheres vbs haben möchtest, empfehl ich dir Powershell.
Mfg sw33t
 
Lass das Script einfach unter der lokalen Sicherheitsrichtlinie als Startskript laufen, dann umgehst du die UAC, weil sie darauf nicht anspringt.

Geht aber nur mit den höheren Versionen von Windows 7 (bei denen die Sicherheitsrichtlinien auch einstellbar sind)

lG

Brabax
 
Per batch hab ich es als runas hinbekommen.
Gibt es nicht auch so einen Befehl in vbs?

Folgender VBS-Code funktioniert bei mir (allerdings mit UAC-Prompt):
Code:
Option explicit
Dim oShell
set oShell= Wscript.CreateObject("WScript.Shell")
oShell.Run "runas /noprofile /user:admin ""c:\foobar.exe"""
WScript.Sleep 100
oShell.Sendkeys "123456~"
Wscript.Quit
 
Es ist halt immernoch folgendes Szenario:
FourEngine muss gestartet worden sein damit speedfan Lüftergeschwindigkeiten und Motherboard Temperatur erkennt. Danach kann es auch wieder geschlossen werden, weiß nicht was das Programm startet, aber Speedfan brauch es. Und ich will FourEngine einfach aus Prinzip wieder schließen, damit es keinen Arbeitsspeicher verbraucht. (auch wenn es nur wenig ist) Und ich möchte das es halt automatisch passiert weil es bei jedem Windowsstart gemacht werden muss.
UND beide brauchen eben Adminrechte.

Wie schon gesagt per runas kann ich beide Programme als Admin nacheinander starten, nun ist es dennoch vorgekommen das Speedfan zu schnell gestartet worden ist und FourEngine noch nicht fertig war und Speedfan wieder die Werte nicht auslesen kann.
Ich wäre auch total zufrieden wenn ich FourEngine via Taskkill beenden könnte aber wieso auch immer funzt das nicht. (Adminkonto hab ich schon aktiviert da funzt es auch nicht)
ABER ich kan FourEngine über die PID beenden. (zumindest als "richtiger" Admin, als "normaler" weiß ich es nicht)

Dann habe ich herraus gefunden das ich FourEngine über ein vbscript beenden kann, deshalb der versuch auf vbs umzusteigen;)

@Brabrax
Ich google mal danach und versuch es...denn Poste ich mein Ergebnis.

@sw33tlull4by
Was meinst du mit priviligiertem Modus? Wenn du meinst das ich mein vbscript von der batch aus als Admin laufen lassen soll dann probier ich das aus.

Hoffe meine erklärung war Detailiert genug ;)
 
Wenn du die vbs per runas startest pack deine 2.vbsdatei auch noch da rein, dann verhinderst du die racecondition von der du gesprochen hast und du musst nichts mehr beenden.
mfg

sw33t
 
Ich hab versucht die vbs per runas als admin auszuführen.
Die vbs startet daraufhin aber nicht.
Werde es morgen nochmal versuchen und dann genaueres posten.

Gute Nacht.
 
Guten nachmittag,

ich hab die UAC jetzt ausgeschaltet.

Dann habe ich folgendes script in den Autostart gepackt. Und jetzt funktioniert es.

Code:
Set WSHShell = WScript.CreateObject("WScript.Shell")
    WSHShell.Run """C:\Program Files (x86)\ASUS\EPU-4 Engine\FourEngine.exe""" 
    WScript.Sleep 1000
    WSHShell.Run """C:\Program Files (x86)\SpeedFan\speedfan.exe""" 
    WScript.Sleep 500

strComputer = "." 
Set objWMIService = GetObject("winmgmts:" _ 
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set colProcessList = objWMIService.ExecQuery _ 
("Select * from Win32_Process Where Name = 'FourEngine.exe'") 
For Each objProcess in colProcessList 
objProcess.Terminate() 
Next

Danke an alle.

Ps. dann werde ich euch wohl nicht mehr mit meim FourEngine/Speedfan problem belästigen :D
Ausser es läuft demnächst doch noch nicht ganz rund ;)

Danke nochmal und schönes Wochenende, ich hab morgen nämlich frei :D
 
Zurück
Oben