Category: Comandos


COn este script se puede mover computadoras de Unidad organizativa (OU) dependiendo del nombre, string, o pueden generar otra consulta , como por ejemplo sistema operativo, locacion…Es muy util cuando se tiene varias sucursales o se debe reorganizar el Active directory principalmente para delegar permisos segun sector, o para la aplicacion de politicas de grupo.

 

#################################################################
# This script will help to move bulk ad computer accounts into target OU
# Morettimaxi.com.ar
#################################################################

# DOnde buscar computadoras
$SearchOU = “CN=Computers,DC=truelogic,DC=local”

Write-Host ” Importing AD Module….. ”

#Importing AD Module
import-module ActiveDirectory

Write-Host ” Importing Move List….. ”
#FUncion para mover pcs
function MvPcs($list){
if ($list.count -ne 0) {
Write-Host ” Moving Computer Accounts…”
#Ou de destino
$destinationOU = ‘OU=test1,OU=Computers,OU=TrueLogic,DC=truelogic,DC=local’
Write-Host ” Starting import computers …”
foreach($computer in $list) {get-adcomputer $computer| Move-ADObject -TargetPath $destinationOU}

$countPC = ($list).count
Write-Host ” Completed Move List ”
Write-Host ” $countPC computers of have been moved ”
}
}

#funcion Generar listado de pcs con cierto nombre
function Createlist($name,$string){
$list = Get-ADComputer -Searchbase $SearchOU -Filter ‘SamAccountName -like $string’ | Select -Exp Name
Write-Host $list $list.count

MvPcs($list)

}

#Llamar a funcion createlist. Primer parametro enviar Pais y en el segundo el string a buscar.
Createlist tldev TL-DEV-*

Con el siguien logon script se puede cambiar si las pcs tienen ip fija a dinamica (DHCP) de forma automatica:

 

netsh interface ip set address “Local Area Connection” dhcp

 

SI ademas queres cambair los dns”

netsh interface ip delete dns “Local Area Connection” all

Con este comando de Powershell podran obtener un reporte de todas sus computadores y servidores y su sistema operativo, como asi tambien Services Packs y demas.

Get-ADComputer -Filter * -Properties * | Select-Object name, operating* | fl

Ejemplo de  Output:

name                       : SERVER2 OperatingSystem            : Windows Server 2003 OperatingSystemHotfix      : OperatingSystemServicePack : Service Pack 2 OperatingSystemVersion     : 5.2 (3790)

name                       : server3 OperatingSystem            : Windows Server 2008 R2 Enterprise OperatingSystemHotfix      : OperatingSystemServicePack : Service Pack 1 OperatingSystemVersion     : 6.1 (7601)

En este pequeño post veremos como obtener una lista con todos los usuarios que no se conectaron al AD por mas de un mes

dsquery user -inactive 4 -limit 0 | dsge user -fn -ln -samid -disabled | find /v “dsget” | find /v “samid” | find /v “yes” > lista_morettimaxi_Inactivos.txt

En el siguiente link, explica como hacer la consulta sobre las computadoras como asi tambien un detalle mayor de como funcionan dsquery y dsget: https://morettimaxi.com.ar/2011/09/08/dsquery-y-comandos-en-active-directory/


La utilidad MOVEUSER.EXE fue una herramienta muy valiosa para la migración de perfiles de usuario local en un equipo con Windows XP a otro perfil de dominio (O incluso trasladar a un usuario de un dominio a otro.) Sin embargo,la utilidad no funciona con Windows VistaSeven . Microsoft inicialmente publico que podría duplicar la misma funcionalidad utilizando VBScript, pero los tutoriales eran muy basicos . Luego, en el sitio Technet, Rob Greene publico un script de ejemplo muy bueno quefuncioanaba. ( Su entrada en el blog original disponible aquí. ) tomé el método que finalmente fue capaz de demostrar y que incorpora la capacidad de utilizar las variables de línea de comandos y hacer que el script lo más cercano a la utilidad anterior  El Script sólo se ejecuta en Vista SP1 o superior(Seven incluido).  Sería bueno si pudiera ser una herramienta tanto para XP y Vista, pero no veo que sea posible con un simple VBScript. – puede continuar. (Anteriormente, se han llegado sólo un error que le ha dicho nada acerca de por qué si no.)
Aquí están las instrucciones para el uso del Script

Existe una variable que debe ser editado antes de ejecutar el script. En la línea número 28 se encuentra una línea que dice: strDomainDN = “dc = contoso, dc = com” .
Aquí se muestra preparado para Contoso.com genérico de Microsoft. Cambiar para que funcione con tu dominio.

(Para los que preguntan acerca de lo que estoy usando editor de allí, esPSPad .)

Después de hacer ese cambio, estás listo para empezar 🙂
Inicia sesión en la pc con un usuario que tenga derechos de administrador local, y uno que no sea  el usuario a mover. Es decir con un 3° usuario que sea adminsitrador local.

Si ejecutas el script, simplemente haciendo doble clic, podrás ver los ejemplos de sintaxis.

Se debera ejecutar el script desde la línea de comandos  como “Administrador”.
Por lo tanto, haga clic en “Inicio -> Programas -> Accesorios” – a continuación, haga clic en el símbolo del sistema ” “icono y seleccione” Ejecutar como administrador “.

Cambie al directorio donde tienes el archivo de comandos y ejecutar el script con los nombres de usuario correspondiente.

Si el usuario existe, entonces se le pedirá que complete la migracion.
Responda Sí y el perfil se mueve, No contesta y termina el script.

Por defecto, si el usuario de origen es una cuenta local (y no es ” Administrador “), se eliminará una vez que el perfil se trasladó a la cuenta de usuario de dominio.
Si no desea que esto ocurra, se debe especificar la / ” k “opción. ( Este es el mismo comportamiento que la Moveuser.exe originales )

Download

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 Username@domain.com)

   -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:

http://technet.microsoft.com/en-us/library/cc754340%28WS.10%29.aspx