El problema
En toda red siempre hay una necesidad, los usuarios tienen que disponer en sus ordenadores de las unidades de red e impresoras que requieran para poder trabajar.
Las soluciones a este problema dependerán de los requisitos de la empresa, el número de usuarios, la preocupación por la seguridad y la evolución tecnológica del departamento de TI al cargo.
En mi caso y dado que mi religión me prohíbe tolerar conscientemente cosas ineficientes, hasta ahora siempre he usado scripts de inicio de sesión que asignaban las unidades de red e impresoras en base a la pertenencia a grupos, de esta forma te aseguras que los usuarios al arrancar sesión tendrán siempre sus unidades e impresoras disponibles.
Esta solución está bien o mejor dicho estaba bien, como siempre he dicho hay que replantearse las cosas y mejorarlas. Las razones que me motivan a buscar un cambio son las siguientes:
-El asunto se ha complicado un poco con Vista especialmente con UAC, usuarios sin privilegios, escenarios con múltiples scripts de inicio de sesión y mas aun con GPOs “anidadas” (Ver: http://www.gpanswers.com/community/viewtopic.php?p=5718 para descubrir el maravilloso mundo del launchapp2.wsf) segun como sea tu entorno te encontraras con algunos problemas con los scripts de inicios de sesión en Vista.
-Cuando se tienen muchos usuarios, grupos, impresoras, unidades, departamentos, localizaciones, etc los scripts se hacen kilométricos, difíciles de mantener y susceptibles del mayor virus de las redes; “el error humano” (aka: dedos gordos).
Un poco de culturilla
El Directorio Activo (AD) grande entre los grandes, nos propone como ya sabéis la posibilidad de crear shares e impresoras como objetos del mismo, los shares se materializaran en instancias de la clase “volum” y las impresoras en instancias de la clase “print-queue”.
El AD es un directorio LDAP y como tal tiene una estructura jerárquica, esto permite que todos los objetos del directorio activo, puedan ser nombrados o accedidos conociendo la ruta jerárquica completa, al atributo de un objeto que almacena esta ruta completa se lo denomina DistinguishedName o DN para abreviar.
Las clases del AD y por lo tanto los atributos que tiene cada clase están definidas en el Schema, cuando un atributo puede contener más de un valor se le denomina “multi-value”.
En el AD muchos objetos referencian a otros, por ejemplo un usuario, tiene un atributo de tipo DN y multi-value que se denomina “member-of” en el cual se almacenan el DN de todos los grupos a los que pertece, por el contrario todos los grupos tienen un atributo de tipo DN y multi-value denominado “members” donde se encuentran todos usuarios que pertenecen al grupo, a esto se le llama “linked-attributes” (http://www.activedir.org/article.aspx?aid=92).
Las clases print-queue y volumen, tienen un atributo cada uno de tipo DN y multi-value que se llama OwnerBL, estos campos aparentemente no se usan o al menos tras algunas pruebas no he logrado ver que se usen y tampoco hay ninguna información en Internet sobre su utilidad.
Otra de las funcionalidades del AD son los display-specifiers que nos facilitan entre otras cosas la posibilidad de poder alterar las opciones contextuales de los objetos en el AD, de esta forma es posible añadir nuestras propias opciones que aparecerán en el menú que aparece al pulsar en el botón derecho del ratón sobre un objeto que represente por ejemplo a un usuario dentro de la consola de usuarios y computadores.
Para más información sobre el esquema y los display-specifiers puedes leer mi artículo sobre el tema: Si hay que editar el esquema se edita, pero editarlo para nada…..
La solución
La solución busca mejorar la gestión necesaria para prestar este servicio, mejorar el rendimiento que se mide en el tiempo necesario para mapear las unidades e impresoras, simplificar y por ultimo ofrecer algún valor añadido.
La solución que propongo al problema de la asignación de impresoras y shares a los usuarios está todavía en desarrollo y pendiente de valorar las implicaciones de usar el atributo OwnerBL.
La alternativa a usar dicho atributo es extender el schema o esquema del AD, operación está a la que solo hay que tener respeto pero no fobia, pero que si se puede evitar, es mejor evitarla.
El asunto funciona así; gracias a un display-specifier (ver imagen 6), al pulsar sobre un grupo con el botón derecho del ratón dentro de la consola de users and computers, nos aparecerá dentro del menú contextual una opción nueva denominada “Unidades e impresoras” desde la cual podremos listar todos los objetos del tipo print-queue y volume que tengamos en el dominio (ver imagen 7). El administrador elegirá las impresoras y shares que quiere que mapeen los usuarios miembros de ese grupo y al salir del dialogo, la aplicación lanzada por el display-specifier guardara en los campos OwnerBL de los print-queue y volume el grupo sobre el que hayamos trabajado.
Imagen 6, Display-Specifier.
Imagen 7, Aplicación.
Obviamente tendremos que haber creado antes los objetos que representan los shares y las impresoras (ver imágenes 1,2 y 3), los shares o unidades los podremos ver desde la consola de usuarios y computadoras, las impresoras están escondidas dentro del AD, en realidad son objetos que jerárquicamente dependen del servidor en el que están (si, no te extrañes un objeto computer puede ser padre de otros objetos).
Imagen 1, Compartir una impresora y publicarla en el AD.
Imagen 2, Opciones para crear impresoras y shares en la consola de usuarios y computadoras.
Imagen 3, Una unidad en el directorio.
Podrías ver las impresoras en la consola de usuarios y computadoras, activando la opción “ver usuarios, computadoras y grupos como contenedores” (imagen 4) o a través de adsiedit puedes ver ambos casos en la Imagen 5.
Imagen 4, Ver recipientes como contenedores.
Imagen 5, Viendo las impresoras.
Finalmente un ejecutable convenientemente llamado desde el loginscript o directamente desde la GPO se encarga de mapear las unidades e impresoras, el ejecutable puede ser llamado con parámetros para indicarle si queremos que borre las impresoras o unidades ya existentes, las letras de unidad a usar para cada Share se pueden indicar en el AD dentro del objeto que haga referencia a dicho Share.
Tanto el ejecutable que usaremos en el script como el lanzado por el display-specifier los he programado en C# pero se podrían haber realizado con scripts de tipo HTA (http://dmatey.spaces.live.com/blog/cns!3B6FB47901ABC772!331.entry)
La ejecución del programa que mapea los elementos deja múltiples eventos en el eventlog de la maquina del usuario indicando las acciones que va realizando.
Queda algún pequeño detalle y más pruebas, pero cuando lo termine lo publicare en codeproject o codeplex.
Nunca mejor dicho: Sin comentarios :O
Siempre disfruto mucho leyendo tus articulos
Gracias!!
Consulta, como tengo que hacer para que me aparesca cuando hago click derecho, lo que dice «impresoras y unidades».
Muy bueno tu articulo, gracias.
Leete el articulo que referencio en el post sobre la edición de los esquemas y los display specifiers.
Increíble tío. Como dice Gura. Sin palabras….
uhmm creo haberlo entendido y voy a ello pero al final no entiendo lo del script.
Es necesario?
gracias por compartir tus conocimientos.
me doy cuenta que siempre sere un eterno aprendiz
hola mi pregunta es como crear una unidad de red que se llame temporal , en la cual se guarden ficheros, etc.. pero que todos los viernes se borre
Hola Daniel, este tema me parece muy interesante pero para hacer algunas pruebas me gustaría que, por favor, me envíes a mi correo el script y el programa que lanzas por el display-specifier que has hecho en C#.
Desde ya agradezco muchísimo tu aporte.
Mi correo electrónico es evacry@hotmail.com o cristian.gonzalez@educacion.es
Muchas gracias y saludos.
Muy bueno Daniel, el problema es que la parte de display-specifiers no he conseguido que funcione. Tal y como lo he entendido, el display-specifiers es para que en el menú contextual podamos poner la opción que deseemos, verdad? Pero yo lo he hecho tal y como explicas en tu artículo y no me funciona. No sé exactamente que puedo estar haciendo mal.
Blood Pressure Prescription Drugs http://www.lungsguide.com/ – zyban online Wellbutrin belongs to a drug class known as aminoketones. [url=http://www.lungsguide.com/]zyban stop smoking[/url]
Kinds Extasy Pills http://www.newmediaprinting.com/ – fluoxetine medication Prozac is a prescription medication that is an antidepressant. [url=http://www.newmediaprinting.com/]buy fluoxetine[/url]
Drug Language [url=http://www.rancidyak.com/]prednisone online[/url] It can also be used in the treatment of migraines, cluster headaches, leukemia, Hodgkin?s lymphoma, and hormone sensitive tumors. http://www.rancidyak.com/ – prednisolone without prescription
Hello, Societal Effects Of Illegal Drugs http://www.greennewmedialifeexpo.com/ – klonopin sale It is indicated for certain types of seizures, akinetic seizures, specifically petit mal seizures, and myoclonus, as well as Lennox-Gastaut syndrome. [url=http://www.greennewmedialifeexpo.com/]klonopin online[/url] Also, like all other benzodiazepines, Klonopin can cause physical dependence.
Drug Affects On Baby Development http://verticalincrease.org/ – finasteride online For men who wish to halt hair loss in its path, Propecia is the solution for your needs. [url=http://verticalincrease.org/]buy generic propecia without prescription[/url]
Drug Abuse And Lifespan Development http://www.90travels.com/ – valium drug While some patients will experience some or all of these symptoms, others will not experience anything but a relief of symptoms. [url=http://www.90travels.com/]buy valium online without prescription[/url]
Xpect Drug Guide [url=http://www.musicunlmtd.com/]spironolactone online[/url] Order Aldactone (Spironolactone) meds at one of reliable online pharmacies. http://www.musicunlmtd.com/ – order aldactone
Alternative Medication Lexapro [url=http://shoefashionblog.com/]generic proscar[/url] or those of us wanting to stop losing our hair, this hair loss medication is the key to achieving that outcome. http://shoefashionblog.com/ – generic finasteride
Aaa Drug Plans http://coopradar.com/ – order seroquel It is often prescribed off label for the treatment of many conditions such as obsessive compulsive disorder, post traumatic stress disorder, restless legs syndrome, autism, alcoholism, depression, and Tourette syndrome. [url=http://coopradar.com/]order quetiapine[/url]
Green Dc’S Ecstasy Pills http://omakedesign.com/ – generic diazepam Valium has become a trusted medication by both doctors and patients. [url=http://omakedesign.com/]valium without prescription[/url]
Benefits Of Apple Cider Tablets [url=http://www.jewelryatsartori.com/]purchase valium online[/url] The anti-anxiety medication is effective at relieving tension in patients which leads to them relaxing more easily, having fun and having a better nights sleep. http://www.jewelryatsartori.com/ – valium 5mg
Prescription Drug Facts Ketokonazol [url=http://www.edelweissinnnb.com/]order crestor online[/url] Additionally, there is some concern that Crestor could cause myopathy, as is the case with all statins. http://www.edelweissinnnb.com/ – generic crestor online
Alantis Diabetes Drug http://www.gogreenblog.net/ – celecoxib 200 mg Prostaglandins are also produced which have beneficial effects on the body because there are two different types of cyclo-oxygenase, referred to as COX-1 and COX-2. [url=http://www.gogreenblog.net/]purchase celebrex[/url]
How Illegal Drugs Are Made [url=http://cantinemex.com/]amoxil price[/url] This is often the first choice of antibiotics because it is easily absorbed when compared to other antibiotics. http://cantinemex.com/ – amoxil drug
Extreme Power Plus Diet Pills http://www.globalchessacademy.com/ – valium 5mg In the 40 years it has been available, it has been used in the treatment of just about every condition!Valium can also be used to treat animals. [url=http://www.globalchessacademy.com/]valium 5mg[/url]
Hola!
Me parece muy buen artículo, pero salvo el enlace a «editando el esquema» los demás no funcionan.
Podriais re-enlazar?
Muchas gracias!!