passt 10 Geschrieben 20. Juli 2006 Melden Teilen Geschrieben 20. Juli 2006 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 Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 20. Juli 2006 Melden Teilen Geschrieben 20. Juli 2006 Welcher Fehler wird dir denn angezeigt? Ich habe den groben Verdacht, das selbst der Aufruf deiner Sub aus einer Function oder einer anderen Sub passieren muss, da sonst der Interpreter / Compiler nicht weiß, wo das Ding anfängt und wo es endet. Zitieren Link zu diesem Kommentar
passt 10 Geschrieben 21. Juli 2006 Autor Melden Teilen Geschrieben 21. Juli 2006 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 Zitieren Link zu diesem Kommentar
passt 10 Geschrieben 21. Juli 2006 Autor Melden Teilen Geschrieben 21. Juli 2006 Ok, jetzt habe ich die richtige als Ursache der Kompilerfehlermeldung lokalisiert. Dim sRoot, sKey, sValname, sRegTyp as String Dies sorgt für den Fehler "Anweisungsende erwartet". Warum nur? Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 21. Juli 2006 Melden Teilen Geschrieben 21. Juli 2006 "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 ExplicitOn Error Resume NextInitSub 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 SubSub 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.QuitEnd Sub[/Code] Zitieren Link zu diesem Kommentar
passt 10 Geschrieben 21. Juli 2006 Autor Melden Teilen Geschrieben 21. Juli 2006 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! Zitieren Link zu diesem Kommentar
passt 10 Geschrieben 21. Juli 2006 Autor Melden Teilen Geschrieben 21. Juli 2006 @phoenixcp Das sieht zwar eleganter aus, ändert aber nichts am neuen Kompilierungsfehler. Warum müssen alle Programmiersprachen so unterschiedlich sein :( Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 21. Juli 2006 Melden Teilen Geschrieben 21. Juli 2006 Argh.... Warum ist mir das nicht gleich aufgefallen. Lass mal das "as String" weg. In vbScript gibts doch keine Datentypen... Zitieren Link zu diesem Kommentar
passt 10 Geschrieben 21. Juli 2006 Autor Melden Teilen Geschrieben 21. Juli 2006 ;) Siehe meine Antwort #6 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.