itomix 10 Geschrieben 15. Dezember 2007 Melden Teilen 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 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.