itomix 10 Geschrieben 15. Dezember 2007 Melden Geschrieben 15. Dezember 2007 Hallo liebe VBS Programmierer, für alle die etwas mehr WSH-Sicherheit möchten, habe ich mal ein kleines VB Skript geschrieben! Gruß Tom Del Greco '___________________________________________ ' ' WSH Signed Scripts ' Create for Windows 2000/XP/2003 ' ' from Tom Del Greco 15.12.07 ' last change: ' '___________________________________________ ' ' Mit dieses kleinen Skripte koennen die Ausführ- ' eigenschaften von VB-Skripten auf einen ' Windows 2000/2003/XP gesteuert werden. ' ACHTUNG : Wenn das Argument "/cert" ausgeführt ' wird, können keine Skripte ausgeführt werden ' die kein Zertifikat vom Betriebsystem erhalten ' haben. Sollte es dennoch vorkommen das man diese ' Option, ohne Zertifikat ausgeführt hat, kann man ' den Registry DWORD Einträge von Hand wieder auf ' NULL (0) zurück setzen! On Error Resume Next Function WSHSec(DWORD_Value) ' dwValue 0 /runall Alle Skripte werden ausgefuehrt. ' ' dwValue 1 /usermode Der Benutzer entscheidet, ob unsignierte ' Skripte ausgefuehrt werden sollen. ' ' dwValue 2 /cert Nur signierte Skripte werden ausgefuehrt. ' Const HKEY_CURRENT_USER = &H80000001 Const HKEY_LOCAL_MACHINE = &H80000002 strComputer = "." Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\default:StdRegProv") strKeyPath = "SOFTWARE\Microsoft\Windows Script Host\Settings" strDWORD = "TrustPolicy" strString = "UseWINSAFER" String_Value = "0" 'HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strDWORD,DWORD_Value oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strString,String_Value 'HKCU\SOFTWARE\Microsoft\Windows Script Host\Settings oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strDWORD,DWORD_Value End Function Sub strRunAll Dim Answer Set objShell=WScript.CreateObject("WScript.Shell") Answer = objShell.Popup("WSH Sicherheit deaktivieren?",1+64,"Warnung",1+64) If Answer = vbOk Then CALL WSHSec(0) End If End Sub Sub strCert Dim Answer Set objShell=WScript.CreateObject("WScript.Shell") Answer = objShell.Popup("Alle VB-Skript koennen nur noch mit einen gueltigen " & vbCrLf & _ "Zertifikat ausgefuehrt werden, wollen Sie diese" & vbCrLf & _ "Einstellung in der Registry wirklich uebernehmen?" ,1+64,"Warnung",1+64) If Answer = vbOk Then CALL WSHSec(2) End If End Sub Sub Help WScript.Echo "" WScript.Echo " Create by Tom Del Greco '2007" WScript.Echo "" WScript.Echo " vcert.vbs [/?] [/cert] [/usermode] [/runall]" WScript.Echo "" WScript.Echo " /? - Help" WScript.Echo " /cert - WSH-Skripte werden nur mit einen gültigen Zertifikat ausgeführt!" WScript.Echo " /usermode - Der Benutzer wird aufgefordert ob WSH-Skripte ausgeführt werden!" WScript.Echo " /runall - Alle WSH-Skripte werden ohne Aufforderung ausgeführt!" WScript.Echo "" WScript.Quit End Sub iNumber = Wscript.Arguments.Count If (WScript.Arguments.Count -1) OR (WScript.Arguments.Count > 1) Then CALL Help End If If (WScript.Arguments.Named.Exists("?")) AND iNumber = 1 Then CALL Help End If If (WScript.Arguments.Named.Exists("cert")) AND iNumber = 1 Then CALL strCert WScript.Quit End If If (WScript.Arguments.Named.Exists("usermode")) AND iNumber = 1 Then CALL WSHSec(1) WScript.Quit End If If (WScript.Arguments.Named.Exists("runall")) AND iNumber = 1 Then Call strRunAll WScript.Quit End If On Error Goto 0
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden