Avatar billede Andarkelben Praktikant
02. november 2007 - 10:20 Der er 1 kommentar

Kør et VBScript fra Active Directory

Er ikke sikker på at mit spørgsmål hører hjemme i denne kategori, men jeg tænkte at der måske var nogle af jer VBScript hajer der alligevel kendte svaret.

Jeg har skrevet et VBScript, der kan låse alle låste brugere op på et domæne. Nu kunne jeg godt tænke mig at vide om det er muligt at tilføje en knap til sit AD-Users & Computers, så man kan køre scriptet herindefra, istedet for at skulle køre det fra en prompt.

Jeg forestiller mig noget i retning af at man højreklikker på domænet i Users & Computers, og herfra vælger "Unlock users".
Avatar billede morten_leth Nybegynder
04. november 2007 - 18:03 #1
Du nok nødt til at lege lidt med det....

Men Hanno har lavet en lignende feature, blot med et andet script...

http://www.it-experts.dk/forum/topic.asp?TOPIC_ID=340

Her har du tråden som jeg henviser til, faktisk ret genialt, og den gør vel egentlig hvad det er du gerne vil have den til, så skal du så modificere lidt, men det burde kunne lade sig gøre...


'==========================================================================
'
' NAME:
'
' AUTHOR: Jesper Hanno Hansen , Hanno.dk
' DATE  : 31-08-2005
'
' COMMENT: tilføjer Display specifiers så de kan vises i Active Directory Users & Computers
'          men kun bruger objekter...
'
'==========================================================================
On Error Resume Next

Const ForAppending = 8
Const ADS_PROPERTY_APPEND = 3
Dim objRoot: Set objRoot = GetObject("LDAP://RootDSE")
Dim strConfigNC: strConfigNC = objRoot.Get("configurationNamingContext")
Dim strColumTextToAdd: strColumTextToAdd = "&Vis Maskine,\\Hanno.dk\Netlogon\Visinfo.vbs"
Dim Object

DoAddDisplay "CN=user-Display,CN=409,CN=DisplaySpecifiers," & strConfigNC

Sub DoAddDisplay(DN)
    Set Object = GetObject("LDAP://" & DN)
    sValue = cStr(DoFindNextNumber) & "," & strColumTextToAdd
    ArrValue = Array(sValue)
    Object.PutEx ADS_PROPERTY_APPEND,"adminContextMenu", ArrValue
    Object.SetInfo
    If Err.Number = 0 Then
        WScript.Echo
        Wscript.Echo sValue & " er tilføjet til " & DN
    Else
        WScript.Echo
        WScript.Echo "Noget gik galt"
    End If
End Sub


Sub DoError(strText)
    Dim objFileSystemObject: Set objFileSystemObject = CreateObject("Scripting.FileSystemObject")
    Dim objFile: Set objFile = objFileSystemObject.OpenTextFile("C:\Error.log",ForAppending,True)
    objFile.WriteLine Now & " Error Number      : " & Err.Number
    objFile.WriteLine Now & " Error Description : " & Err.Description
    objFile.WriteLine Now & " Error Text        : " & strText
    objFile.Close
End Sub

Function DoFindNextNumber()
    iCount = 0
    If Not IsEmpty(Object.adminContextMenu) Then
      aTmp = Object.GetEx("adminContextMenu")
      For iCount = LBound(aTmp) to UBound(aTmp)
        WScript.Echo "Der er fundet følgende : " & aTmp(iCount)
      Next
      iCount = iCount + 1
    End If
    DoFindNextNumber = iCount   
End Function


Men tag nu lige og leg med det i et sandkasse miljø inden, du laver det i produktion...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester