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