Microsoft MVPs inside





 MCSEboard.de – IT Pro Forum zu Windows Server 2008 R2 / 2008 / 2003 & Windows 7 / Vista / XP
Registrieren Hilfe Regeln Benutzerliste Suchen Heutige Beiträge Alle Foren als gelesen markieren

Windows Forum — Scripting


Alles zum Thema System Administration Scripting — Q & A zum Thema Scripting: Batch, VBS, WMI, PowerShell


Antwort
     
Themen-Optionen
Alt 16.12.2007, 00:03   #1
Newbie
 
Benutzerbild von itomix
 
Offline
Registriert seit: 07-2005
Beiträge: 44
Achtung WSH-Security mal ganz schnell

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

Code:
'___________________________________________
'                                           
'             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

Geändert von itomix (16.12.2007 um 00:34 Uhr).

Signatur
Micrsoft: MCP 70-270,70-290,70-291 Developer: Delphi 6.0, Windows Scripting, BASH Scripting, Linux

    Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
ist XP zu schnell für w2k-Server ? wiggum Windows Forum — Allgemein 12 29.06.2009 12:10
2K8 - 2K8 - W2K8 WTS und thinclient mit RDP 5.0, Brauche ganz schnell Hilfe. Stephan.Dietz Windows Server Forum 1 21.02.2009 16:07
2K8 - 2K8 - W2K8 WTS und thinclient mit RDP 5.0, Brauche ganz schnell Hilfe. Stephan.Dietz Windows Forum — LAN & WAN 1 21.02.2009 16:06
MS Security Bulletin - Microsoft Security Alert 08/06 Lian Windows Forum — Security 0 04.08.2006 10:05
Switchprt Security / Switch Security Features Bieradler Cisco Forum — Allgemein 7 21.07.2004 09:24


Alle Zeitangaben in MEZ/CET. Es ist jetzt 15:26 Uhr. Seite generiert in 0,025 Sekunden.

- Unsere Partner -

Copyright © 2000 – 2012 MCSEboard.de

Sprung zum Seitenanfang