Hi Leute!
Ich würde gerne das Attribut "Location" eines Drucker(-Objekts) auslesen.
So sieht mein Script aus:
Spoiler anzeigen
; _ADGetObjectAttribute
; Retrieves the specified (single-value) attribute for the given SamAccountName
; Returns 0 if the object does not exist, the attribute does not exist for that
; object or if the value is multi-string.
; Otherwise returns the result
Dim $objConnection
Dim $strHostServer
Dim $strDNSDomain
$object = "PNMarketingC22PCL"
$attribute = "Location"
MsgBox(0,"klsda","Result: " & _ADGetObjectAttribute($object,$attribute))
[/autoit] [autoit][/autoit] [autoit]Func _ADGetObjectAttribute($object, $attribute)
If _ADObjectExists($object) = 0 Then Return 0
$strHostServer = "server27"
$strDNSDomain = "CN=PVSVPS001"
$strQuery = "<LDAP://" & $strHostServer & "/" & $strDNSDomain & ">;(sAMAccountName=" & $object & ");ADsPath;subtree"
$objRecordSet = $objConnection.Execute ($strQuery) ; Retrieve the FQDN for the object
$ldap_entry = $objRecordSet.fields (0).value
$oObject = ObjGet($ldap_entry) ; Retrieve the COM Object for the object
$result = $oObject.Get ($attribute)
$oObject.PurgePropertyList
$oObject = 0
If $result = "" Then
Return ""
Else
Return $result
EndIf
EndFunc ;==>_ADGetObjectAttribute
Func _ADObjectExists($object)
$strQuery = "<LDAP://" & $strHostServer & "/" & $strDNSDomain & ">;(sAMAccountName=" & $object & ");ADsPath;subtree"
$objRecordSet = $ObjConnection.Execute ($strQuery) ; Retrieve the FQDN for the group, if it exists
If $objRecordSet.RecordCount = 1 Then
$objRecordSet = 0
Return 1
Else
$objRecordSet = 0
Return 0
EndIf
EndFunc ;==>_ADObjectExists
Wenn ich das starte, kriege ich anstelle einer Msgbox eine Fehlermeldung:
H:\AutoIt\Printer\AD_read_prop.au3 (39) : ==> Variable must be of type "Object".:
$objRecordSet = $ObjConnection.Execute ($strQuery)
$objRecordSet = $ObjConnection^ ERROR
Ich würde mich sehr über Hilfe freuen.
Gruss
Manu