dsquery
DESCRIPTION
DsQuery Active DirectoryTRANSCRIPT
Dsquery y comandos en Active DirectoryArchivado en Active directory, Active Directory, Comandos, Power Shell,Troubleshooting, Troubleshooting, Windows Server — 1 comentario
8 septiembre, 2011
En este post empezaremos a tratar de explicar las consultasy modficiiones del Active
Directorya traves de linea de comandos, de esta manera obtendriamos varias ventajas como
poder simplificar la administracion del mismo ademas de poder obtenerinformacion que no
podriamos obtener del entorno grafico. Con este metodo hasta podriamos crear cientos de
usuarios, con sus respectivos, permisos, contrasenas importandolas de un Excel, realizar
inventarios de las pcs en segundos, crear listas segun que sistema operativo tienen….entre
muchisimas otras cosas…
Para comenzar un poquito de teoria
DSQUERY
Es una Consulta al AD mediante el uso de criterios de búsqueda . Cada uno de los comandos
dsquery encuentra objetos de un tipo de objeto específico, con la excepción de dsquery *, que
puede consultar cualquier tipo de objeto
Dsquery es una herramienta de línea de comandos que está integrado en Windows Server
2008. . Para utilizar dsquery, debe ejecutar el comando dsquery desde un símbolo del sistema
con privilegios elevados. Para abrir un símbolo del sistema con privilegios elevados, haga clic
en Inicio, haga clic en Símbolo del sistema y, a continuación, haga clic en Ejecutar como
administrador.
REDIRECCION CON | (PIPE)
Puede redireccionarse el resultados de las DSQUERY a por ejemplo DSMOD con el fin de
modificar un objeto.
Veamos un ejemplo simple:
“‘C:\> dsquery computer -inactive 4″” Con este comando consultamos todas las pcs que
estuvieron inactivas las ultimas 4 semanas
“‘C:\>dsmod computer * -disabled yes”" COn este comando reemplazando el * por el
“”nombre” de una pc, podriamos desactivarla la computadora en cuestion.
Bueno ahora utilizaremos el | (pipe)
C:\> dsquery computer -inactive 4 | dsmod computer -disabled yes
Que estamos diciendo con este comando? Traeme todas las pcs que estuvieron inactivas en
las ultimas semanas, el Pipe realiza la redireccion del ID de todas estas pcs al segundo
comando que es dsmod (comando que sirve para modificar un atributo de obetos) y las
deshabilita.
DSGET
Muestra las propiedades de un equipo en el directorio. Hay dos variaciones de esta orden. La
primera variación se muestran las propiedades de varios equipos. La segunda variación
muestra la información de la pertenencia a un solo equipo.
Ejemplo, poder ver la descripcion de todas las computadoas que comienzan con marketing de
la ou ventas.
dsquery computer OU=ventas,DC=Argentina,DC=Com -name marketing* |
dsget computer -desc
Bueno despues de la teoria seguimos con mas teoria
Dsquery computer
Syntaxis
DSQuery Computer [{StartNode | forestroot | domainroot}]
[-o {dn | rdn | samid}] [-scope {subtree | onelevel |
base}]
[-name Name] [-desc Description] [-samid SAMName] [-
inactive NumberOfWeeks]
[-stalepwd NumberOfDays] [-disabled]
[{-s Server | -d Domain}] [-u UserName] [-p
{Password | *}]
[-q] [-r] [-gc] [-limit NumberOfObjects] [{-
uc | -uco | -uci}]
Key
StartNode | forestroot | domainroot The node in the console
tree where the search starts.
forestroot = search using
the global catalog.
-o The format used to display the search results.
dn = distinguished name.
rdn = relative distinguished name.
samid = Security Accounts Manager (SAM) account
name.
-scope The scope of the search:
subtree = subtree that is rooted at the start
node in the console tree.
onelevel = immediate children of the start node
only.
base = single object that the start node
represents.
If forestroot is the StartNode, then subtree is
the only valid scope.
-name Search for computer(s) whose name attribute(CN)
matches Name.
For example, "br*"
-desc Search for computer(s) whose description matches.
For example, "dell*"
-samid Search for computer(s) whose SAM account names
match SAMName
-inactive Search for computer(s) that have been inactive
for N number of weeks
-stalepwd Search for computer(s) whose passwords have not
changed for n number of days.
-disabled Search for computer(s) whose accounts are
disabled.
-s Server to connect to (Default=the domain controller
in the logon domain.)
-d Domain to connect to.
-u Username with which the user logs on to a remote
server.
-p Password (UserName or Domain\UserName or
-q Quiet, suppress all output
-r Recursive search (follow referrals)
-gc Use the AD global catalog during the search.
-limit The maximum number of objects to return, default=100.
-uc Unicode format
-uco Unicode format for output only
-uci Unicode format for input only
Bueno vayamos a la parte divertida
Ejemplos:
En contrar todas las pcs que comienzan con ventas, suponiendo que la tenemos nombradas
por sector ventas01, ventas02…
C:\> dsquery computer -name ventas*
Encontras todas las computadoras de la ou(unidad organizativa) Mendoza.
C:\> dsquery computer ou=Mendoza,ou=Workstations,dc=argentina,dc=com
Encontrar pcs con 4 semanas de inactividad:
C:\> dsquery computer -inactive 4
Encontrar las pcs con 4 semanas de inactividad y deshabilitarlas:
C:\> dsquery computer -inactive 4 | dsmod computer -disabled yes
Estos comandos pueden sernos muy utiles para poder realizar inventarios,
ahorrandonos muchisimo tiempo
dsquery computer -name * | dsget computer -samid
Que le esstmos pidiendo? Que nos traiga todas las pcs, no importa cual sea el nombre y que
nos devuelva el samid (nombre en la sam, por ejemplo servidor1)
COmo podemos exportar esto a un Notepad, excel?
dsquery computer -name * | dsget computer -samid > c:\pclist.txt
Agregandoles “”> c:\*.txt” nos exporta el resultado a un archivo de texto. >)
Obtener un listado de las computadoras segun que sistema operativo tienen
dsquery * domainroot -filter “(&(objectCategory=computer)(operatingSystem=Windows
Server*))” | dsget computer -samid
Donde dice windows server *, podemos cambiarlo por ”windows seven” o “”windows xp”"
Bueno esto es todo por hoy, espero que les haya sido de utilidad, se puede consutar casi
cualquier cosa del AD, les dejo un enlace a microsoft para que sigan investigando: