Schlagwort-Archive: VBScript – Visual Basic Script

Visual Basic Script ist eine von Microsoft entwickelte Skriptsprache. Sie ist eng verwandt mit Visual Basic for Applications und wird üblicherweise interpretiert.

Verknüpfung erstellen mit VBScript

Visual Basic Script VBScript Verknüpfungen auf Desktop erstellen

VBScript create-shortcut.vbs erstellt eine Verknüpfung

VBScript können überall dort eingesetzt werden, wo automatisierte Aufgaben erforderlich sind. Die Anwendung von Batchdateien ist nicht immer das geeignete Mittel, und der Einsatz von Gruppenrichtlinien steht nicht überall zur Verfügung, hier kann ein Visual Basic Script diese Aufgabe übernehmen, beispielsweise um Verknüpfungen für Benutzer bereitzustellen, wodurch komplexe Aufrufe von Anwendungen auf einfache Weise ermöglicht wird.

Das folgende VBScript erstellt eine Verküpfung (shortcut) auf dem Desktop, hier zum Beispiel für den Windows Calculator.

Die VBScript Zeilen durch  Copy Paste in Notepad einfügen und als Datei create-shortcut.vbs speichern, und mit einem Doppelklick die Verknüpfung erstellen.
' VBScript to created shortcut
Const strProgramTitle = "Shortcut to Calculator"
Const strProgram = "%SystemRoot%\System32\calc.exe"
Const strWorkDir = "%USERPROFILE%"
Dim objShortcut, objShell
Set objShell = WScript.CreateObject ("Wscript.Shell")
strLPath = objShell.SpecialFolders ("Desktop")
Set objShortcut = objShell.CreateShortcut (strLPath & "\" & strProgramTitle & ".lnk")
objShortcut.TargetPath = strProgram
objShortcut.WorkingDirectory = strWorkDir
objShortcut.Description = strProgramTitle
objShortcut.Save
WScript.Quit

  Zu guter letzt, die Const Zeilen im Script können editiert werden, für beliebige weitere Anwendungen.

Die erstellte Verknüpfung nun ausführen

Die auf dem Desktop erstellte Verknüpfung nun ausführen um den Windows Calculator zu öffnen.

C:\> cscript //Nologo //B create-shortcut.vbs

Aus der Eingabeaufforderung oder aus einer Batch kann dieses VBScript mit cscript gestartet werden.

Nutzung von VBScript

Als Systemkomponente aller aktuellen Windows-Versionen wird VBScript von Microsoft nach wie vor unterstützt. Die Sprache selbst wird jedoch seit Längerem nicht mehr weiterentwickelt. Daher wird sie manchmal als „tote Sprache“ angesehen. Zudem bietet Microsoft diverse Nachfolgeprodukte und favorisiert deren Einsatz. Dies zeigt sich auch daran, dass Microsofts WSH-bezogene Webseiten verschwinden. Durch die vergleichsweise hohe Akzeptanz der alten Produkte und die große Verbreitung darauf basierender Lösungen werden diese jedoch noch geraume Zeit in Koexistenz verbringen.

Windows Scripting Host und VBScript unterstützen eine modulare Programmierung und sind daher durchaus für größere Projekte geeignet. Es existieren auch einige nützliche Entwicklungswerkzeuge, ihre Anzahl ist allerdings überschaubar. An erster Stelle sind Editoren zu nennen, die Quelltexte gemäß der VBS-Syntax mit farblichen Hervorhebungen darstellen können. Solche Programme werden zum Teil kostenlos angeboten (z. B. Notepad++). Auch von Microsoft wurden ein spezieller Script Editor sowie ein Script Debugger zur Unterstützung der Fehlersuche herausgegeben, wobei es sich um eher einfache Tools handelt.

Netzlaufwerk mapping aus VBScript

Windows Netzlaufwerk verbinden mit Visual Basic Script

VBScript netdrive.vbs Netzlaufwerk Mapping

VBScript können genutzt werden um Netzlaufwerke zu Windows-Netzwerkfreigabe auf Server oder NAS Geräte zu verbinden. In Situationen wo die Batchverarbeitung nicht die geeignete Wahl ist, oder aber Gruppenrichtlinien nicht die gewünschte Anwendung ist, kann ein Visual Basic Script die Anforderung erfüllen, beispielsweise zur Anwendung von Login Scripts bei VPN Remote Clients diese nicht Mitglied der AD Domäne sind.

Microsoft VBScript beinhaltet Objekt Klassen, Methoden (Funktionen / Prozeduren) und Wertestrukturen. Hier kommt unser Objekt MapNetworkDrive als Methode zur Anwendung. Die Methode oder das Verb manipuliert wiederum Werte.

Es können beliebige Objekt verwendet werden, hier wird das Objekt objNetwork definiert, Entwickler von Scripts halten sich gerne an Muster und ihren Variablen. Ein Präfix von str gibt einen Zeichenfolgenwert an, während der Präfix obj ein Objekt angibt. Nachdem WScript unser objNetwork erstellt hat, kann es mit der Methode MapNetworkDrive bearbeitet werden.

VBScript für Netzlaufwerk Mapping

Folgendes VBScript netdrive.vbs als Beispiel, für die herstellung der Windows-Netzwerkfreigabe zum Netzlaufwerk Z:, dabei kann die Verbindung als ein anderer Benutzer erfolgen, als mit dem man sich am Client authentifiziert hat.

Option Explicit
Dim objNetwork, strDriveLetter, strRemotePath, strUser, strPassword, strProfile, WshShell

' Set credentials & network share to variables.
strDriveLetter = "Z:"
strRemotePath = "\\server\share"
strUser = "domain\username"
strPassword = "topsecret"
strProfile = "false"

' Create a network object (objNetwork) do apply MapNetworkDrive Z:
Set objNetwork = WScript.CreateObject("WScript.Network")
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath, _
strProfile, strUser, strPassword

' Open message box, enable remove the apostrophe at the beginning.
' WScript.Echo "Map Network Drive " & strDriveLetter
MsgBox " Explorer launch Network Drive " & strDriveLetter, vbInformation, "Network Drive Mapping"
' Explorer will open the mapped network drive.
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "explorer.exe /e," & strDriveLetter, 1, false
WScript.Quit

Die entsprechende Variable wird in den Zeilen 5 – 9 zugewiesen, in dem der jeweilige Platzhalter zwischen den Anführungs- und Schlusszeichen definiert wird.

VBScript Variablen definieren

  1. Bei strDriveLetter gewünschtes Netzlaufwerk zuweisen.
  2. Bei strRemotePath der UNC Pfad zur Netzwerkfreigabe.
  3. Bei strUser der Benutzername, ist dieser Mitglied einer Windows Domäne, muss der Domänen Präfix angeführt werden, dies in der Form domain\user.
  4. Bei strPassword das dem Benutzer zugewiesene Passwort.

VBScript WSH aus Batch ausführen

Kommt für für die Netzwerk-Anmeldung bereits ein Batch zB. netlogon.bat zur Anwendung, wird aus dem Batch unser VBScript netdrive.vbs wie folgt ausgeführt:

start /wait "" cscript //Nologo netdrive.vbs

Soll bei der Ausführung keine Visual Basic Console Fenster ausgegeben werden, verwendet man die Option /B, damit startet die Anwendung ohne ein neues Fenster zu öffnen.

start /B /wait "" cscript //Nologo netdrive.vbs

Nach erfolgreicher Anmeldung wird das Netzlaufwerk zur Windows-Netzwerkfreigabe erstellt, und anschliessend im Explorer geöffnet.