Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los objetos de Active Directory se pueden usar para buscar recursos en un dominio de red del equipo, como usuarios, directivas de seguridad, impresoras, componentes distribuidos y otros recursos. Los objetos de Active Directory se pueden crear y actualizar mediante WMI. Puede actualizar un objeto de Active Directory cuando la nueva información sobre el objeto esté disponible mediante la notificación de eventos WMI. Por ejemplo, una vez creado un objeto de usuario de Active Directory, puede detectar su creación con una consulta de eventos en WMI y cuando se recibe el evento, puede actualizar el objeto con nueva información.
En el ejemplo de código siguiente se crea una nueva instancia WMI de la clase que representa el objeto de usuario de Active Directory. En el ejemplo se muestra cómo asignar valores a varias propiedades necesarias para crear la nueva instancia de usuario de Active Directory.
Const cUserID = "WMIUser"
Const cComputerName = "LocalHost"
Const cWMInamespace = "root/directory/LDAP"
Const cWMIclass = "ds_user"
Const ADS_UF_ACCOUNTDISABLE = &h000002
Set objWMILocator = _
CreateObject("WbemScripting.SWbemLocator")
objWMILocator.Security_.AuthenticationLevel = _
wbemAuthenticationLevelDefault
Set objWMIServices = objWMILocator. _
ConnectServer(cComputerName, cWMInamespace, "", "")
Set objWMIClass = objWMIServices.Get(cWMIclass)
Set objWMIInstance = objWMIClass.SpawnInstance_
objWMIInstance.DS_sAMAccountName = userID
objWMIInstance.ADSIPath = "LDAP://CN=" & userID & _
",CN=Users,DC=LissWare,DC=Net"
objWMIInstance.Put_ (wbemChangeFlagCreateOrUpdate Or _
wbemFlagReturnWhenComplete)
WScript.Echo "Active Directory user created."
En el ejemplo de código siguiente se actualiza una instancia de WMI de un objeto de Active Directory. En este ejemplo, se actualiza el atributo displayname.
set svc = getObject("Winmgmts:root\directory\ldap")
' A context object is used to tell the provider which
' specific properties are going to be updated.
' In most cases, when you update a WMI object you do not
' need to specify an additional context object.
' However, if a context object is not supplied for a
' directory service provider, the update fails.
set octx = createobject( _
"wbemscripting.swbemnamedvalueset")
octx.add "__PUT_EXT_PROPERTIES", array("ds_displayname")
octx.add "__PUT_EXTENSIONS", true
octx.add "__PUT_EXT_CLIENT_REQUEST", true
set objEnum = svc.execQuery( _
"select * from ds_computer where ds_cn = 'userName'", "WQL", 32)
for each obj in objEnum
obj.ds_DisplayName = "updatedName"
obj.put_ 1, octx
next
WScript.Echo "Active Directory user successfully updated"