Jump to content

Prozeduren in WSH?


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hi NG.

 

W2k3 Server + Win2k, WinXP Clients.

 

Da wir es endlich übers Herz gebracht haben, uns vom größten Teil unserer NT4 Rechner zu trennen, beginne ich mich jetzt ins Thema Anmeldescripts in VBS einzuarbeiten.

 

Wie kann ich innerhalb einer VBS Datei eine Procedur erstellen und auch aufrufen?

Folgender Code schlägt leider fehl:

' Ausführen des Scripts:
' CSCRIPT //X MEIN_SKRIPT.VBS 

Option Explicit
On Error Resume Next
Dim sRoot, sKey, sValname, sRegTyp as String

' Test
sRoot = "HKCU"
sKey = "\Software\123TEST321\"
sValname = "Personal"
sRegTyp = "REG_SZ"

SchreibeRegKey(sRoot, sKey, sValName, sRegType) 
' Hier wird beim Compilieren ein Fehler anzeigt
' Was auch logisch ist! Aber wie soll ich es stattdessen machen?


Sub SchreibeRegKey(Root, Key, Valname, RegTyp)
 Dim valx
 Dim WSHShell
 Set WSHShell = WScript.CreateObject("WScript.Shell")
 ' WSHShell.RegDelete(Root+key+valname)
 WSHShell.RegWrite(Root+key+valname) 
 valx = WshShell.ExpandEnvironmentStrings("\\fileserver\123users\%USERNAME%")
 WSHShell.RegWrite Root+Key+valname, valx, RegTyp
WScript.Quit
End Sub

Ich hoffe, ich bin hier nicht ganz falsch und mir kann jemand helfen.

 

Gruß

Peter

Link zu diesem Kommentar

Sorry, ich komme jetzt erst dazu mich zu melden.

 

Verwende ich c:\windows\system32\CSCRIPT.exe erhalte ich die nur bedingt aussagekräftige Aussage "blabla.vbs(8, 36) Kompilierungsfehler in Microsoft VBScript: Anweisungsende erwartet". Damit kann ich leider nix anfangen.

 

Kopiere ich den Code in VB Editor, der mit MS Office 2000 installiert wird, so erhalte ich beim Debuggen bereits in der zweiten Zeile:

On Error Resume Next

"Fehler beim Kompilieren: Außerhalb einer Prozedur ungültig"

 

Hm, jetzt bin so schlau wie vorher.

 

Irgendwelche Ideen?

 

Gruß

Peter

Link zu diesem Kommentar

"Fehler beim Kompilieren: Außerhalb einer Prozedur ungültig"

[/Quote]

 

Die Dimensionierung der Variablen solltest du mal lieber in eine Sub oder Function reinpacken.

 

Dann ungefähr so hier:


' Ausführen des Scripts:
' CSCRIPT //X MEIN_SKRIPT.VBS

Option Explicit
On Error Resume Next
Init

Sub Init()
Dim sRoot, sKey, sValname, sRegTyp as String

' Test
sRoot = "HKCU"
sKey = "\Software\123TEST321\"
sValname = "Personal"
sRegTyp = "REG_SZ"

SchreibeRegKey(sRoot, sKey, sValName, sRegType)
End Sub

Sub SchreibeRegKey(Root, Key, Valname, RegTyp)
Dim valx
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
' WSHShell.RegDelete(Root+key+valname)
WSHShell.RegWrite(Root+key+valname)
valx = WshShell.ExpandEnvironmentStrings("\\fileserver\123users\%USERNAME%")
WSHShell.RegWrite Root+Key+valname, valx, RegTyp
WScript.Quit
End Sub
[/Code]

Link zu diesem Kommentar

So, jetzt komme ich Schritt für Schritt weiter.

Ich habe bei Borncity's WSH Bazar einen Anfänger-Kurs der Computerbild zu VBScript gefunden ;)

 

VBScript kennt nur den Variablentyp Variant und somit muss man das 'as String' komplett weglassen.

 

Der nächste Kompilierungsfehler lässt aber nicht auf sich warten. Ich darf die Prozedur nicht mit Klammern aufrufen :( Hmrpf, ist das ein getüftel!

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...