Det kunne jeg da sagtens... har også lavet et.... men det er noget større end det du har der.... men ligemeget hvordan du vender og drejer den så har du ikke flere rettigheder i et VBscript end du ellers ville have... medmindre du i scriptet skriver admin user og pass.. eller kører runass men ligemeget hvad så er det i hvert fald ikke hensigtsmæssigt.. ;)
option explicit
dim strUsername, strDN, objUser, iResponse
const strTitle = "Lås Bruger op ver. 1.0"
strUsername = InputBox("Indtast det brugernavn du øsnker at låse op!", strTitle)
if len(strUsername) > 0 then
'bind brugeren med Ldap provideren
strDN = GetuserDN(strUsername)
'checks if the user exists
On Error resume Next
set ObjUser = Getobject("
LDAP://" & strDN)
if Err.Number <> 0 Then
On Error Goto 0
MsgBox "Brugeren '" & strUsername & "' blev ikke fundet!", , strTitle
Wscript.quit(1)
end if
On Error Goto 0
'checks if the user is locked, and ask's if the user is
If objUser.IsAccountLocked = true Then
iResponse = MsgBox("Brugeren er låst op ønsker du at låse den op?", 4, strTitle)
If iResponse = 6 Then
objUser.IsAccountLocked = false
objUser.SetInfo
MsgBox "Brugeren er nu låst op!", , StrTitle
Else
MsgBox "Brugeren er stadig låst!", , strTitle
End If
else
MsgBox "Brugeren er ikke låst!", , strTitle
end if
end if
' ---
' Converts a NT username in the current NetBIOS domains to the corresponding distinguished name
Function GetUserDN(strUserNTName)
' Declare variables
Dim objRootDSE, strDNSDomain, objTrans, strNetBIOSDomain, strUserDN
' Create objects
Set objTrans = CreateObject("NameTranslate")
Set objRootDSE = GetObject("
LDAP://RootDSE")
' Retrieve DNS domain name
strDNSDomain = objRootDSE.Get("defaultNamingContext")
' Convert DNS domain name to NetBIOS domain name
objTrans.Init 3, strDNSDomain
objTrans.Set 1, strDNSDomain
strNetBIOSDomain = objTrans.Get(3)
' Remove trailing backslash
If Right(strNetBIOSDomain, 1) = "\" Then strNetBIOSDomain = Left(strNetBIOSDomain, Len(strNetBIOSDomain) - 1)
' Enable internal errorhandling and clear errorlog
On Error Resume Next
Err.Clear
' Convert NT username to Distinguished Name
objTrans.Init 1, strNetBIOSDomain
objTrans.Set 3, strNetBIOSDomain & "\" & strUserNTName
' Check for error
If Err.Number <> 0 Then
GetUserDN = ""
End If
' Clear errorlog and disable internal errorhandling
Err.Clear
On Error GoTo 0
strUserDN = objTrans.Get(1)
' If the returned distinguished name doesn't contain a common name (CN), then the user doesn't exist
If InStr(strUserDN, "CN") > 0 Then
' Return distinguished name of the user
GetUserDN = strUserDN
Else
' Return empty string
GetUserDN = ""
End If
End Function
sådan ser det ud det jeg bruger...