Active Directory Funktionen - Neue Version 1.5.0.0 freigegeben!

  • Super, dass Du ne Lösung hast.
    Sehe ich das richtig, dass _AD_Open ohne Fehler läuft und erst bei der Update-Funktion der Fehler auftritt?

  • Genau! Vielleicht würde es Sinn machen, #RequireAdmin in die AD UDF einzubauen! Vergiss es, funzt so leider nicht!

    Ich habe mich zum Enterprise Admin gemacht, ohne Erfolg, bis ich auf den UAC gestoßen bin, als ich die AD Console aufgemacht habe...

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Genau! Vielleicht würde es Sinn machen, #RequireAdmin in die AD UDF einzubauen! Vergiss es, funzt so leider nicht!

    Ich habe mich zum Enterprise Admin gemacht, ohne Erfolg, bis ich auf den UAC gestoßen bin, als ich die AD Console aufgemacht habe...

    Gruß,
    UEZ

    Hätte mich ehrlich gesagt auch gewundert. Denn das hätte ja bedeutet, dass kein anderer der ~1200 Downloader Windows 7 mit irgendeiner Update-Funktion verwendet.
    Wo vermutest Du das Problem nun? Im UDF, bei Windows oder in Deinem Script?

  • Wenn UAC aktiviert ist, sollte man in seinem Skript #RequireAdmin hinzufügen!

    Also Windows und das eigene Skript!

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Dann werde ich einen kurzen Hinweis im UDF einbauen.

  • Wie kann ich am besten den LoginScriptPath einer User ID löschen?

    [autoit]


    Func _AD_UserAttribut_DeleteLoginScriptPath($sAD_User)
    If _AD_ObjectExists($sAD_User) = 0 Then Return SetError(1, 0, 0)
    If StringMid($sAD_User, 3, 1) <> "=" Then $sAD_User = _AD_SamAccountNameToFQDN($sAD_User) ; sAMAccountName provided
    Local $oAD_User = _AD_ObjGet("LDAP://" & $sAD_HostServer & "/" & $sAD_User)
    If Not IsObj($oAD_User) Then Return SetError(2, 0, 0)
    ;~ $oAD_User.Remove($oAD_User.scriptPath)
    $oAD_User.Put("scriptPath", "")
    $oAD_User.SetInfo
    If @error <> 0 Then Return SetError(@error, 0, 0)
    Return 1
    EndFunc ;==>_AD_RemoveAttribut_ScriptPath

    [/autoit]

    Das funzt leider nicht!

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Ok, das sollte funzen:

    [autoit]


    Func _AD_UserAttribut_DeleteLoginScriptPath($sAD_User)
    Local Const $ADS_PROPERTY_CLEAR = 1
    If _AD_ObjectExists($sAD_User) = 0 Then Return SetError(1, 0, 0)
    If StringMid($sAD_User, 3, 1) <> "=" Then $sAD_User = _AD_SamAccountNameToFQDN($sAD_User) ; sAMAccountName provided
    Local $oAD_User = _AD_ObjGet("LDAP://" & $sAD_HostServer & "/" & $sAD_User)
    If Not IsObj($oAD_User) Then Return SetError(2, 0, 0)
    $oAD_User.PutEx($ADS_PROPERTY_CLEAR, "scriptPath", 0)
    $oAD_User.SetInfo
    If @error <> 0 Then Return SetError(@error, 0, 0)
    Return 1
    EndFunc ;==>_AD_RemoveAttribut_ScriptPath

    [/autoit]

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Hallo UEZ,

    schau mal in die Beschreibung von _AD_ModifyAttribute.
    Damit kannst Du Properties ändern, löschen etc.

  • ich würde auch gerne eine Test AD installieren, was brauche ich dafür alles? Windows Server (2003, 2008) ist klar, gibt es da eine schnelle installation, ohne viel schnickschnack?

  • Soweit ich mich noch erinnern kann, gibt es für Windows Server 2003 180 Tage Testversionen, für Windows Server 2008 kann man auch die Testversionen bis zu 3x verlängern!

    Da ich in einer großen IT Firma arbeite, habe ich das volle Program parat. :D VMware Workstation v6.5 benutze ich für die Virtualisierung (gab es mal als Promo geschenkt),
    kannst aber andere kostenlose Programme dafür einsetzen.

    Eine AD hochziehen kannst du ja...

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • ich arbeite auch in einer firma mit ~500 Rechnern, aber eine AD habe ich leider noch nie installiert...
    die windows server versionen bekomme ich auch :)

    vmware (virtualbox habe ich lieber) habe ich auch...

    die Frage ging rein um die installation des ADs ! :)

    Danke schonmal bis hierhin

  • Eine AD hochziehen ist eigentlich nicht schwer -> dcpromo.

    Frage mal Google nach Anleitungen zum Installieren einer AD.

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Hallo zusammen,

    ich versuche, die Pagernummer aus dem AD auszulesen. Leider ist diese Funktion nicht in der Sammlung vorhanden und ich bin nicht in der Lage, diese Information mit meinem Wissen umzusetzen. Folgendes soll passieren:

    Die Pagernummer soll aus dem Active Directory (LDAP-Feldname "pager") ausgelesen werden und in einer Box ausgeworfen werden.

    Das hört sich simpel an, ich schaffe es aber nicht...

    Für Hilfe wäre ich sehr dankbar!

    Schwinni

    Einmal editiert, zuletzt von schwinni (15. April 2011 um 10:42)

  • Probiere es mal damit:

    [autoit]


    #include <AD.au3>
    _AD_Open()
    MsgBox(0, "Test", _AD_UserAttribute_GetAttribute("Test1", "pager"))
    _AD_Close()

    [/autoit][autoit][/autoit][autoit]

    Func _AD_UserAttribute_GetAttribute($sAD_User, $attrib)
    Local $attrib_val
    If _AD_ObjectExists($sAD_User) = 0 Then Return SetError(1, 0, 0)
    If StringMid($sAD_User, 3, 1) <> "=" Then $sAD_User = _AD_SamAccountNameToFQDN($sAD_User) ; sAMAccountName provided
    Local $oAD_User = _AD_ObjGet("LDAP://" & $sAD_HostServer & "/" & $sAD_User)
    If Not IsObj($oAD_User) Then Return SetError(2, 0, 0)
    $attrib_val = $oAD_User.Get($attrib)
    If @error <> 0 Then Return SetError(@error, 0, 0)
    Return $attrib_val
    EndFunc ;==>_AD_RemoveAttribut_ScriptPath

    [/autoit]

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Hallo UEZ,

    vielen Dank für deine schnelle Hilfe! Leider ist der Ausgabewert der Messagebox immer 0.

    Gruß

    Schwinni

  • Ich habe in meiner Test Domäne unter Pager einen Wert eingetragen, denn er auch in der MsgBox zeigt.

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Oh man - vielen Dank für den Tipp mit _AD_GetObjectAttribute.au3 - nach 40 Sekunden war mein Problem gelöst. Ich habe diese Funktion immer überlesen.. kurz angepasst und alles läuft wie gewünscht!

    Ich danke allen, die mir geholfen haben, das ging wirklich schnell!

    Die AD- Integration von AutoIt ist echt genial - bislang keine Probleme aufgetreten (außer meinen hausgemachten)!

    Schönes Wochenende

    Schwinni