Benutzer kann bestimmte Programme als Administrator starten |
|
Eine Möglichkeit besteht mit dem Programm Runaspc von ROBOTRONIC.DE
Vorteil:
- Der Anwender muss das Admin - Passwort nicht wissen.
- Begrenzt auf ausgewählte Programme
- Updates können von "normalen User" durchgeführt werden.
Potentieller Nachteil:
Wenn das Script nicht im Programme-Pfad liegt, könnte ein User mit normalen Benutzer-Rechten die Scriptdatei (runapps.vbs) anpassen und so weitere Programme starten, z.B. die CMD-Shell.
Dies Sicherheitslücke wird umgangen wenn alles in dem neuen Programme-Ornder "adminme" liegt. Bei einem Netzwerk-Pfad darf dieser Ordern nur Leserechte haben.
A.] Erstellen der Routine um ein VBS-Script zu starten:
1.) runasspcadmin.exe starten und folgendes eintragen für die lokale Anwendung
border-width: medium;
Jetzt müsste eigentlich folgendes in dem Feld stehen:
c:\Programme\adminme\admin.spc (bis XP)
c:\program files\adminme\admin.spc (ab Vista)
3.) Mit "Test Cryptfile" sollte es jetzt schon funktionieren.
4.) Progs_als_Admin.bat und runapp.vbs erstellen und im Ordner "adminme" speichern. (s.u.)
5.) Progs_als_Admin.bat starten und schon hat der Anwender die Möglichkeit ein Programm als mit Administrator-Rechten zu starten.
-----------------------------------------------------------------------------------------
Option Explicit
Dim txt, frage, app, i Dim wshell Dim v(20) txt = "Zahl eintippen um das Programme zu starten." & vbcrlf & vbcrlf i=0 '----------------------------------------------------- ' Hinter " -> den Anwendungs-Name eintippen der angezeigt werden soll ' nach V(i) der DateiPfad (sollten Leerzeichen vorkommen mit "" kapseln '----------------------------------------------------- 'Diese 2 Befehlzeilen sollten in einer produktiven Umgebeung auskommentiert werden da eine CMD-Shell mit Admin-Rechten gestartet wird txt = txt & i & " -> Command-Shell starten" & vbcrlf v(i) = "cmd /T:4F /k Title *** %USERNAME%-Rechte ***" ' /T:4F bedeutet Shell ist rot 'Hier wird c:\Programme ersetzt mit der Umgebungsvariablen %programfiles%. i+1 txt = txt & i & " -> CDBurnerXP" & vbcrlf v(i) = "%programfiles%\CDBurnerXP\cdbxpp.exe" '------------------------------------------------------ i=i+1 txt = txt & i & " -> Firefox" & vbcrlf v(i) = """%programfiles%\Mozilla Firefox\firefox.exe""" i=i+1 txt = txt & i & " -> Foxit ReaderFirefox" & vbcrlf v(i) = """%programfiles%\Foxit Software\Foxit Reader\Foxit Reader.exe""" i=i+1 txt = txt & i & " -> IExplorer" & vbcrlf v(i) = """%programfiles%\Internet Explorer\iexplore.exe""" i=i+1 txt = txt & i & " -> iTunes" & vbcrlf v(i) = """%programfiles%\iTunes\iTunes.exe""" i=i+1 txt = txt & i & " -> Skype" & vbcrlf v(i) = """%programfiles%\Skype\Phone\Skype.exe""" i=i+1 txt = txt & i & " -> Thunderbird" & vbcrlf v(i) = """%programfiles%\Mozilla Thunderbird\thunderbird.exe""" i=i+1 txt = txt & i & " -> TotalCommander" & vbcrlf v(i) = "%programfiles%\totalcmd\TOTALCMD.EXE" i=i+1 txt = txt & i & " -> TrueCrypt" & vbcrlf v(i) = "%programfiles%\TrueCrypt\TrueCrypt.exe" i=i+1 txt = txt & i & " -> Winamp" & vbcrlf v(i) = "%programfiles%\Winamp\winamp.exe" ' i=i+1 ' txt = txt & i & " -> ---" & vbcrlf ' v(i) = "" txt = txt & vbcrlf & "Alles andere schließt die Anwendung." frage = InputBox(txt , "Programm mit adminstrator Rechten starten", "1") If frage <> vbnullstring Then app = v(frage) Set wshell = CreateObject("WScript.shell") wshell.run app End If Programmauswahl- Fenster
![]() REM Die runaspc.exe lokal mit der BAT starten
%ProgramFiles%\adminme\runasspc.exe /cryptfile:"%programfiles%\adminme\adminme.spc" /quiet
bzw.
REM Die runaspc.exe im Neztwerk starten
\\server\adminme\runasspc.exe /cryptfile:"\server\adminme\adminme.spc" /quiet
<html>
<head> <HTA:APPLICATION ID="StartApp" APPLICATIONNAME="HTAProgramme" BORDER="dialog" SCROLL="no" SINGLEINSTANCE="yes" SHOWINTASKBAR="yes" MINIMIZEBUTTON="no" maximizeButton="no" ><title>Programme als Administrator starten</title> <style type="text/css"> body { bgcolor:"#202060"; text:"#FFFFFF"; font-size:12Pt; color:#E0C000; font-style:bold; font-family:Verdana; background-color: #006; }input {font-size:12pt; color:#202060; font-style:bold; font-family:Verdana} </style> </head> <SCRIPT LANGUAGE="VBScript"> Dim wsh, fs, progs, iprog 'Wer den Hinweis eines Fehlers gern als Popup hat auf True setzten sonst False Const fPopUp = False Set wsh = CreateObject("WScript.Shell") Set fs = CreateObject("Scripting.FileSystemObject") Sub Window_onLoad FillArray ProgrammList 'Breite, Höhe (ohne Programm-Optionen) + x * Programmewindow.resizeTo 350, 250 + iprog * 20 + 30 '30 für das <br> im 1. Eintrag End Sub'Hier die Programme eintragen welche gestartet werden können/sollen Sub FillArray ' Übersichtlicher ist es so iprog = 10 'Anzahl der Programme welche gestaretet werden können ReDim progs(1, iprog) ' Programmpfad : Titelprogs(0,0) = "cmd /T:4F /k Title *** %USERNAME%-Rechte ***" : progs(1, 0) = "Command Shell" progs(0, 1) = "%programfiles%\CDBurnerXP\cdbxpp.exe" : progs(1, 1) = "CDBurnerXP" progs(0, 2) = """%programfiles%\Mozilla Firefox\firefox.exe""" : progs(1, 2) = "Firefox" progs(0, 3) = """%programfiles%\Foxit Software\Foxit Reader\Foxit Reader.exe""" : progs(1, 3) = "Foxit Reader" progs(0, 4) = """%programfiles%\Internet Explorer\iexplore.exe""" : progs(1, 4) = "IExplorer" progs(0, 5) = """%programfiles%\iTunes\iTunes.exe""" : progs(1, 5) = "iTunes" progs(0, 6) = """%programfiles%\Skype\Phone\Skype.exe""" : progs(1, 6) = "Skype" progs(0, 7) = """%programfiles%\Mozilla Thunderbird\thunderbird.exe""" : progs(1, 7) = "Thunderbird" progs(0, 8) = "%programfiles%\totalcmd\TOTALCMD.EXE" : progs(1, 8) = "TotalCommander" progs(0, 9) = "%programfiles%\TrueCrypt\TrueCrypt.exe" : progs(1, 9) = "TrueCrypt" progs(0, 10) = "%programfiles%\Winamp\winamp.exe" : progs(1, 10) = "Winamp" End SubSub RunSkript Dim i, s, sp For Each objButton In RadioOption If objButton.Checked Then i =objButton.Value sp = Replace(progs(0, i), "%programfiles%", wsh.ExpandEnvironmentStrings("%programfiles%")) s = sp If Left(s,1) = """" Then s = Right(s, Len(s)-1) If Right(s,1) = """" Then s = Left(s, Len(s)-1) 'Stimmt der angegebene Pfad zu ProgrammIf fs.fileExists(s) Then wsh.run sp, 1 If CloseApp.Checked Then Schliessen() Else s = "Programm-Pfad<br>""" & sp & """<br> wurde nicht gefunden." UserInfo s End If Exit For End If Next End SubSub UserInfo(s) If fPopUp Then s = Replace(s, "<br>", vbcrlf) wsh.popup s, 5, "Datei fehlt !" Schliessen() Else window.resizeTo 350, 220 s = s & "<br><br><input class=""button"" type=""button"" value="" OK "" name=""EndeHTA2"" onClick=""Schliessen()""><br>" ProgramList.InnerHTML = "" Info.InnerHTML = s End If End SubSub ProgrammList Dim i window.resizeTo 350, 220 ProgramList.InnerHTML = "" s = " Welches Programm starten ?<br/><br/>" & vbcrlf For i = 0 To UBound(progs,2) - 1 If i = 0 Then s = s & "<br/> <input type=""radio"" name=""RadioOption"" value=""" & i & """ Checked><b> " & progs(1, i) & "</b><br>" Else s = s & "<br/> <input type=""radio"" name=""RadioOption"" value=""" & i & """> " & progs(1, i) End If Next s = s & "<br/><br/> <input id=runbutton class=""button"" type=""button"" value=""Starten"" name=""run_button"" onClick=""RunSkript()"">" & vbcrlf & _ " <input id=closebutton class=""button"" type=""button"" value=""Beenden"" name=""EndeHTA"" onClick=""Schliessen()"">" & vbcrlf & _ "<br/><br/> <input type=""checkbox"" name=""CloseApp"" value=""1"" Checked = True> Danach schließen <br/><br/>" Info.InnerHTML = s End SubSub Schliessen() self.close End Sub</SCRIPT> <body> <fieldset><LegEnd align="Center"></legend> <span id="ProgramList"> </span> <div id="info" style="margin: 10px; font-size:11pt;"></div> </fieldset></body> Programmauswahl- Fenster
![]()
%ProgramFiles%\adminme\runasspc.exe /cryptfile:"%programfiles%\adminme\adminme.spc" /quiet
|