Avatar billede morten_leth Nybegynder
22. november 2004 - 15:10 Der er 1 kommentar og
1 løsning

Lidt hjælp til et simpelt script

Mit problem er egentlig meget simpelt og jeg kan selv løsningen på den, men jeg kan ikke lige se hvordan jeg kommer derhen... hehe

Set objOU = GetObject("LDAP://" & strDN)
objOU.Delete "user", "cn=" & strDN

det er de 2 linjer jeg har problemer med, for i den øverste skal stien til OU'en brugeren ligger i, skrives, men ikke brugernavnet, og i den nederste skal brugernavnet så skrives, den nederste er jo meget nem, men jeg kan sgu ikke finde ud af at bruge split kommandoen nok til at kunne udelukkende at skrive alt undtagen det der ligger i CN=...

Det såmænd det hele, nogen der har et rigtig godt forslag...?
jeg er lidt løbet tør for ideér men nu er jeg jo også stadigvæk meget ny i det her VBS scripting...

Option Explicit
Dim strUsername, strDN, objOU, arrDN
strUsername = inputBox("Skriv hvilken bruger der skal slettes")
strDN = GetUserDN(strUsername)
arrDN = split(strDN, ",")
Set objOU = GetObject("LDAP://" & strDN)
objOU.Delete "user", strDN

' ---

' 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
Avatar billede morten_leth Nybegynder
22. november 2004 - 15:22 #1
som jeg også skrev så var jeg meget nybegynder, men nu er jeg da kommet lidt videre
eneste forskel er
objOU.Delete "user", arrDN(0)
men skal stadigvæk have fundet ud af at fjerne arrDN(0)(da det jo er CN=username) men kunne jeg bare fjerne det så var problemet ikke så stort...

ideas?

Option Explicit
Dim strUsername, strDN, objOU, arrDN
strUsername = inputBox("Skriv hvilken bruger der skal slettes")
strDN = GetUserDN(strUsername)
arrDN = split(strDN, ",")
Set objOU = GetObject("LDAP://" & arrDN)
objOU.Delete "user", arrDN(0)

' ---

' 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
Avatar billede morten_leth Nybegynder
23. november 2004 - 13:27 #2
Option Explicit
Dim strUsername, strDN, objOU, arrDN, strOU
strUsername = inputBox("Skriv hvilken bruger der skal slettes")
strDN = GetUserDN(strUsername)
strOU = Mid(strDN, InStr(strDN, ",") + 1, Len(strDN) - InStr(strDN, ","))
arrDN = split(strDN, ",")
Set objOU = GetObject("LDAP://" & strOU)
objOU.Delete "user", arrDN(0)

' ---

' 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


jeg fandt ud af det selv, tager selv point...
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
Kategori
Kurser inden for grundlæggende programmering

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