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
- Klicken Sie auf Start, zeigen Sie auf
Programme und dann auf Zubehör, und klicken
Sie auf Eingabeaufforderung.
- 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