You are here : Start Windows allg. Benutzer kann bestimmte Programme als Administrator starten

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;
  Lokal ausführen
 Übers Netzwerk ausführen
Path\Application.exe %systemroot%\system32\cscript.exe
\\server\adminme\cscript.exe
Authentication localhost  
Username administrator  
Password *************
 
Current Encryptfile
admin.spc
 
Programm Options
%programfiles%\adminme\runapps.vbs
\\server\adminme\runapp.vbs


cscript.exe sollte sich ebenfalls in diesem Ordner befinden
2.) Save Cryptfile -> "..." anklicken und in den adminme Ordner speichern.
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.
-----------------------------------------------------------------------------------------
Script-Link: runapp.vbs
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

 
Progs_als_Admin.bat
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


B.] Erstellen der Routine um ein HTA-Script zu starten:
 
  Lokal ausführen
 Übers Netzwerk ausführen
Path\Application.exe %systemroot%\system32\mshta.exe
\\server\adminme\mshta.exe
Authentication localhost  
Username administrator  
Password *************
 
Current Encryptfile
admin.spc
 
Programm Options
%programfiles%\adminme\runapps.hta
\\server\adminme\runapp.hta


mshta.exe sollte sich ebenfalls in diesem Ordner befinden
 Rest siehe oben.
 Script-Link: runapp.hta
 <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 * Programme

window.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                                                         : Titel    

progs(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 Sub

Sub 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 Programm

If 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 Sub

Sub 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 Sub

Sub 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 Sub

Sub 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

 
Progs_als_Admin.bat
%ProgramFiles%\adminme\runasspc.exe /cryptfile:"%programfiles%\adminme\adminme.spc" /quiet
 

 
JoomlaTheme.net