WSH

Windows Scripting Host ermöglicht in Windows 2000 das direkte Ausführen von Skripten. Hierzu klicken Sie auf dem Windows-Desktop auf eine Skriptdatei oder geben den Namen einer Skriptdatei an der Eingabeaufforderung ein. Wie Microsoft Internet Explorer dient Windows Scripting Host als Controller für ActiveX-Skriptprogramme. Im Gegensatz zu Internet Explorer beansprucht Windows Scripting Host allerdings nur sehr wenig Speicher und ist sowohl für interaktive als auch für nicht interaktive Skriptanforderungen besonders gut geeignet (z. B. zum Erstellen von Anmelde- und Verwaltungsskripten).

Windows Scripting Host unterstützt Skripten, die in VBScript (Visual Basic Scripting Edition) oder JScript geschrieben wurden. Wenn ein Skript vom Windows-Desktop oder von der Eingabeaufforderung aus gestartet wird, liest der Skripthost den Inhalt der angeforderten Skriptdatei und übergibt ihn an das registrierte Skriptprogramm. Das Skriptprogramm erkennt das Skript an der Dateinamenerweiterung (.vbs für VBScript; .js für JScript) und nicht anhand des in HTML verwendeten SCRIPT-Tags. So muss der Verfasser des Skripts nicht die genaue Programmierkennung (ProgID) verschiedener Skriptprogramme kennen. Der Skripthost verwaltet eine Zuordnung von Skripterweiterungen zu ProgIDs und verwendet das Zuordnungsmodell von Windows, um das geeignete Programm für das jeweilige Skript zu starten.

Windows Scripting Host liegt in zwei Versionen vor: in einer auf Windows basierenden Version (wscript.exe), in der Skripteigenschaften auf einer der typischen Eigenschaftenseiten von Windows eingestellt werden können, und in einer Version mit Eingabeaufforderung (cscript.exe), in der Skripteigenschaften mit Befehlszeilenoptionen eingestellt werden. Geben Sie an der Eingabeaufforderung wscript.exe bzw. cscript.exe ein, um die entsprechende Version auszuführen.

Früher unterstützte das Betriebssystem Windows als einzige systemeigene Skriptsprache nur die Befehlssprache MS-DOS. MS-DOS ist zwar schnell und kompakt, bietet im Vergleich zu VBScript und JScript jedoch nur eingeschränkte Möglichkeiten. Durch die ActiveX-Skriptarchitektur können Benutzer nun die Vorteile dieser leistungsstarken Skriptsprachen nutzen; aber auch MS-DOS-Befehlsskripten werden weiterhin unterstützt.

So führen Sie Windows Scripting Host-Beispiele aus

  1. Klicken Sie auf Start, zeigen Sie auf Programme und dann auf Zubehör, und klicken Sie auf Eingabeaufforderung.
  2. Geben Sie an der Eingabeaufforderung folgendes ein:

    cscript Beispielordner\Skriptname

    Dabei gilt:
    Beispielordner ist der Pfad zu dem Ordner, in den Sie die Beispiele gedownloadet haben.
    Skriptname ist der Name des auszuführenden Beispielskripts, einschließlich der Dateinamenerweiterung (z. B. .js oder .vbs).

    Angenommen, Sie haben die Beispiele unter C:\Beispiele gespeichert und möchten das Beispielskript Netzwerk.vbs ausführen. In diesem Fall geben Sie Folgendes ein:

    cscript C:\Beispiele\Netzwerk.vbs

Wichtig
  • Bevor Sie die Windows Scripting Host-Beispieldateien ausführen können, müssen Sie diese von der Microsoft-Website downloaden.

  • Sie können auf die Beispielskriptdatei auch doppelklicken, wenn Sie ein Skript mit dem Skripthost wscript.exe ausführen möchten.

  • Eine Datei mit der Erweiterung .wsh ist eine Textdatei mit einem Format, das weitgehend dem Format von INI-Dateien entspricht. Eine Datei mit der Erweiterung .wsh enthält einen Abschnitt [ScriptFile], in dem die mit der .wsh-Datei verknüpfte Skriptdatei angegeben ist, und einen Abschnitt [Options], in dem die auf der Registerkarte Skript ausgewählten Eigenschaften enthalten sind.


Beispiel:
' VBScript Source File --
' NAME: shutdownraum.vbs
' AUTHOR: wosch
' DATE : 12/09/2004
' Version: 1.0
' COMMENT: alle pc´s ausser trainer-pc werden runtergefahren

' History:

Option Explicit

Dim wshshell, wshnet, i, c
Dim localcomputer, pc, raum, raumnr, remote, txt, choice

choice = MsgBox("Sollen die PCs im Seminarraum runtergefahren werden?", vbYesNo + vbQuestion, "Shutdown")
if choice = vbNo then
     WScript.Quit
End If

Set wshshell = WScript.CreateObject("WScript.Shell")
Set wshnet = CreateObject("WScript.Network")

If IsClassroom <> True Then
     WScript.Quit
End If


pcname ' wer bin ich?

If pc <> "00" Then
     WScript.Quit
End If

For i=1 To 24
     If (i < 10) Then
          c = "0" + Right(CStr(i),1)
     Else
          c = CStr(i)
     End If

     remote = "PC" + c + "Raum" + raum
     txt = "Es werden nun alle PCs im Raum runtergefahren!
     Bitte trotzdem nochmals kontrollieren! mfg wosch"
     If IsOnline(remote) = True Then
     shut txt,10,remote
     end if

Next

WScript.Quit

 
' PC-Namen herausfinden

Sub pcname()
     localcomputer = wshnet.ComputerName ' Mein Name?
     ' Welche PCNummer und welcher Raum?
     pc = Mid(localcomputer,3,2)
     raum = Right(localcomputer,2)
End Sub

' Sind wir in den Schulungsräumen?

Function IsClassroom()

pcname

If ((IsNumeric(pc)=False) Or (IsNumeric(raum)=False)) Then
     MsgBox "Ey, weiss nicht, wo ich bin! PCXXraumxy ungelöst!!"
     WScript.Quit
End If
If ((pc<00 Or pc>99) And (raum<00 Or raum>99)) Then
     MsgBox "Ey, weiss nicht, wo ich bin! PCXXraumxy ungelöst!!"
     WScript.Quit
End If
IsClassroom = True
End Function


' prüft, ob ein Computer online ist

Function IsOnline(name)
     Dim computer, ComputerName
     ComputerName = name
     Set computer = GetOnlineObject("WinNT://" & ComputerName & ",computer")
     If computer Is Nothing Then
          IsOnline = false
          Exit function
     End If

     IsOnline = True
End Function


Function GetOnlineObject(path)
     Set GetOnlineObject = Nothing
     On Error Resume Next
     Set GetOnlineObject = GetObject(path)
     On Error goto 0
End Function


' Shutdown ohne Abfrage, mit Ausgabetext und Wartezeit

Sub shut(msg,ti,pc)
Dim strCommand
strCommand = "shutdown.exe -s -f -t " & ti & " -c " & Chr(34) &_
     msg & Chr(34) & " -m \\" & pc
Wshshell.run strCommand
End Sub