{"id":2642,"date":"2014-11-13T01:10:47","date_gmt":"2014-11-13T04:10:47","guid":{"rendered":"http:\/\/www.radians.com.ar\/blog\/?p=2642"},"modified":"2018-01-16T17:12:43","modified_gmt":"2018-01-16T20:12:43","slug":"potenciando-nuestro-active-directory-domain-services-ad-ds-con-powershell-howto","status":"publish","type":"post","link":"https:\/\/www.radians.com.ar\/blog\/?p=2642","title":{"rendered":"Potenciando nuestro Active Directory Domain Services (AD DS) con PowerShell {HowTo}"},"content":{"rendered":"<p align=\"justify\"><a href=\"http:\/\/www.radians.com.ar\/Articulos\/Images2014\/PotenciandonuestoActiveDirectoryDomainSe_13987\/PowerShell1024x76811.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"www.radians.com.ar - 2014\" style=\"border-top: 0px; border-right: 0px; border-bottom: 0px; margin-left: 0px; border-left: 0px; display: inline; margin-right: 0px\" border=\"0\" alt=\"www.radians.com.ar - 2014\" src=\"http:\/\/www.radians.com.ar\/Articulos\/Images2014\/PotenciandonuestoActiveDirectoryDomainSe_13987\/PowerShell1024x76811_thumb.jpg\" width=\"300\" align=\"left\" height=\"205\" \/><\/a> Hoy vamos a hablar nuevamente de PowerShell aplicado a Active Directory Domain Services (<em>AD DS<\/em>). Realmente existen varias opciones cuando pensamos en administrar nuestro entorno de Directory Services desde l\u00ednea de comando, he incluso desde PowerShell. Dentro de estas opciones tenemos: Snap-In de terceros, tenemos algunos scirpts de .net, tenemos modulos de terceros para PowerShell como podr\u00eda ser <font color=\"#ff0000\" face=\"OCR A Extended\">Quest Active Directory Module for Windows PowerShell<\/font>, que ya lo hemos utilizado en varios videos y demostraciones, y sino tambi\u00e9n el modulo de AD de PowerShell .<\/p>\n<p align=\"justify\">La realidad que de todas estas opciones debemos elegir la que nos resulte m\u00e1s c\u00f3moda, personalmente es complejo el tema y yo \u00faltimamente estoy utilizando mucho las herramientas de Quest y las propias del modulo de AD de PowerShell de Windows Server. Pero eso es solo porque me siento mas c\u00f3modo y por ende mas f\u00e1cil, lo cual no quiere decir que sea la mejor opci\u00f3n. Es un tema bastante personal.<\/p>\n<p align=\"justify\">Me sirve de acceso al m\u00f3dulo de Active Directory de dos maneras. En un controlador de dominio que est\u00e1 ejecutando al menos Windows Server 2008 R2, que a\u00f1adir la funci\u00f3n de administraci\u00f3n de Active Directory, y no tengo acceso al m\u00f3dulo de Active Directory. Puedo acceder a \u00e9l de forma local en el servidor, o puedo usar la comunicaci\u00f3n remota o la comunicaci\u00f3n remota impl\u00edcita para acceder a los cmdlets de mi estaci\u00f3n de trabajo. <\/p>\n<p align=\"justify\">Sin embargo, es importante destacar el tema de la compatibilidad. Por ejemplo, yo utilizo Quest como les comente, pero esos scripts no son 100% compatibles, ya que si quiero implementar el mismo script en distintos clientes voy a necesitar instalar las tools, y no siempre es posible. Es por esto que muchas veces termino utilizando las default del modulo de AD de PowerShell de Windows Server. Este detalle no es menor.<\/p>\n<p align=\"justify\">Tambi\u00e9n podemos instalar las Herramientas de administraci\u00f3n remota del servidor (RSAT) en nuestra estaci\u00f3n de trabajo; por ejemplo en mi trabajo las utilizo para administrar todo mi ambiente desde mi Windows 7 (Si Windows 7 aun, pero bueno no puedo hacer nada al respecto). <\/p>\n<p align=\"justify\">Como hemos visto en varias notas, lo que pasa con PowerShell es que mucho de ustedes le tienen miedo, recibo un mont\u00f3n de consultas al respecto, incluso yo muchas veces evito utilizarlo, pero realmente es incre\u00edble las cosas que podemos automatizar con el. Con el tiempo me he ido acostumbrando a el, incluso yo lo utilice primero con Exchange Server, y recuerdo haber dado una charla con el GLUE sobre la primera versi\u00f3n llamada MONAD.<\/p>\n<p align=\"justify\">Los cmdlets del M\u00f3dulo Active Directory son f\u00e1ciles de usar. Por ejemplo, para crear un nuevo usuario (TestUserName) en una unidad organizativa (OU) denominada <strong>Tes<\/strong><strong>tOU<\/strong> en el dominio radians.com.ar, escribo lo siguiente:<\/p>\n<p align=\"justify\"><font color=\"#ff0000\" face=\"OCR A Extended\">New-ADUser -Name TestUserName -Path &#8216;ou=TestOU, dc=radians, dc=com, dc=ar&#8217;<\/font><\/p>\n<p align=\"justify\">O podr\u00edamos utilizar el CMDlet <font color=\"#ff0000\" face=\"OCR A Extended\">Set-QADGroup<\/font> para modificar un atributo de un grupo o el CMDlet <font color=\"#ff0000\" face=\"OCR A Extended\">New-QADGroup<\/font> para crear un nuevo grupo, etc., etc.<\/p>\n<p align=\"justify\">Otra posibilidad que nos brinda PowerShell es utilizarla junto con filtros ADSI, lo cual potencia mucho mas los scripts y obviamente les da muchisima mas complejidad. Por ejemplo, para setear que la contrase\u00f1a nunca caduque, en el atributo de un usuario. Esta propiedad a diferencia de muchas otras propiedades de objeto de AD est\u00e1n contenidos en m\u00e1scara de bits atributo UserAccountControl (no relacionada en modo alguno con la funci\u00f3n de Control de cuentas de usuario de Windows). Para establecerlo necesitamos recuperar el valor actual de este atributo y utilizar OR (-bor) para calcular un nuevo valor.<\/p>\n<p><font color=\"#ff0000\" face=\"OCR A Extended\">$User = [ADSI] &quot;LDAP:\/\/cn=rdilello,ou=Users,dc=radians,dc=com,dc=ar&quot;     <br \/>$UAC = $User.UserAccountControl[0] -bor 65536      <br \/>$User.Put(&quot;userAccountControl&quot;,$UAC)      <br \/>$User.SetInfo()<\/font><\/p>\n<p align=\"justify\">La ventaja de usar el <font face=\"OCR A Extended\"><font color=\"#ff0000\"><strong>[ADSI]<\/strong> type accelerator<\/font><\/font> es que lo podemos usar sin importar qu\u00e9 versi\u00f3n de Windows AD DS se estemos ejecutando. No tenemos que tener el servicio de administraci\u00f3n de AD instalado, ni necesitamos un servidor que ejecute al menos Windows Server 2008 R2. Lo \u00fanico que necesitamos es que nuestro dominio cumpla con los requisitos m\u00ednimos para utilizar el m\u00f3dulo de Active Directory.<\/p>\n<p align=\"justify\">Por lo cual, perd\u00e1mosle el miedo y empecemos a utilizar PowerShell que nos ayudara mucho en nuestras tareas diarias, y podemos utilizarlo tambi\u00e9n con otros productos Microsoft, como ser: Exchange, Azure, Office 365, Windows Server, Windows clients, etc.<\/p>\n<p align=\"justify\">Espero que les sea de utilidad. Saludos, Roberto Di Lello.<\/p>\n<h4>Mas Informaci\u00f3n:<\/h4>\n<ul>\n<li><a href=\"http:\/\/www.radians.com.ar\/blog\/?p=2402\">Windows Server<\/a>&#160;<a href=\"http:\/\/www.radians.com.ar\/blog\/?p=2402\">2012: Administrandolo con Windows PowerShell 3.0 y el Server Manager {ScreenCast}<\/a><\/li>\n<li><a href=\"http:\/\/www.radians.com.ar\/blog\/?p=2369\">Los primeros pasos del Admin con PowerShell: Testing Service Health {HowTo}<\/a><\/li>\n<li><a href=\"http:\/\/www.radians.com.ar\/blog\/?p=2362\">Pasando desde la linea de comando a PowerShell para Active Directory {Video}<\/a><\/li>\n<li><a title=\"http:\/\/www.quest.com\/activeroles-server\/\" href=\"http:\/\/www.quest.com\/activeroles-server\/\">http:\/\/www.quest.com\/activeroles-server\/<\/a><\/li>\n<li><a title=\"http:\/\/blogs.technet.com\/b\/heyscriptingguy\/\" href=\"http:\/\/blogs.technet.com\/b\/heyscriptingguy\/\">http:\/\/blogs.technet.com\/b\/heyscriptingguy\/<\/a><\/li>\n<li><a title=\"http:\/\/technet.microsoft.com\/en-us\/scriptcenter\/powershell.aspx\" href=\"http:\/\/technet.microsoft.com\/en-us\/scriptcenter\/powershell.aspx\">Windows PowerShell Scripting<\/a><a href=\"https:\/\/translate.googleusercontent.com\/translate_c?depth=1&amp;hl=en&amp;ie=UTF8&amp;prev=_t&amp;rurl=translate.google.com&amp;sl=auto&amp;tl=es&amp;u=http:\/\/blogs.technet.com\/b\/heyscriptingguy\/archive\/2011\/08\/30\/install-active-directory-management-service-for-easy-powershell-access.aspx&amp;usg=ALkJrhiKitsk6Sy52rWUe9TE4XX1gSRt2g\"><\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Hoy vamos a hablar nuevamente de PowerShell aplicado a Active Directory Domain Services (AD DS)&#8230;.<\/p>\n","protected":false},"author":1,"featured_media":4291,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[11,158,4],"tags":[192,215,195,243],"class_list":["post-2642","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-2008-r2","category-windows-server-2012","category-scripting","tag-script","tag-sbs-howto","tag-windows-server-2008-r2","tag-windows-server-2012-r2"],"_links":{"self":[{"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2642","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2642"}],"version-history":[{"count":1,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2642\/revisions"}],"predecessor-version":[{"id":2643,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2642\/revisions\/2643"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/media\/4291"}],"wp:attachment":[{"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2642"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2642"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2642"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}