VBS: Problem mit Parameter-Übergabe
Von: , Frage gestellt am Di, 21. Nov 2000
Hallo,
bei unserem VB-Script treten (für uns) unerklärliche Dinge auf.
Wir haben eine kl. Routine, die lediglich eine Konstante definiert und dann eine andere aufruft und 2 Parameter mit übergibt.
---------------------------------------------
Sub ADSIEXTRAS_printacls()
' Konstanten bitte anpassen!
Const filepfad = "FILE://c:\temp\test.txt"
list_sd filepfad, "file"
End Sub
--------------------------------------
Die 2. Routine ruft mit dem übergebenen Parameter irgendeine Funktion "GetSecurityDescriptor" auf (fremde DLL, die ein Variant als Parameter erwartet). Und genau dieser Aufruf bricht mit einem schwerwiegenden Fehler ab:
-----------------------------------------
' ### Ausgabe eines SD
Sub list_sd(ByVal pfad, Typ)
Dim oSD
Dim oADSSEC
Dim oACL
' --- Instanz erzeugen
Set oADSSEC = CreateObject("ADsSecurity")
' --- Security Descriptor holen
Set oSD = oADSSEC.GetSecurityDescriptor(pfad)
MsgBox "----- Rechte auf " & pfad
End Sub
-----------------------------------------
Wenn wir aber in der "list_sd" eine Konstante (z.B. filepfad) mit demselben String definieren und die Funktion dann mit dieser Konstante aufrufen, funktioniert das Ganze:
------------------------------------------
' ### Ausgabe eines SD
Sub list_sd(ByVal pfad, Typ)
Dim oSD
Dim oADSSEC
Dim oACL
' --- Instanz erzeugen
Set oADSSEC = CreateObject("ADsSecurity")
' --- Security Descriptor holen
Const filepfad = "FILE://c:\temp\test.txt"
Set oSD = oADSSEC.GetSecurityDescriptor(filepfad)
MsgBox "----- Rechte auf " & pfad
End Sub
------------------------------------------
Was ist der Unterschied bzw. was müssen wir machen, damit wir die Funktion mit der übergebenen Variable aufrufen können ?
Für Eure Hilfe wären wir absolut dankbar und glücklich
Gruß
Regine + Eckhard
