SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
Administración de Sistemas
Usuarios y Protección en Windows 2003

                   I TAHISA M. D ÍAZ D ÍAZ

                 M ARÍA D. BATISTA G ALVÁN




   E SCUELA T ÉCNICA S UPERIOR   DE I NGENIERÍA I NFORMÁTICA

                  Universidad de La Laguna
R ESUMEN . El objetivo del presente informe es describir y explicar los pasos se-
guidos para la realización de la tercera práctica de laboratorio de la asignatura de
Administración de Sistemas.
En este caso, la práctica consistía en aprender a utilizar las herramientas para la ges-
tión y protección de usuarios que proporciona Windows Server 2003, concretamente
se hizo un amplio uso del Active Directory. Por lo tanto, se trabajó sobre una máquina
virtual que actuaba como servidor, con Windows Servers 2003 como sistema opera-
tivo al que se le instaló y configuró el servicio DNS para posteriormente instalarle
el Active Directory; la máquina virtual que operaría como cliente llevaba instalado
el Windows XP. Se planteaba una organización simulada, tal y como ocurrió en las
prácticas anteriores, a la que administrar cuestiones tales como el acceso a los re-
cursos, la protección y la seguridad, lo que conlleva manejar operaciones como la
creación de usuarios y grupos, establecer reglas de seguridad, el mapeo de unidades,
entre otras tantas que se describirán a medida avance el informe. La estructura de
dicho informe está determinada por las cuestiones propuestas en la práctica, a las
que se irá respondiendo y describiendo los procesos para su consecución en el orden
que se plantean.
Con el fin de facilitar, automatizar y, por consiguiente, agilizarle estas operaciones
al administrador, se creó una aplicación en modo gráfico a base de scripts elabora-
dos con el lenguaje VBScript, que se adjunta en el presente informe. Aunque en los
apartados se explica como se llevo a cabo la práctica de manera gráfica, lo cierto se
utilizó dicho script para completar todas las tareas.




                                                         1
Índice

1. Sistemas                                  3

2. Contraseñas                               5

3. Directorio privado de los usuarios        9

4. Proyectos de la organización             13

5. Usuarios de la Organización              17

6. Directores de los proyectos              20

7. Ejecutivos de la organización            21

8. Resto de usuarios                        22

Anexos                                      24

A. Usuarios                                 24

B. Grupos                                   30

C. Carpeta                                  34

D. Security Policy                          35

E. Compartir                                36

F. Permisos NTFS                            38

G. Permiso Share                            40




                                        2
P OLÍTICA   DE   S EGURIDAD   DE LA     O RGANIZACIÓN


1.     Sistemas
       Cualquier usuario debe poder apagar el sistema.

       En este primer punto, al menos en lo que respecta a conceder al usuario el privilegio de apagar el
       sistema, no fue necesario configurar nada puesto que el usuario ya tiene por defecto ese privilegio de
       poder apagar el equipo local.


       Los usuarios tienen restringidas las horas de acceso al sistema.

       Por su parte, para restringir las horas de acceso al sistema a los usuarios, es obvio que previamente fue
       necesario crear a los usuarios, lo que se explicará más adelante (véase apartado 2). Por tanto, se parte
       de la idea que ya están creados los usuarios. Así pues se siguieron los pasos:



            Start → Administrative Tools → Active Directory Users and Computer


       Se seleccionó la unidad organizativa que se creó para almacenar a los usuarios de la organización (a la
       que se le llamó People) y se seleccionaron los usuarios del turno de mañana (pues se le asignaron las
       horas según su turno, tal y cómo se propone en el punto ??.




                            (a) Properties                             (b) Account

                                       Figura 1: Properties → Account




                                                       3
Una vez seleccionados, se desplegó con el botón derecho un menú en el que se eligió “Properties”. Luego
en la pestaña “Account” se marcó la casilla “Logon hour” y, a continuación, el botón con el mismo nombre
(véase la figura 1).
En la ventana que apareció se seleccionaron las horas correspondientes. Una vez hecho se marcó la
opción “Logon Permitted” (véase la figura 2).




                                     Figura 2: Logon Hour


Finalmente se procedió de igual forma para los del grupo de tarde.




                                               4
2.   Contraseñas
     A fin de facilitar la gestión, asignar como contraseña el nombre del usuario.

     Como la contraseña se estableció al crear a un usuario, se explicará en este subapartado el proceso de
     creación de usuario.
     C REACIÓN DE U SUARIOS
     Se siguieron los pasos siguientes:



          Start → Administrative Tools → Active Directory Users and Computer


     En la unidad organizativa People, al clicar sobre el botón crear usuario aparecía una nueva ventana
     donde se establecieron datos básicos sobre el usuario, como su nombre, apellidos, nombre de la cuenta,
     etc. (véase Figura 3(a)).
     Apretando siguiente, aparecía una nueva ventana (véase Figura 3(b)) donde establecer la contraseña y
     algunas características como, por ejemplo, si queremos que la contraseña nunca expire. En ese punto,
     introducimos la contraseña (el propio nombre de usuario, tal y como se especifica en este apartado), y
     no se marcó ninguna de las opciones, puesto que se configurarían posteriormente siguiendo las pautas
     que va marcando el guión.




                      (a) Datos del Usuario                         (b) Contraseña

                                          Figura 3: New Object : User



     Finalmente, clicando “next” y a continuación, “finish”, se creó el usuario y apareció en la unidad organi-
     zativa. Este proceso se hizo con cada usuario, desde emple1 hasta emple10 y ejec1 y ejec2 (véase figura
     4).




                                                      5
Figura 4: OU People



Los usuarios deben cambiar las contraseñas cada tres meses.

Los usuarios no pueden cambiar las contraseñas hasta 2 semanas después de haberla
cambiado.

No se permiten contraseñas en blanco. Longitud mínima: 4 caracteres.

La nueva contraseña no debe coincidir con las dos últimas introducidas por el usuario.

Los siguientes subapartados fueron subsanados siguiendo los pasos:



     Start → Administrative Tools → Domain Security Policy


Y luego, en dicha herramienta, en el árbol que aparece a la izquierda, se eligió:



     Account Policies → Password Policy


Al seguir está ruta, en la ventana de la derecha aparecerían las políticas que serían modificadas para
cumplir con los subapartados que nos ocupan. Para cambiarlas simplemente fue necesario hacer doble
clic sobre cada una de las siguientes políticas y establecerles las propiedades tal y como se muestra a
continuación:
Maximum password age: esta política se configuró para cumplir que los usuarios tuvieran que cambiar
la contraseña cada 3 meses. Por lo que se estableció a “90 days”
Minimum password age: esta política se configuró para cumplir con que los usuarios no pudieran
cambiar su contraseña hasta pasadas dos semanas del último cambio. Se estableció a “14 days”
Minimum password length: esta política se configuró para cumplir con la longitud mínima de la con-
traseña. Se estableció a “4 characters”


                                                6
Enforce password history: esta política se configuró para que cuando el usuario cambiará la contraseña,
ésta no pudiera coincidir con las dos últimas establecidas. Se estableció a “2 password remembered”


Si se producen 4 intentos de autenticación fallidos a una cuenta de usuario en un inter-
valo de 10 minutos, ésta debe quedar permanentemente bloqueada.

Como, en los subapartados anteriores, en éste, también nos dirigimos a la herramienta:



     Start → Administrative Tools → Domain Security Policy


Para cumplir que tras 4 intentos en un intervalo de 10 minutos se bloqueara la cuenta de manera
permanente, fue necesario dirigirnos a:



     Account Policies → Password Policy → Account Lockout Policies


Donde se cambiaron tres políticas:
Account lockout duration se estableció a “0” para que la cuenta fuera bloqueada permanentemente.
En caso de poner otra cifra, representaría los minutos que se quedaría bloqueada la cuenta.
Account lockout threshold se estableció a “4 invalid logon attempts”, para los 4 intentos.
Reset account lockout counter after se estableció a “10 minutes”, para el intervalo de 10 minutos.


Deben quedar registrados los intentos fallidos de entrada en el sistema.

En este caso, los cambios fueron necesarios establecerlos tanto en la herramienta Domain Security
Policy, como en la Domain Controller Security Policy, para que los fallos quedarán registrados en el
servidor, en cuyo caso, si no la definiéramos de igual manera, la del controlador anularía a la de Domain
Security Policy. En ambos casos se siguió:



     Local Policy → Audit Policy


Y, para las políticas “Audit account logon event” y “Audit logon event” se marcó la casilla “Failure” y se
desmarcó “Success” en caso de estar marcada (véase la figura 5) para que se registraran sólo los fallos al
entrar en el sistema.




                                                7
Figura 5: Audit Policy


Para comprobar si funcionó, se entró erróneamente (fallando en la contraseña) en la máquina cliente
con un usuario, se comprobó que se quedaban los registros del error (véanse las figuras 6(a) y 6(b)) en:




              (a) Error de Inicio de Sesión                    (b) Event Viewer

                     Figura 6: 4 intentos fallidos en menos de 10 minutos




     Start → Administrative Tools → Event Viewer → Security


y que el usuario quedó inhabilitado en Active Directory Users and Computer.




                                                8
3.   Directorio privado de los usuarios
   Cada usuario debe disponer de un directorio propio de conexión con las siguientes restric-
ciones:

     Todo usuario debe disponer de un directorio propio a partir del directorio home del
     servidor, cuyo nombre coincida con el de la cuenta del usuario. El usuario podrá acceder
     automáticamente a este directorio a partir de la unidad n: desde cualquier máquina del
     dominio.

     En primer lugar, se creó el directorio home en C: y dentro de home una carpeta por cada usuario de la
     organización (desde emple1 hasta emple10, además de ejec1 y ejec2), como se muestra a continuación
     en la imagen:




     En el directorio C:home (botón derecho del ratón) se eligió “Sharing and Security” (véase la figura
     7(a)), en la ventana que apareció en la pestaña “Sharing” (véase la figura 7(b)) se marcó la casilla
     “Share this folder”; donde ponía “Share name”, se eligió el nombre que tendría la carpeta compartida
     (en este caso, home) y en “User Limit” se podía elegir la cantidad de usuario que podría conectarse al
     recurso compartido (en este caso, el máximo permitido).
     Luego, por último se establecieron los permisos compartidos, para lo que se pulsó en esa misma ventana,
     el botón “Permissions“. A continuación se añadió al grupo Domain User (véase la figura 7(c)), un grupo
     especial creado para introducir a todos los usuarios de la organización, al que se le dio control total en
     dicho recurso (home), para permitir a todos los usuarios acceder al mismo directorio y no limitarle
     luego permisos para manipular su propia carpeta.
     Por otra parte, en:



          Start → Administrative Tools → Active Directory Users and Computer


     Para cada usuario, en “Properties” y en la pestaña “Profile”, en el recuadro donde ponía “Home Folder”, se
     marcó la casilla “Connect” y elegimos la unidad N: tal y como dicta el enunciado de este apartado; y en


                                                     9
el recuadro tras la palabra “To:” se escribió la ruta al recurso de conexión que sería el home del usuario
correspondiente que se creó anteriormente. Se indicaron la máquina, el recurso y la ruta del directorio
dentro del recurso. Por ejemplo, para emple1 sería 192.168.1.110home %username % tal y como
se muestra en la imagen la figura 8(a).




(a) Sharing and Security                    (b) Sharing                         (c) Permissions

                                 Figura 7: Carpeta Compartida




          (a) Home Folder                                          (b) Unidad

                                  Figura 8: Directorio Privado



                                                10
El resultado fue que al iniciar sesión le aparecía una unidad N: seguida con su nombre de usuario, donde
se alojaba su home (véase la figura 8(b)).


En este directorio, el usuario debe tener control total.

El resto de los usuarios no podrá tener ningún tipo de acceso sobre este directorio.

Con la finalidad de que el usuario tuviera control total sobre su propio directorio y ningún otro tuviera
este acceso se realizó lo siguiente:
En el directorio C:home (clic con botón derecho del ratón) se eligió “Sharing and Security”.
En la pestaña “Security” en el botón “Advanced” en “Permissions” se cortó la herencia de los permisos
(casilla: “Allow inheritable...”) para que no se sumaran los permisos del directorio C:home al del direc-
torio de los usuarios. Y además se pudiera eliminar a los usuarios que venían establecidos por defecto,
dejando únicamente Administradores y al grupo Domain User (véase la figura 9).




                                       Figura 9: Herencia


Luego, en el directorio de cada usuario, en la misma pestaña “Properties” → “Sharing and Security” →
“Security”, se cortó la herencia al igual que antes. Se añadió además de a Administradores, al usuario
propietario de su directorio, al que se le da control total sobre el mismo (véase la figura 10).




                                                11
Figura 10: Control Total


De esta manera, se consiguió que únicamente el propietario tuviera acceso a su directorio y ninguno otro
usuario más tuviera ningún tipo de acceso. Puede verse reflejado en la imagen donde se muestra como
emple1 intenta entrar en el directorio de otro usuario y se le es denegado el acceso (véase la figura 11).




                      Figura 11: Acceso Denegado a los NO Propietarios



                                               12
4.     Proyectos de la organización
     La organización tiene en marcha diversos proyectos. Éstos han de cumplir:

       Cada proyecto dispondrá de un directorio para almacenar la información relativa al mis-
       mo bajo el directorio proyectos. Cada usuario podrá acceder automáticamente a los
       proyectos en los que participe a partir de las unidades p:, q:,... desde cualquier máquina
       del dominio.

       En este apartado, fue necesario el mapeo de las unidades. En primer lugar, se crearon tres carpetas para
       cada proyecto bajo el directorio C:proyectos con el nombre de cada proyecto (auditorio, aeropuerto
       y parque). Dichos directorios fueron compartidos en red, de la misma manera que se ha explicado en
       apartados anteriores; en cuánto a los permisos que se les dieron, se tratará en los siguientes subapartados
       con mayor detenimiento, puesto que requerían de una seguridad más personalizada y por tanto del uso
       de los permisos especiales (véase en subapartados siguientes).
       A continuación en C:WINDOWSSYSVOLsysvolas07.orgscripts se agregó un fichero .bat llamado
       unidad.bat. En dicho script se hizo uso del comando net use para el mapeo, por lo que su único conte-
       nido eran tres líneas de comando para mapear las unidades a las carpetas de los tres correspondientes
       proyectos. El código fue el siguiente:


             1   net use p: 192.168.1.110auditorio
             2   net use q: 192.168.1.110aeropuerto
             3   net use r: 192.168.1.110parque



       Decir, además que las carpetas sysvol y scripts de la ruta anterior hubo que compartirlos con los usuarios
       de la organización (Grupo Domain User) con permiso de lectura y al .bat se le asignó también permiso
       de lectura y de ejecución, para que éste pudieran ser ejecutado por los usuarios.
       Finalmente en la herramienta Active Directory Users and Computer, se seleccionaron todos los usua-
       rios de la organización, y en “Properties”, pestaña “Profile”, se marcó el recuadro “Logon script” y se
       añadió el nombre del .bat (véase la figura 12). De esa manera, ya se mapearían las unidades nada más
       el usuario iniciará sesión y tendrían acceso a ellas, en el caso de contar con los permisos necesarios.




                                                       13
Figura 12: Local Script



Todos los usuarios que participan en un proyecto deben tener la posibilidad de leer y
modificar los archivos que forman parte del proyecto.

Los usuarios no podrán crear ni borrar archivos del proyecto. Esta función la realizará el
director del mismo.

C REACIÓN DE G RUPOS
Para el cumplimiento de los subapartados siguientes, a la hora darles los permisos a los usuarios, fue ne-
cesario crear grupos locales conforme a los diferentes tipos de permisos que tendrían en los directorios
de cada proyecto. Y a su vez, crear grupos globales para introducir estos grupos locales. También se crea-
ron de igual manera grupos local y global para los ejecutivos. Se diferenció entre grupos de Directivos y
de los Participantes.
A pesar de que, en cierto sentido, se duplican los grupos, está era la estrategia más efectiva en un
dominio al permitir mayor versatilidad a la hora de añadir, eliminar y mover usuarios según los permisos
que se les desee dar a los recursos y en para la propia organización. Además con el fin de organizar aún
mejor el dominio, estos grupos fueron introducidos en la unidad organizativa Group, donde ya estaba
situado el grupo global del que se ha hablado con anterioridad, Domain User.
Los pasos para crear grupos fueron los siguientes:
Se hizo clic sobre el botón para crear grupos y aparecía una ventana donde se poder elegir el tipo y
el ámbito del grupo: Seguridad/Distribución y Global/Local. En nuestro caso sólo hicimos uso de los de


                                                14
Seguridad, tanto Local como Global. Por supuesto en “Group name” se introdujo el nombre que se le
deseaba dar al grupo (véase la figura 13).




                                    Figura 13: Crear Grupo


El paso siguiente fue añadir miembros, para lo cual se fue a propiedades sobre el grupo correspondiente,
luego a la pestaña “Members”, y se presionó añadir. Si se deseaba buscar o comprobar los nombres de los
usuarios/grupos se podía pulsar “Check Names” y el nombre/s seleccionado/s aparecería/n en la ventana
(véase la figura 14).




                                 Figura 14: Añadir Miembros


Se procedió así para introducir, en primer lugar, a los usuarios en sus grupos globales correspondientes,
y luego a los grupos globales en sus grupos locales correspondientes, quedando el estado de los grupos
de la organización tal y cómo se muestra en la figura 15.




                                               15
Figura 15: OU Group


Bien, pues una vez creado estos grupos, como en este apartado los permisos son muy específicos para
los participantes, no es suficiente con los permisos normales sino que hay que darlos de un modo más
avanzado, por lo que se hizo uso de los permisos especiales.
Para que los usuarios participantes sólo pudieran leer y modificar (pero no crear ni borrar) en el direc-
torio del proyecto en el que participan, hubo que ir a “Properties” en la carpeta de dicho proyecto e ir a
“Advanced”.
Luego, en la ventana emergente, se desmarcó la herencia y se añadió al grupo correspondiente (“Add”)
y luego sobre “Edit”. Una vez allí, en “Apply onto” se seleccionó “Files Only” y se marcaron los permisos
correspondientes para sólo permitirles leer y escribir (véase la figura 16(a)). Finalmente, se añadió
nuevamente el grupo (“Add”), pero esta vez, al editarles los permisos, en “Apply onto” se seleccionó
“This folder and subfolders” y se seleccionaron los permisos (véase la figura 16(b)).




                        (a) Files Only                (b) This folder and subfolders

                                 Figura 16: Permisos Especiales




                                                 16
5.   Usuarios de la Organización
     Los usuarios implicados en los proyectos tendrán restringida la hora de acceso al sistema.


     Este subapartado ya fue descrito detalladamente en el apartado 1


     Les debe ser asignado un perfil flotante que no puedan modificar.

     En un principio, se creó en el servido en la unidad C: una carpeta compartida con el nombre de perfil,
     donde se alojaría el perfil flotante.
     Luego nos dirigimos a la máquina cliente con la finalidad de exportar un perfil de uno de los usuarios
     que ya se había modificado previamente a la manera deseada. Hubo que entrar como Administrador y
     lo siguiente fue seguir los pasos:


          Mi PC (clic derecho) → Propiedades → Opciones Avanzadas


     A continuación, donde se leía “Perfiles de usuario”, se pulsó “Configuración” (véase la figura 17(a)). Se
     seleccionar el perfil que se había modificado y se quería exportar, y luego se pulsó en “Copiar a” (véase
     la figura 17(b)).




                     (a) Configuración                                   (b) Copiar a

                                  Figura 17: Exportar Perfil de Usuario



                                                   17
En la nueva ventana emergente, se escribió (también se podría examinar si se deseará buscar el destino)
donde se deseaba exportar el perfil, por ejemplo, en nuestro caso, a la máquina servidor y a la carpe-
ta creada previamente para alojar el perfil, Ord07perfil (véase la figura 18(a)). También se podía
seleccionar con quién estaría permitido compartirlo.
Una vez hecho esto, se volvió a la máquina servidor, en las opciones de carpetas se mostraron los archivos
ocultos, y en la carpeta perfil se le cambió la extensión al archivo ntuser.dat por .man (véase la figura
18(b)) para hacerlo obligatorio.




                                   (a) Copiar Perfil en Servidor




                               (b) Cambiar la Extensión del Archivo

                             Figura 18: Perfil Flotante Obligatorio



Como último paso, en la herramienta Active Directory Users and Computer se seleccionaron todos los
usuarios de la organización, y en “Properties”, pestaña “Profile”, se marcó el recuadro “Profile Path” y se
añadió la ruta de la carpeta donde se almacenó el perfil (véase la figura 19).




                                                18
Figura 19: Profile Path


De esta manera el perfil sería obligatorio y flotante. Ningún usuario puede de esa manera cambiar su es-
critorio, accesos directos, fondo de pantalla, etc. Sino que sería establecido por el propio Administrador.




                                                19
6.     Directores de los proyectos
     Cada proyecto tiene al menos un director.

       Tienen control total sobre los archivos del proyecto que dirigen.

       Esto ya fue contemplado previamente, de hecho, se crearon grupos (véase apartado 4) especiales para los
       directores: en los grupos Globales de Directores (G***Dir) se introdujeron a los usuarios responsables
       de la dirección, y en los grupos Locales de Directores (L***Dir), se metieron a esos grupos Globales.
       De manera que a los Locales se le asignó el control total de los directorios de cuyos proyectos eran
       responsables (véase la figura 20).




                                       Figura 20: Grupo de Directores




                                                     20
7.   Ejecutivos de la organización
     Podrán acceder a cualquiera de los directorios de los proyectos en curso.

     Pueden leer la información de estos proyectos.

     No pueden alterar dicha información.

     Fueron asignados los permisos correspondientes de sólo lectura y ejecución, de igual forma que se
     ha explicado ya en apartados anteriores. Esto fue, dirigiéndose a los directorios de los proyectos, en
     “Sharing and Security”, en la pestaña “Security” y asignando los permisos que corresponden de sólo
     lectura y ejecución al grupo Local de Ejecutivos (LEje) para que se limiten únicamente a ello (véase la
     figura 21).




                                Figura 21: Permisos Para los Ejecutivos




                                                   21
8.   Resto de usuarios
     No dispondrán de ningún derecho de acceso a los directorios de los proyectos.

     Al establecerlo únicamente a ejecutivos, participantes y directores, nadie más tendrá acceso a dichos
     directorios. Por lo que no es necesario denegarlos, sino simplemente no asignarlos.




                                                  22
S ITUACIÓN   ACTUAL DE LA ORGANIZACIÓN

  Existen actualmente 3 proyectos en ejecución: auditorio, aeropuerto y parque.

  En el apartado 4 puede comprobarse que fueron creadas carpetas para cada proyecto y los correspon-
  dientes grupos para manipularlas según el tipo de acceso que tuvieran permitido.


  Relacionados con estos proyectos, la empresa dispone de 10 empleados, 5 en el turno de
  mañana (08:00-15:00) (emple1-emple5) y 5 en el grupo de tarde (14:00-21:00) (emple6-
  emple10).

  Siguiendo como referencia tanto los nombres de usuario como los horario designados en este apartado,
  fueron establecidas las horas de acceso (véase apartado 1) y creados los usuarios (véase apartado 2).


  Los empleados 1, 3, y 5 han sido contratados temporalmente (6 meses).

  Para expirarles la cuenta en 6 meses se seleccionó a los usuarios propuestos, y en “Properties”, pestaña
  “Account”, se marcó ‘‘Account expires” y en “End of ” se seleccionó la fecha de expiración (calculando 6
  meses).


  Hay 2 ejecutivos en la organización: ejec1 y ejec2.

  Este punto ya fue contemplado a la hora de crear tanto los usuarios como los grupos, para lo cual
  se crearon dos usuarios con los respectivos nombres, un grupo local y otro global para establecer sus
  permisos particulares.




                                                 23
ANEXOS
   Existen algunos pocos más formularios, pero no se presentan debido a la falta de espacio, y
a que se piensan que no son tan relevantes (ej. creación de OU, habilitar/deshabilitar usuario,
mapear unidad, ...).


A.        Usuarios
    En el script se tiene 3 maneras de crear usuarios. Y cada una de estas maneras tienen en común una serie
de métodos que están introducidas en un módulo, llamado “Module 1” y a continuación se describen:


      1    Module Module1
      2
      3        Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
      4
      5        Public GDomain As String = "dc=as07,dc=org"
      6
      7        Public GLenghtPwd As Integer = 4
      8
      9        Public GServer As String = "192.168.1.110"
     10
     11
     12        ’*************************************************************************
     13        ’ CREACIÓN Y ELIMINACIÓN DE USUARIOS : Form => Users, MultiUser
     14        ’*************************************************************************
     15
     16        Public Sub CreateUser(ByVal user As String, ByVal userOU As String, ByVal
                   groupOU As String, ByVal pwd As String, ByVal folder As String, ByVal
                   Message As Boolean)
     17            On Error GoTo Existe
     18            Err.Clear()
     19            Dim obj_OU, obj_User
     20            obj_OU = GetObject("LDAP://ou=" & userOU & "," & GDomain)
     21            obj_User = obj_OU.Create("user", "cn=" & user)
     22    Existe:
     23            If Err.Number = vbEmpty Then
     24                 obj_User.Put("sAMAccountName", "" & user)
     25                 obj_User.Put("HomeDirectory", GServer & "home" & user)
     26                 obj_User.Put("profilePath", GServer & "perfil")
     27                 obj_User.Put("homeDrive", "N:")
     28                 obj_User.Put("scriptPath", "unidad.bat")
     29                 obj_User.SetInfo()
     30                 obj_User.SetPassword(pwd)
     31                 AddUserGroup(user, userOU, groupOU)
     32                 UserEnable(user, userOU, vbFalse)
     33                 CreateFolder("C:home" & folder, vbFalse)
     34                 If Message Then
     35                     MsgBox("Usuario " & user & " Creado.", 64, "Éxito")
     36                 End If
     37            Else
     38                 If Message Then
     39                     MsgBox("Existe: " & user, 16, "Advertencia")
     40                 End If
     41            End If
     42        End Sub
     43
     44        Public Sub UserEnable(ByVal user As String, ByVal userOU As String, ByVal
                   disabled As Boolean)



                                                    24
45           Dim obj_User
 46           obj_User = GetObject("LDAP://cn=" & user & ",ou=" & userOU & "," & GDomain)
 47           obj_User.AccountDisabled = disabled
 48           obj_User.SetInfo()
 49       End Sub
 50
 51       Public Sub AddUserGroup(ByVal user As String, ByVal userOU As String, ByVal
              groupOU As String)
 52           Dim obj_Group, obj_User
 53           obj_Group = GetObject("LDAP://cn=Domain User,ou=" & groupOU & "," & GDomain)
 54           obj_User = GetObject("LDAP://cn=" & user & ",ou=" & userOU & ",dc=as07,dc=
                  org")
 55           If Not obj_Group.IsMember(obj_User.ADsPath) Then
 56               obj_Group.Add(obj_User.ADsPath)
 57           End If
 58       End Sub
 59
 60       Public Sub Expires(ByVal user As String, ByVal userOU As String, ByVal fecha As
              String)
 61           Dim obj_User
 62           obj_User = GetObject("LDAP://cn=" & user & ",ou=" & userOU & "," & GDomain)
 63           obj_User.AccountExpirationDate = fecha
 64           obj_User.SetInfo()
 65       End Sub
 66
 67       Public Sub DeleteUser(ByVal user As String, ByVal userOU As String, ByVal folder
               As String, ByVal Message As Boolean)
 68           On Error GoTo Existe
 69           Dim obj_OU = GetObject("LDAP://ou=" & userOU & "," & GDomain)
 70           obj_OU.Delete("user", "cn=" & user)
 71   Existe:
 72           If Err.Number = vbEmpty Then
 73                obj_OU.SetInfo()
 74                DeleteFolder("C:home" & Folder, vbFalse)
 75                If Message Then
 76                    MsgBox("Usuario " & user & " Eliminado.", 64, "Éxito")
 77                End If
 78           Else
 79                If Message Then
 80                    MsgBox("No Existe: " & user, 16, "Advertencia")
 81                End If
 82           End If
 83       End Sub
 84
 85       ’*************************************************************************
 86       ’ CREACIÓN Y BORRADO DE CARPETAS : Form => Users, Folder
 87       ’*************************************************************************
 88       Public Sub CreateFolder(ByVal archive As String, ByVal Message As Boolean)
 89           Dim obj_FSO, obj_Folder
 90           obj_FSO = CreateObject("Scripting.FileSystemObject")
 91           If obj_FSO.FolderExists(archive) Then
 92                If Message Then
 93                    MsgBox("Existe: " & archive, 16, "Advertencia")
 94                End If
 95           Else
 96                obj_Folder = obj_FSO.CreateFolder(archive)
 97                If Message Then
 98                    MsgBox("Carpeta " & archive & " Creada.", 64, "Éxito")
 99                End If
100           End If
101       End Sub
102
103       Public Sub DeleteFolder(ByVal archive As String, ByVal Message As Boolean)
104           Dim obj_FSO, obj_Folder
105           obj_FSO = CreateObject("Scripting.FileSystemObject")
106           If Not obj_FSO.FolderExists(archive) Then


                                            25
107                  If Message Then
     108                      MsgBox("No Existe: " & archive, 16, "Advertencia")
     109                  End If
     110           Else
     111               obj_Folder = obj_FSO.DeleteFolder(archive)
     112               If Message Then
     113                   MsgBox("Carpeta Borrada.", 64, "Éxito")
     114               End If
     115           End If
     116       End Sub
     117
     118   End Module



    Ahora se exponen los métodos específicos de cada manera. La primera manera, es la opción “Crear/Elimi-
nar” en la que el administrador crea o borra al usuario uno a uno. Teniendo en cuenta (aunque es común para
las 3 maneras), que al crearlo o borrarlo, también incluye su directorio home, lo añade o elimina del grupo
“Domain User” para poder tener permiso para el perfil fijo, para el script logon, para poder mapear los unidades
introducidas en el fichero por lotes antes descrito en el fichero unidad.bat.




      1        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.
                   EventArgs) Handles Button1.Click
      2            If RadioButton1.Checked() Then
      3                If TextBox1.Text.Length = 0 Then
      4                    MsgBox("Introduce el nombre de usuario.", 16, "Advertencia")
      5                Else
      6                    If TextBox2.Text.Length >= GLenghtPwd Then
      7                         CreateUser(CStr(TextBox1.Text), CStr(TextBox3.Text), CStr(
                                    TextBox4.Text), CStr(TextBox2.Text), CStr(TextBox1.Text()),
                                     vbTrue)
      8                    Else
      9                         MsgBox("Contraseña menor de " & GLenghtPwd & " caracteres.", 16,
                                     "Advertencia")
      10                   End If
      11               End If
      12           ElseIf RadioButton2.Checked() Then
      13               If TextBox1.Text.Length = 0 Then
      14                   MsgBox("Introduce el nombre de usuario.", 16, "Advertencia")
      15               Else
      16                   DeleteUser(CStr(TextBox1.Text), CStr(TextBox3.Text), CStr(TextBox1.
                                Text()), vbTrue)


                                                     26
17                 End If
     18            ElseIf RadioButton3.Checked Then
     19                 If TextBox1.Text.Length = 0 Then
     20                     MsgBox("Introduce el nombre de usuario.", 16, "Advertencia")
     21                 Else
     22                     If (TextBox5.Text.Length > 0) And (TextBox5.Text <> "mm/dd/yyyy")
                                 Then
     23                          Expires(CStr(TextBox1.Text), CStr(TextBox3.Text), CStr(TextBox5.
                                      Text))
     24                     Else
     25                          MsgBox("Introduce fecha de expiración.", 16, "Advertencia")
     26                     End If
     27                 End If
     28            Else
     29                 MsgBox("Selecciona: Crear, Borrar o Expirar", 16, "Advertencia")
     30            End If
     31        End Sub



    La segunda manera, es la opción “Crear Varios” en “Carga por Ficheros” que es donde el administrador crea
un fichero de texto separados los campos por “;”, donde cada campo representa el nombre, el password, la OU
del usuario, la OU del grupo y fecha de expiración (para tiempo nulo se deja en blanco).




      1        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.
                   EventArgs) Handles Button2.Click
      2            OpenFileDialog1.ShowDialog()
      3        End Sub
      4
      5        Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As
                   System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
      6            TextBox1.Text = OpenFileDialog1.FileName
      7        End Sub
      8
      9        Sub CreateOrDelete(ByVal user As String, ByVal userOU As String, ByVal groupOU
                   As String, ByVal pwd As String, ByVal folder As String, ByVal fecha As
                   String)
     10            If RadioButton1.Checked Then
     11                CreateUser(user, userOU, groupOU, pwd, user, vbFalse)
     12                If (fecha.Length > 0) And (fecha <> "mm/dd/yyyy") Then
     13                    Expires(user, userOU, fecha)
     14                End If



                                                     27
15           ElseIf RadioButton2.Checked Then
      16               DeleteUser(user, userOU, user, vbFalse)
      17           End If
      18       End Sub
      19
      20       Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.
                   EventArgs) Handles Button1.Click
      21           Dim archive As System.IO.StreamReader
      22           Dim field() As String
      23           Dim user, pwd, userOU, groupOU, fecha
      24           If My.Computer.FileSystem.FileExists(TextBox1.Text) Then
      25                archive = File.OpenText(TextBox1.Text)
      26                Do Until archive.EndOfStream
      27                    field = Split(archive.ReadLine(), ";")
      28                    user = field(0)
      29                    pwd = field(1)
      30                    userOU = field(2)
      31                    groupOU = field(3)
      32                    fecha = field(4)
      33                    CreateOrDelete(user, userOU, groupOU, pwd, user, fecha)
      34                Loop
      35                archive.Close()
      36           Else
      37                MsgBox("No Existe: " & TextBox1.Text, 16, "Advertencia")
      38           End If
      39       End Sub



     La tercera manera, es la opción “Crear Varios” en “Carga por Secuencia” pero esta vez el administrador
puede crear un número finito de usuarios con características similar, de manera que todos se llamen igual salvo
el no final que sería el identificatorio (ej. emple5). Se le deja la opción de elegir la palabra común, el no de
inicio, y la cantidad de usuarios a crer o borrar.




      1        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.
                   EventArgs) Handles Button3.Click
      2            Dim i, j As Integer
      3            Dim user, pwd, userOU, groupOU, fecha
      4            For i = 0 To TextBox3.Text - 1
      5                j = CInt(TextBox4.Text) + i
      6                user = CStr(TextBox2.Text) & j
      7                pwd = user


                                                     28
8               userOU = CStr(TextBox7.Text)
9               groupOU = CStr(TextBox5.Text)
10              fecha = CStr(TextBox6.Text)
11              CreateOrDelete(user, userOU, groupOU, pwd, user, fecha)
12       Next
13   End Sub




                                          29
B.         Grupos
    Dentro del script existen varios apartados referidos a los grupos. El primero es la opción “Crear/Eliminar”
que crea o borra grupos locales o globales.




      1         Sub CreateGroup()
      2             On Error GoTo Existe
      3             Const TYPE_GLOBAL = -2147483646
      4             Const TYPE_LOCAL = -2147483644
      5             Dim obj_OU, obj_Group
      6             obj_OU = GetObject("LDAP://ou=" & TextBox3.Text() & "," & GDomain)
      7             obj_Group = obj_OU.Create("group", "cn=" & TextBox1.Text())
      8     Existe:
      9             If Err.Number = vbEmpty Then
      10                 obj_Group.Put("sAMAccountName", "" & TextBox1.Text())
      11                 If RadioButton3.Checked() Then
      12                     obj_Group.Put("Grouptype", TYPE_GLOBAL)
      13                 ElseIf RadioButton4.Checked() Then
      14                     obj_Group.Put("Grouptype", TYPE_LOCAL)
      15                 End If
      16                 If TextBox2.Text.Length > 0 Then
      17                     obj_Group.Description = TextBox2.Text()
      18                 End If
      19                 obj_Group.SetInfo()
      20                 MsgBox("Grupo Creado.", 64, "Éxito")
      21            Else
      22                 MsgBox("Existe", 16, "Advertencia")
      23            End If
      24        End Sub
      25
      26        Sub DeleteGroup()
      27            On Error GoTo Existe
      28            Dim obj_OU
      29            obj_OU = GetObject("LDAP://ou=" & TextBox3.Text() & "," & GDomain)
      30            obj_OU.Delete("group", "cn=" & TextBox1.Text())
      31    Existe:
      32            If Err.Number = vbEmpty Then
      33                 obj_OU.SetInfo()
      34                 MsgBox("Grupo Eliminado.", 64, "Éxito")
      35            Else
      36                 MsgBox("No Existe", 16, "Advertencia")
      37            End If
      38        End Sub



                                                      30
39
      40       Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.
                   EventArgs) Handles Button1.Click
      41           If TextBox1.Text.Length > 0 Then
      42                If RadioButton1.Checked() Then
      43                    If RadioButton3.Checked() Or RadioButton4.Checked() Then
      44                         CreateGroup()
      45                    Else
      46                         MsgBox("Marca una casilla: Local o Global.", 16, "Advertencia")
      47                    End If
      48                ElseIf RadioButton2.Checked() Then
      49                    DeleteGroup()
      50                Else
      51                    MsgBox("Selecciona: Crear o Borrar.", 16, "Advertencia")
      52                End If
      53           Else
      54                MsgBox("Introduzca nombre del Grupo.", 16, "Advertencia")
      55           End If
      56       End Sub



    El segundo apartado está en la opción “Agregar Miembros”, donde el administrador primero señalaría
conque tipo de grupo va a trabajar. Si eligiese Local, pues en la etiqueta “Grupo” aparecerían todos los grupos
Locales, y podría señalar uno. Luego, en la etiqueta “usuario/Grupos” aparecerían todos los grupos Globales
que existen en la OU Group que existen, y para terminar si cliqueas en el botón de “Miembros” podrías ver
cuales miembros ya están incluidos, y así de esa manera podrías elegir uno que mejor te convenga.




      1        Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows
                   .Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress
      2            e.KeyChar() = ""
      3        End Sub
      4
      5        Private Sub ComboBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows
                   .Forms.KeyPressEventArgs) Handles ComboBox2.KeyPress
      6            e.KeyChar() = ""
      7        End Sub
      8
      9        Private Sub ComboBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows
                   .Forms.KeyPressEventArgs) Handles ComboBox3.KeyPress
      10           e.KeyChar() = ""
      11       End Sub
      12




                                                      31
13   Private Sub ListingGroup()
14       Const TYPE_GLOBAL = -2147483646
15       Const TYPE_LOCAL = -2147483644
16       ComboBox1.Items.Clear()
17       Dim obj_OU
18       obj_OU = GetObject("LDAP://ou=" & TextBox5.Text() & "," & GDomain)
19       For Each obj_Member In obj_OU
20            If (LCase(obj_Member.Class) = "group") Then
21                If (RadioButton3.Checked) Then
22                    If (obj_Member.Grouptype = TYPE_GLOBAL) Then
23                        ComboBox1.Items.Add(obj_Member.sAMAccountName)
24                    End If
25                ElseIf (RadioButton4.Checked) Then
26                    If (obj_Member.Grouptype = TYPE_LOCAL) Then
27                        ComboBox1.Items.Add(obj_Member.sAMAccountName)
28                    End If
29                End If
30            End If
31       Next
32   End Sub
33
34   Private Sub ListingGroupGlobal()
35       Const TYPE_GLOBAL = -2147483646
36       ComboBox2.Items.Clear()
37       Dim obj_OU
38       obj_OU = GetObject("LDAP://ou=" & TextBox5.Text() & "," & GDomain)
39       For Each obj_Member In obj_OU
40            If (LCase(obj_Member.Class) = "group") Then
41                If (obj_Member.Grouptype = TYPE_GLOBAL) Then
42                    ComboBox2.Items.Add(obj_Member.sAMAccountName)
43                End If
44            End If
45       Next
46   End Sub
47
48   Private Sub ListingUsers()
49       ComboBox2.Items.Clear()
50       Dim obj_Group
51       obj_Group = GetObject("LDAP://cn=Domain User,ou=" & TextBox5.Text() & "," &
              GDomain)
52       For Each obj_Member In obj_Group.Members
53            ComboBox2.Items.Add(obj_Member.sAMAccountName)
54       Next
55   End Sub
56
57   Private Sub ListingMember()
58       ComboBox3.Items.Clear()
59       Dim obj_Group
60       obj_Group = GetObject("LDAP://cn=" & ComboBox1.Text() & ",ou=" & TextBox5.
              Text() & "," & GDomain)
61       For Each obj_Member In obj_Group.Members
62            ComboBox3.Items.Add(obj_Member.sAMAccountName)
63       Next
64   End Sub
65
66   Sub AddUserGroup()
67       Dim obj_Group, obj_User
68       obj_Group = GetObject("LDAP://cn=" & ComboBox1.Text() & ",ou=" & TextBox5.
              Text() & "," & GDomain)
69       obj_User = GetObject("LDAP://cn=" & ComboBox2.Text() & ",ou=" & TextBox4.
              Text() & "," & GDomain)
70       If Not obj_Group.IsMember(obj_User.ADsPath) Then
71            obj_Group.Add(obj_User.ADsPath)
72            MsgBox("Añadido al Grupo", 64, "Éxito")
73       Else
74            MsgBox("Existe", 16, "Advertencia")


                                       32
75       End If
 76   End Sub
 77
 78   Sub RemoveUserGroup()
 79       Dim obj_Group, obj_User
 80       obj_Group = GetObject("LDAP://cn=" & ComboBox1.Text() & ",ou=" & TextBox5.
               Text() & "," & GDomain)
 81       obj_User = GetObject("LDAP://cn=" & ComboBox2.Text() & ",ou=" & TextBox4.
               Text() & "," & GDomain)
 82       If obj_Group.IsMember(obj_User.ADsPath) Then
 83            obj_Group.Remove(obj_User.ADsPath)
 84            MsgBox("Eliminado del Grupo", 64, "Éxito")
 85       Else
 86            MsgBox("No Existe", 16, "Advertencia")
 87       End If
 88   End Sub
 89
 90   Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e
          As System.EventArgs) Handles RadioButton3.CheckedChanged
 91       ListingGroup()
 92       ListingUsers()
 93   End Sub
 94
 95   Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e
          As System.EventArgs) Handles RadioButton4.CheckedChanged
 96       ListingGroup()
 97       ListingGroupGlobal()
 98   End Sub
 99
100   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.
          EventArgs) Handles Button1.Click
101       If (ComboBox1.Text.Length > 0) And (ComboBox2.Text.Length > 0) Then
102            If RadioButton1.Checked Then
103                If RadioButton3.Checked Or RadioButton4.Checked Then
104                     AddUserGroup()
105                Else
106                     MsgBox("Selecciona: Local o Global", 16, "Advertencia")
107                End If
108            ElseIf RadioButton2.Checked Then
109                RemoveUserGroup()
110            Else
111                MsgBox("Selecciona: Añadir o Eliminar", 16, "Advertencia")
112            End If
113       ElseIf (ComboBox1.Text.Length > 0) Then
114            MsgBox("Selecciona Usuario/Grupo.", 16, "Advertencia")
115       ElseIf (ComboBox2.Text.Length > 0) Then
116            MsgBox("Selecciona un Grupo.", 16, "Advertencia")
117       Else
118            If RadioButton3.Checked Or RadioButton4.Checked Then
119                MsgBox("Selecciona un Grupo y Usuario/Grupo.", 16, "Advertencia")
120            Else
121                MsgBox("Selecciona el tipo de Grupo: Global o Local.", 16, "
                        Advertencia")
122            End If
123       End If
124   End Sub
125
126   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.
          EventArgs) Handles Button2.Click
127       If (ComboBox1.Text.Length() > 0) Then
128            ListingMember()
129       Else
130            MsgBox("Selecciona un Grupo.", 16, "Advertencia")
131       End If
132   End Sub




                                         33
C.        Carpeta
    Para la creación o eliminación de carpetas se añadió tales métodos en el módulo “Module1”, debido a que
eran métodos importantes y necesarios para la creación o eliminación de usuarios. En cambio, en el formulario
de carpeta tan sólo se dejó el método de mover.




      1       Sub MoveFolder()
      2            Dim obj_FSO, obj_Folder
      3            obj_FSO = CreateObject("Scripting.FileSystemObject")
      4            obj_Folder = obj_FSO.MoveFolder(TextBox1.Text, TextBox2.Text)
      5            MsgBox("Carpeta Movida.", 64, "Éxito")
      6        End Sub
      7
      8        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.
                   EventArgs) Handles Button1.Click
      9            If RadioButton1.Checked Then
     10                 If TextBox1.Text.Length = 0 Then
     11                     MsgBox("Introduce la ruta Origen.", 16, "Advertencia")
     12                 Else
     13                     Me.ToolStripStatusLabel1.Text = "Creando Carpeta: " & CStr(TextBox1.
                                Text)
     14                     CreateFolder(CStr(TextBox1.Text), vbTrue)
     15                     Me.ToolStripStatusLabel1.Text = "Carpeta: " & CStr(TextBox1.Text) &
                                " Creada"
     16                 End If
     17            ElseIf RadioButton2.Checked() Then
     18                 If TextBox1.Text.Length = 0 Then
     19                     MsgBox("Introduce la ruta Origen.", 16, "Advertencia")
     20                 Else
     21                     DeleteFolder(CStr(TextBox1.Text), vbTrue)
     22                 End If
     23            ElseIf RadioButton3.Checked Then
     24                 If (TextBox1.Text.Length = 0) Or (TextBox2.Text.Length = 0) Then
     25                     MsgBox("Introduce la ruta Origen y Destino.", 16, "Advertencia")
     26                 Else
     27                     MoveFolder()
     28                 End If
     29            Else
     30                 MsgBox("Marca una casilla: Crear, Borrar o Mover", 16, "Advertencia")
     31            End If
     32        End Sub




                                                     34
D.        Security Policy
    No se pudo acabar con éxito en su totalidad, debido a que no se encuentra solución al tratamiento de los
días y minutos. Al final se optó sólo por utilizar las que fueron posibles manipular.




      1       Sub Configuration()
      2           Dim obj_Domain
      3           obj_Domain = GetObject("LDAP://" & GDomain)
      4           obj_Domain.Put("minPwdLength", CInt(TextBox3.Text()))
      5           ’obj_Domain.Put("minPwdAge", CInt(TextBox2.Text()))
      6           ’obj_Domain.Put("maxPwdAge", CLng(TextBox1.Text()) * 86400)
      7           obj_Domain.Put("pwdHistoryLength", CInt(TextBox4.Text()))
      8           ’obj_Domain.Put("lockoutDuration", TextBox5.Text())
      9           obj_Domain.Put("lockoutThreshold", CInt(TextBox6.Text()))
     10           ’obj_Domain.Put("lockoutObservationWindow", TextBox7.Text())
     11           obj_Domain.SetInfo()
     12       End Sub
     13
     14       Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.
                  EventArgs) Handles Button1.Click
     15           Configuration()
     16           GLenghtPwd = TextBox3.Text
     17       End Sub




                                                    35
E.         Compartir
    Existe otro formulario que sirve para compartir carpetas. En este formulario se añade la ruta de la carpeta,
el nombre que recibirá el recurso, y una descripción que es opcional.




      1        Sub CreateShare()
      2            Const FILE_SHARE = 0
      3            Const MAXIMUM_CONNECTIONS = 25
      4            Dim objWMIService, errReturn, objNewShare
      5            objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!"
                       & GServer & "rootcimv2")
      6            objNewShare = objWMIService.Get("Win32_Share")
      7            errReturn = objNewShare.Create(CStr(TextBox1.Text), CStr(TextBox2.Text),
                       FILE_SHARE, MAXIMUM_CONNECTIONS, CStr(TextBox3.Text))
      8            MsgBox("Recurso Compartido.", 64, "Éxito")
      9        End Sub
      10
      11       Function ExistsFolder() As Boolean
      12           Dim obj_FSO
      13           obj_FSO = CreateObject("Scripting.FileSystemObject")
      14           If obj_FSO.FolderExists(TextBox1.Text) Then
      15                ExistsFolder = True
      16           Else
      17                ExistsFolder = False
      18           End If
      19       End Function
      20
      21       Function ExistsFile() As Boolean
      22           Dim obj_FSO
      23           obj_FSO = CreateObject("Scripting.FileSystemObject")
      24           If obj_FSO.FileExists(TextBox1.Text) Then
      25                ExistsFile = True
      26           Else
      27                ExistsFile = False
      28           End If
      29       End Function
      30
      31       Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.
                   EventArgs) Handles Button1.Click
      32           If TextBox1.Text.Length = 0 Then
      33               MsgBox("Introduzca la ruta de la carpeta o fichero a compartir.", 16, "
                           Advertencia")
      34           ElseIf TextBox2.Text.Length = 0 Then



                                                      36
35             MsgBox("Introduzca el nombre que desea para el recurso compartido.", 16,
                    "Advertencia")
36      Else
37           If ExistsFile() Or ExistsFolder() Then
38               CreateShare()
39           Else
40               MsgBox("No existe", 16, "Advertencia")
41           End If
42       End If
43   End Sub




                                         37
F.     Permisos NTFS
    Para poder otorgar permisos especiales se hizo necesaria la herramienta “Xcacls.vbs”. Para poder utilizarla,
primero se tuvo que instalar, y cuando solicitó una ubicación se seleccionó C:Windows. Luego, hubo que
cambiar el motor de secuencias de comandos predeterminado de Wscript a Cscript. Para conseguirlo, se tuvo
que escribir en la línea de comandos cscript.exe /h:cscript. El resto fue utilizar WScript.shell.




      1        Sub Permission(ByVal Path As String, ByVal userOrGroup As String, ByVal permiso
                   As String)
      2            Dim Obj_Shell
      3            Obj_Shell = CreateObject("WScript.shell")
      4            Obj_Shell.Run("icacls " & Path & " /Grant:r " & userOrGroup & ":" & permiso)
      5        End Sub
      6
      7        Function Simple()
      8            If rdbControlT.Checked Then
      9                 Simple = "F"
      10           ElseIf rdbModify.Checked Then
      11                Simple = "M"
      12           ElseIf rdbReadExejute.Checked Then
      13                Simple = "RX"
      14           ElseIf rdbRead.Checked Then
      15                Simple = "R"
      16           ElseIf rdbWrite.Checked Then
      17                Simple = "W"
      18           ElseIf rdbNone.Checked Then
      19                Simple = "N"
      20           Else
      21                Simple = ""
      22           End If
      23       End Function
      24
      25       Sub add(ByRef cadena As String, ByVal cadenaAdd As String, ByRef posicion As
                   Boolean)
      26           If posicion Then
      27                cadena = cadena & cadenaAdd
      28                posicion = False
      29           Else
      30                cadena = cadena & "," & cadenaAdd
      31           End If
      32       End Sub
      33




                                                      38
34   Function Specific()
35       Dim aux As String
36       Dim first As Boolean
37       first = True
38       aux = "("
39       If chkListing.Checked Then
40            add(aux, "RD", first)
41       End If
42       If chkAddFile.Checked Then
43            add(aux, "WD", first)
44       End If
45       If chkAddSubDirectory.Checked Then
46            add(aux, "AD", first)
47       End If
48       If chkReadAttribute.Checked Then
49            add(aux, "RA", first)
50       End If
51       If chkWriteAttribute.Checked Then
52            add(aux, "WD", first)
53       End If
54       If chkExecute.Checked Then
55            add(aux, "X", first)
56       End If
57       If aux.Length = 1 Then
58            aux = ""
59       Else
60            aux = aux & ")"
61       End If
62       Specific = aux
63   End Function
64
65   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.
         EventArgs) Handles Button1.Click
66       Dim permiso, permiso2 As String
67       permiso = Simple()
68       permiso2 = Specific()
69       If txtPath.Text.Length > 0 And txtUserGroup.Text.Length > 0 Then
70            If permiso.Length = 0 And permiso2.Length = 0 Then
71                MsgBox("Selecciona un permiso.", 16, "Advertencia")
72            ElseIf permiso2.Length > 0 Then
73                Permission(CStr(txtPath.Text), CStr(txtUserGroup.Text), permiso2)
74            Else
75                Permission(CStr(txtPath.Text), CStr(txtUserGroup.Text), permiso)
76            End If
77       Else
78            MsgBox("Rellene ruta y usuario/Grupo.", 16, "Advertencia")
79       End If
80   End Sub




                                        39
G.        Permiso Share
    Este formulario es un complementario del anexo E. Ya que una vez compartida la carpeta, se le añade a
un grupo o a un usurio una serie de permisos a esa carpeta (recurso). En este formulario al igual que se hizo
en los permisos NTFS, nos tuvimos que valer de un recurso externo. En este caso, fue RMTSHAR el cual es un
archivo que deberá estár presente en la localización del script para que pueda funcionar.




      1       Sub AddPermission(ByVal ShareName As String, ByVal userOrGroup As String, ByVal
                  permiso As String)
      2            Dim Obj_Shell
      3            Obj_Shell = CreateObject("WScript.shell")
      4            Obj_Shell.Run("RMTSHARE.exe " & GServer & "" & ShareName & " /GRANT " &
                       userOrGroup & ":" & permiso, 3)
      5            MsgBox("Permiso Concedido.", 64, "Éxito")
      6        End Sub
      7
      8        Sub mierda()
      9            Dim Obj_Shell
     10            Obj_Shell = CreateObject("WScript.shell")
     11            Obj_Shell.Run("cmd /k cd c: | dir,3, true")
     12            Obj_Shell = Nothing
     13            MsgBox("Permiso Concedido.", 64, "Éxito")
     14        End Sub
     15
     16        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.
                   EventArgs)
     17            mierda()
     18        End Sub
     19
     20        Sub DeletePermission(ByVal ShareName As String, ByVal userOrGroup As String)
     21            Dim Obj_Shell
     22            Obj_Shell = CreateObject("WScript.shell")
     23            Obj_Shell.Run("rmtshare " & GServer & "" & ShareName & " /REMOVE " &
                       userOrGroup)
     24            MsgBox("Permiso Restring.", 64, "Éxito")
     25        End Sub
     26
     27        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.
                   EventArgs) Handles Button1.Click
     28            If TextBox1.Text.Length = 0 Then
     29                MsgBox("Rellene nombre del Recurso.", 16, "Advertencia")
     30            ElseIf TextBox2.Text.Length = 0 Then



                                                     40
31              MsgBox("Rellene nombre del Grupo/Usuario.", 16, "Advertencia")
32       Else
33           If RadioButton1.Checked Then
34               If RadioButton3.Checked Then
35                    AddPermission(CStr(TextBox1.Text), CStr(TextBox2.Text), "R")
36               ElseIf RadioButton4.Checked Then
37                    AddPermission(CStr(TextBox1.Text), CStr(TextBox2.Text), "C")
38               ElseIf RadioButton5.Checked Then
39                    AddPermission(CStr(TextBox1.Text), CStr(TextBox2.Text), "F")
40               Else
41                    MsgBox("Seleccione un tipo de permiso.", 16, "Advertencia")
42               End If
43           ElseIf RadioButton2.Checked Then
44               DeletePermission(CStr(TextBox1.Text), CStr(TextBox2.Text))
45           Else
46               MsgBox("Seleccione Añadir/Eliminar.", 16, "Advertencia")
47           End If
48       End If
49   End Sub




                                          41

Más contenido relacionado

Destacado

Plainte contre la C.E.N.A
Plainte contre la C.E.N.APlainte contre la C.E.N.A
Plainte contre la C.E.N.Ae-citoyen
 
Conférence de presse concours photo wiki loves africa 2014 en côte d'ivoire
Conférence de presse concours photo wiki loves africa 2014 en côte d'ivoireConférence de presse concours photo wiki loves africa 2014 en côte d'ivoire
Conférence de presse concours photo wiki loves africa 2014 en côte d'ivoireCyriac Gbogou
 
Consumir menos, vivir mejor. ideas pr†cticas para un consumo m†s consciente (...
Consumir menos, vivir mejor. ideas pr†cticas para un consumo m†s consciente (...Consumir menos, vivir mejor. ideas pr†cticas para un consumo m†s consciente (...
Consumir menos, vivir mejor. ideas pr†cticas para un consumo m†s consciente (...Silvina Mei
 
Référencement formation imagenea
Référencement formation imageneaRéférencement formation imagenea
Référencement formation imageneaYoussef El Jaya
 
La veille de Red Guy du 11.12.13 - L'autodérision
La veille de Red Guy du 11.12.13 - L'autodérisionLa veille de Red Guy du 11.12.13 - L'autodérision
La veille de Red Guy du 11.12.13 - L'autodérisionRed Guy
 

Destacado (20)

Administracion de Sistemas
Administracion de SistemasAdministracion de Sistemas
Administracion de Sistemas
 
Codigos Deontologicos: Informatica vs Periodismo
Codigos Deontologicos: Informatica vs PeriodismoCodigos Deontologicos: Informatica vs Periodismo
Codigos Deontologicos: Informatica vs Periodismo
 
Delitos informaticos en el Codigo Penal
Delitos informaticos en el Codigo PenalDelitos informaticos en el Codigo Penal
Delitos informaticos en el Codigo Penal
 
Intrusismo En Informatica
Intrusismo En InformaticaIntrusismo En Informatica
Intrusismo En Informatica
 
Codigo Deontologico y Aspectos Legales: Conceptos y Examen Tipo Test
Codigo Deontologico y Aspectos Legales: Conceptos y Examen Tipo TestCodigo Deontologico y Aspectos Legales: Conceptos y Examen Tipo Test
Codigo Deontologico y Aspectos Legales: Conceptos y Examen Tipo Test
 
Administracion de Sistemas
Administracion de SistemasAdministracion de Sistemas
Administracion de Sistemas
 
Glosario y Mapa conceptual sobre LOPD
Glosario y Mapa conceptual sobre LOPDGlosario y Mapa conceptual sobre LOPD
Glosario y Mapa conceptual sobre LOPD
 
Funciones oracle sql
Funciones oracle sqlFunciones oracle sql
Funciones oracle sql
 
Cuestionario sobre Contratacion Recursos Humanos
Cuestionario sobre Contratacion Recursos HumanosCuestionario sobre Contratacion Recursos Humanos
Cuestionario sobre Contratacion Recursos Humanos
 
Licitacion SAE
Licitacion SAELicitacion SAE
Licitacion SAE
 
Proyecto : Human-computer interaction
Proyecto : Human-computer interactionProyecto : Human-computer interaction
Proyecto : Human-computer interaction
 
Programme de Paris 2 0 le Lundi 8 mars au Matin
Programme de Paris 2 0 le Lundi 8 mars au MatinProgramme de Paris 2 0 le Lundi 8 mars au Matin
Programme de Paris 2 0 le Lundi 8 mars au Matin
 
Plainte contre la C.E.N.A
Plainte contre la C.E.N.APlainte contre la C.E.N.A
Plainte contre la C.E.N.A
 
Conférence de presse concours photo wiki loves africa 2014 en côte d'ivoire
Conférence de presse concours photo wiki loves africa 2014 en côte d'ivoireConférence de presse concours photo wiki loves africa 2014 en côte d'ivoire
Conférence de presse concours photo wiki loves africa 2014 en côte d'ivoire
 
Lastic2
Lastic2Lastic2
Lastic2
 
M1 mis 2014-2015
M1 mis 2014-2015M1 mis 2014-2015
M1 mis 2014-2015
 
Consumir menos, vivir mejor. ideas pr†cticas para un consumo m†s consciente (...
Consumir menos, vivir mejor. ideas pr†cticas para un consumo m†s consciente (...Consumir menos, vivir mejor. ideas pr†cticas para un consumo m†s consciente (...
Consumir menos, vivir mejor. ideas pr†cticas para un consumo m†s consciente (...
 
Référencement formation imagenea
Référencement formation imageneaRéférencement formation imagenea
Référencement formation imagenea
 
La veille de Red Guy du 11.12.13 - L'autodérision
La veille de Red Guy du 11.12.13 - L'autodérisionLa veille de Red Guy du 11.12.13 - L'autodérision
La veille de Red Guy du 11.12.13 - L'autodérision
 
Sénégal
SénégalSénégal
Sénégal
 

Similar a Administracion de Sistemas

Actividad 4.equipo3.yulenny arrubla,daniel gomez,nicolas saldarriaga.ficha 32...
Actividad 4.equipo3.yulenny arrubla,daniel gomez,nicolas saldarriaga.ficha 32...Actividad 4.equipo3.yulenny arrubla,daniel gomez,nicolas saldarriaga.ficha 32...
Actividad 4.equipo3.yulenny arrubla,daniel gomez,nicolas saldarriaga.ficha 32...Daniel Patiño
 
Actividad Windows Essentials I.
Actividad Windows Essentials I.Actividad Windows Essentials I.
Actividad Windows Essentials I.camilaml
 
Windows Server 2012- Taller de habilidades
Windows Server 2012- Taller de habilidadesWindows Server 2012- Taller de habilidades
Windows Server 2012- Taller de habilidadesjcausil1
 
Gestión de Unidades Organizativas y Usuarios
Gestión de Unidades Organizativas y UsuariosGestión de Unidades Organizativas y Usuarios
Gestión de Unidades Organizativas y UsuariosDaniel Valdez
 
Admin.de usuarion-con-windows nt-y-2003-server
Admin.de usuarion-con-windows nt-y-2003-serverAdmin.de usuarion-con-windows nt-y-2003-server
Admin.de usuarion-con-windows nt-y-2003-serverJose Rivera Magallanes
 
tareaAdmin.de usuarion-con-windows nt-y-2003-server
tareaAdmin.de usuarion-con-windows nt-y-2003-servertareaAdmin.de usuarion-con-windows nt-y-2003-server
tareaAdmin.de usuarion-con-windows nt-y-2003-serverMaariiOo MeeDiinaa
 
Active directory
Active directoryActive directory
Active directoryjuanan10
 
Fundamentos del sistema operativo Windows
Fundamentos del sistema operativo WindowsFundamentos del sistema operativo Windows
Fundamentos del sistema operativo WindowsRastaAliria
 
configuraciones
configuracionesconfiguraciones
configuracionesKarina LR
 
análisis y diseño orientado a objetos
análisis y diseño orientado a objetosanálisis y diseño orientado a objetos
análisis y diseño orientado a objetosAngelGutierrez164
 
6. configuracion de los sistemas operativos
6. configuracion de los sistemas operativos6. configuracion de los sistemas operativos
6. configuracion de los sistemas operativosGiovani Ramirez
 
Anexo 19 practica 4 administracion de un sistema operativo comercial - Emmanuel
Anexo 19 practica 4 administracion de un sistema operativo comercial - EmmanuelAnexo 19 practica 4 administracion de un sistema operativo comercial - Emmanuel
Anexo 19 practica 4 administracion de un sistema operativo comercial - EmmanuelGrisaul OROZCO MEDINA
 
Anexo 19 practica 4 administracion de un sistema operativo comercial - Cris
Anexo 19 practica 4 administracion de un sistema operativo comercial - CrisAnexo 19 practica 4 administracion de un sistema operativo comercial - Cris
Anexo 19 practica 4 administracion de un sistema operativo comercial - CrisGrisaul OROZCO MEDINA
 

Similar a Administracion de Sistemas (20)

Actividad 4.equipo3.yulenny arrubla,daniel gomez,nicolas saldarriaga.ficha 32...
Actividad 4.equipo3.yulenny arrubla,daniel gomez,nicolas saldarriaga.ficha 32...Actividad 4.equipo3.yulenny arrubla,daniel gomez,nicolas saldarriaga.ficha 32...
Actividad 4.equipo3.yulenny arrubla,daniel gomez,nicolas saldarriaga.ficha 32...
 
Actividad Windows Essentials I.
Actividad Windows Essentials I.Actividad Windows Essentials I.
Actividad Windows Essentials I.
 
Act4
Act4Act4
Act4
 
Windows Server 2012- Taller de habilidades
Windows Server 2012- Taller de habilidadesWindows Server 2012- Taller de habilidades
Windows Server 2012- Taller de habilidades
 
actividad # 4
actividad # 4actividad # 4
actividad # 4
 
Paso 1
Paso 1Paso 1
Paso 1
 
Gestión de Unidades Organizativas y Usuarios
Gestión de Unidades Organizativas y UsuariosGestión de Unidades Organizativas y Usuarios
Gestión de Unidades Organizativas y Usuarios
 
Admin.de usuarion-con-windows nt-y-2003-server
Admin.de usuarion-con-windows nt-y-2003-serverAdmin.de usuarion-con-windows nt-y-2003-server
Admin.de usuarion-con-windows nt-y-2003-server
 
tareaAdmin.de usuarion-con-windows nt-y-2003-server
tareaAdmin.de usuarion-con-windows nt-y-2003-servertareaAdmin.de usuarion-con-windows nt-y-2003-server
tareaAdmin.de usuarion-con-windows nt-y-2003-server
 
Active directory
Active directoryActive directory
Active directory
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
Fundamentos del sistema operativo Windows
Fundamentos del sistema operativo WindowsFundamentos del sistema operativo Windows
Fundamentos del sistema operativo Windows
 
configuraciones
configuracionesconfiguraciones
configuraciones
 
análisis y diseño orientado a objetos
análisis y diseño orientado a objetosanálisis y diseño orientado a objetos
análisis y diseño orientado a objetos
 
6. configuracion de los sistemas operativos
6. configuracion de los sistemas operativos6. configuracion de los sistemas operativos
6. configuracion de los sistemas operativos
 
Anexo 19 practica 4 administracion de un sistema operativo comercial - Emmanuel
Anexo 19 practica 4 administracion de un sistema operativo comercial - EmmanuelAnexo 19 practica 4 administracion de un sistema operativo comercial - Emmanuel
Anexo 19 practica 4 administracion de un sistema operativo comercial - Emmanuel
 
Anexo 19 practica 4 administracion de un sistema operativo comercial - Cris
Anexo 19 practica 4 administracion de un sistema operativo comercial - CrisAnexo 19 practica 4 administracion de un sistema operativo comercial - Cris
Anexo 19 practica 4 administracion de un sistema operativo comercial - Cris
 
Practica int 2
Practica int 2Practica int 2
Practica int 2
 
Actividad 5
Actividad 5Actividad 5
Actividad 5
 

Último

CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 

Último (20)

CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 

Administracion de Sistemas

  • 1. Administración de Sistemas Usuarios y Protección en Windows 2003 I TAHISA M. D ÍAZ D ÍAZ M ARÍA D. BATISTA G ALVÁN E SCUELA T ÉCNICA S UPERIOR DE I NGENIERÍA I NFORMÁTICA Universidad de La Laguna
  • 2. R ESUMEN . El objetivo del presente informe es describir y explicar los pasos se- guidos para la realización de la tercera práctica de laboratorio de la asignatura de Administración de Sistemas. En este caso, la práctica consistía en aprender a utilizar las herramientas para la ges- tión y protección de usuarios que proporciona Windows Server 2003, concretamente se hizo un amplio uso del Active Directory. Por lo tanto, se trabajó sobre una máquina virtual que actuaba como servidor, con Windows Servers 2003 como sistema opera- tivo al que se le instaló y configuró el servicio DNS para posteriormente instalarle el Active Directory; la máquina virtual que operaría como cliente llevaba instalado el Windows XP. Se planteaba una organización simulada, tal y como ocurrió en las prácticas anteriores, a la que administrar cuestiones tales como el acceso a los re- cursos, la protección y la seguridad, lo que conlleva manejar operaciones como la creación de usuarios y grupos, establecer reglas de seguridad, el mapeo de unidades, entre otras tantas que se describirán a medida avance el informe. La estructura de dicho informe está determinada por las cuestiones propuestas en la práctica, a las que se irá respondiendo y describiendo los procesos para su consecución en el orden que se plantean. Con el fin de facilitar, automatizar y, por consiguiente, agilizarle estas operaciones al administrador, se creó una aplicación en modo gráfico a base de scripts elabora- dos con el lenguaje VBScript, que se adjunta en el presente informe. Aunque en los apartados se explica como se llevo a cabo la práctica de manera gráfica, lo cierto se utilizó dicho script para completar todas las tareas. 1
  • 3. Índice 1. Sistemas 3 2. Contraseñas 5 3. Directorio privado de los usuarios 9 4. Proyectos de la organización 13 5. Usuarios de la Organización 17 6. Directores de los proyectos 20 7. Ejecutivos de la organización 21 8. Resto de usuarios 22 Anexos 24 A. Usuarios 24 B. Grupos 30 C. Carpeta 34 D. Security Policy 35 E. Compartir 36 F. Permisos NTFS 38 G. Permiso Share 40 2
  • 4. P OLÍTICA DE S EGURIDAD DE LA O RGANIZACIÓN 1. Sistemas Cualquier usuario debe poder apagar el sistema. En este primer punto, al menos en lo que respecta a conceder al usuario el privilegio de apagar el sistema, no fue necesario configurar nada puesto que el usuario ya tiene por defecto ese privilegio de poder apagar el equipo local. Los usuarios tienen restringidas las horas de acceso al sistema. Por su parte, para restringir las horas de acceso al sistema a los usuarios, es obvio que previamente fue necesario crear a los usuarios, lo que se explicará más adelante (véase apartado 2). Por tanto, se parte de la idea que ya están creados los usuarios. Así pues se siguieron los pasos: Start → Administrative Tools → Active Directory Users and Computer Se seleccionó la unidad organizativa que se creó para almacenar a los usuarios de la organización (a la que se le llamó People) y se seleccionaron los usuarios del turno de mañana (pues se le asignaron las horas según su turno, tal y cómo se propone en el punto ??. (a) Properties (b) Account Figura 1: Properties → Account 3
  • 5. Una vez seleccionados, se desplegó con el botón derecho un menú en el que se eligió “Properties”. Luego en la pestaña “Account” se marcó la casilla “Logon hour” y, a continuación, el botón con el mismo nombre (véase la figura 1). En la ventana que apareció se seleccionaron las horas correspondientes. Una vez hecho se marcó la opción “Logon Permitted” (véase la figura 2). Figura 2: Logon Hour Finalmente se procedió de igual forma para los del grupo de tarde. 4
  • 6. 2. Contraseñas A fin de facilitar la gestión, asignar como contraseña el nombre del usuario. Como la contraseña se estableció al crear a un usuario, se explicará en este subapartado el proceso de creación de usuario. C REACIÓN DE U SUARIOS Se siguieron los pasos siguientes: Start → Administrative Tools → Active Directory Users and Computer En la unidad organizativa People, al clicar sobre el botón crear usuario aparecía una nueva ventana donde se establecieron datos básicos sobre el usuario, como su nombre, apellidos, nombre de la cuenta, etc. (véase Figura 3(a)). Apretando siguiente, aparecía una nueva ventana (véase Figura 3(b)) donde establecer la contraseña y algunas características como, por ejemplo, si queremos que la contraseña nunca expire. En ese punto, introducimos la contraseña (el propio nombre de usuario, tal y como se especifica en este apartado), y no se marcó ninguna de las opciones, puesto que se configurarían posteriormente siguiendo las pautas que va marcando el guión. (a) Datos del Usuario (b) Contraseña Figura 3: New Object : User Finalmente, clicando “next” y a continuación, “finish”, se creó el usuario y apareció en la unidad organi- zativa. Este proceso se hizo con cada usuario, desde emple1 hasta emple10 y ejec1 y ejec2 (véase figura 4). 5
  • 7. Figura 4: OU People Los usuarios deben cambiar las contraseñas cada tres meses. Los usuarios no pueden cambiar las contraseñas hasta 2 semanas después de haberla cambiado. No se permiten contraseñas en blanco. Longitud mínima: 4 caracteres. La nueva contraseña no debe coincidir con las dos últimas introducidas por el usuario. Los siguientes subapartados fueron subsanados siguiendo los pasos: Start → Administrative Tools → Domain Security Policy Y luego, en dicha herramienta, en el árbol que aparece a la izquierda, se eligió: Account Policies → Password Policy Al seguir está ruta, en la ventana de la derecha aparecerían las políticas que serían modificadas para cumplir con los subapartados que nos ocupan. Para cambiarlas simplemente fue necesario hacer doble clic sobre cada una de las siguientes políticas y establecerles las propiedades tal y como se muestra a continuación: Maximum password age: esta política se configuró para cumplir que los usuarios tuvieran que cambiar la contraseña cada 3 meses. Por lo que se estableció a “90 days” Minimum password age: esta política se configuró para cumplir con que los usuarios no pudieran cambiar su contraseña hasta pasadas dos semanas del último cambio. Se estableció a “14 days” Minimum password length: esta política se configuró para cumplir con la longitud mínima de la con- traseña. Se estableció a “4 characters” 6
  • 8. Enforce password history: esta política se configuró para que cuando el usuario cambiará la contraseña, ésta no pudiera coincidir con las dos últimas establecidas. Se estableció a “2 password remembered” Si se producen 4 intentos de autenticación fallidos a una cuenta de usuario en un inter- valo de 10 minutos, ésta debe quedar permanentemente bloqueada. Como, en los subapartados anteriores, en éste, también nos dirigimos a la herramienta: Start → Administrative Tools → Domain Security Policy Para cumplir que tras 4 intentos en un intervalo de 10 minutos se bloqueara la cuenta de manera permanente, fue necesario dirigirnos a: Account Policies → Password Policy → Account Lockout Policies Donde se cambiaron tres políticas: Account lockout duration se estableció a “0” para que la cuenta fuera bloqueada permanentemente. En caso de poner otra cifra, representaría los minutos que se quedaría bloqueada la cuenta. Account lockout threshold se estableció a “4 invalid logon attempts”, para los 4 intentos. Reset account lockout counter after se estableció a “10 minutes”, para el intervalo de 10 minutos. Deben quedar registrados los intentos fallidos de entrada en el sistema. En este caso, los cambios fueron necesarios establecerlos tanto en la herramienta Domain Security Policy, como en la Domain Controller Security Policy, para que los fallos quedarán registrados en el servidor, en cuyo caso, si no la definiéramos de igual manera, la del controlador anularía a la de Domain Security Policy. En ambos casos se siguió: Local Policy → Audit Policy Y, para las políticas “Audit account logon event” y “Audit logon event” se marcó la casilla “Failure” y se desmarcó “Success” en caso de estar marcada (véase la figura 5) para que se registraran sólo los fallos al entrar en el sistema. 7
  • 9. Figura 5: Audit Policy Para comprobar si funcionó, se entró erróneamente (fallando en la contraseña) en la máquina cliente con un usuario, se comprobó que se quedaban los registros del error (véanse las figuras 6(a) y 6(b)) en: (a) Error de Inicio de Sesión (b) Event Viewer Figura 6: 4 intentos fallidos en menos de 10 minutos Start → Administrative Tools → Event Viewer → Security y que el usuario quedó inhabilitado en Active Directory Users and Computer. 8
  • 10. 3. Directorio privado de los usuarios Cada usuario debe disponer de un directorio propio de conexión con las siguientes restric- ciones: Todo usuario debe disponer de un directorio propio a partir del directorio home del servidor, cuyo nombre coincida con el de la cuenta del usuario. El usuario podrá acceder automáticamente a este directorio a partir de la unidad n: desde cualquier máquina del dominio. En primer lugar, se creó el directorio home en C: y dentro de home una carpeta por cada usuario de la organización (desde emple1 hasta emple10, además de ejec1 y ejec2), como se muestra a continuación en la imagen: En el directorio C:home (botón derecho del ratón) se eligió “Sharing and Security” (véase la figura 7(a)), en la ventana que apareció en la pestaña “Sharing” (véase la figura 7(b)) se marcó la casilla “Share this folder”; donde ponía “Share name”, se eligió el nombre que tendría la carpeta compartida (en este caso, home) y en “User Limit” se podía elegir la cantidad de usuario que podría conectarse al recurso compartido (en este caso, el máximo permitido). Luego, por último se establecieron los permisos compartidos, para lo que se pulsó en esa misma ventana, el botón “Permissions“. A continuación se añadió al grupo Domain User (véase la figura 7(c)), un grupo especial creado para introducir a todos los usuarios de la organización, al que se le dio control total en dicho recurso (home), para permitir a todos los usuarios acceder al mismo directorio y no limitarle luego permisos para manipular su propia carpeta. Por otra parte, en: Start → Administrative Tools → Active Directory Users and Computer Para cada usuario, en “Properties” y en la pestaña “Profile”, en el recuadro donde ponía “Home Folder”, se marcó la casilla “Connect” y elegimos la unidad N: tal y como dicta el enunciado de este apartado; y en 9
  • 11. el recuadro tras la palabra “To:” se escribió la ruta al recurso de conexión que sería el home del usuario correspondiente que se creó anteriormente. Se indicaron la máquina, el recurso y la ruta del directorio dentro del recurso. Por ejemplo, para emple1 sería 192.168.1.110home %username % tal y como se muestra en la imagen la figura 8(a). (a) Sharing and Security (b) Sharing (c) Permissions Figura 7: Carpeta Compartida (a) Home Folder (b) Unidad Figura 8: Directorio Privado 10
  • 12. El resultado fue que al iniciar sesión le aparecía una unidad N: seguida con su nombre de usuario, donde se alojaba su home (véase la figura 8(b)). En este directorio, el usuario debe tener control total. El resto de los usuarios no podrá tener ningún tipo de acceso sobre este directorio. Con la finalidad de que el usuario tuviera control total sobre su propio directorio y ningún otro tuviera este acceso se realizó lo siguiente: En el directorio C:home (clic con botón derecho del ratón) se eligió “Sharing and Security”. En la pestaña “Security” en el botón “Advanced” en “Permissions” se cortó la herencia de los permisos (casilla: “Allow inheritable...”) para que no se sumaran los permisos del directorio C:home al del direc- torio de los usuarios. Y además se pudiera eliminar a los usuarios que venían establecidos por defecto, dejando únicamente Administradores y al grupo Domain User (véase la figura 9). Figura 9: Herencia Luego, en el directorio de cada usuario, en la misma pestaña “Properties” → “Sharing and Security” → “Security”, se cortó la herencia al igual que antes. Se añadió además de a Administradores, al usuario propietario de su directorio, al que se le da control total sobre el mismo (véase la figura 10). 11
  • 13. Figura 10: Control Total De esta manera, se consiguió que únicamente el propietario tuviera acceso a su directorio y ninguno otro usuario más tuviera ningún tipo de acceso. Puede verse reflejado en la imagen donde se muestra como emple1 intenta entrar en el directorio de otro usuario y se le es denegado el acceso (véase la figura 11). Figura 11: Acceso Denegado a los NO Propietarios 12
  • 14. 4. Proyectos de la organización La organización tiene en marcha diversos proyectos. Éstos han de cumplir: Cada proyecto dispondrá de un directorio para almacenar la información relativa al mis- mo bajo el directorio proyectos. Cada usuario podrá acceder automáticamente a los proyectos en los que participe a partir de las unidades p:, q:,... desde cualquier máquina del dominio. En este apartado, fue necesario el mapeo de las unidades. En primer lugar, se crearon tres carpetas para cada proyecto bajo el directorio C:proyectos con el nombre de cada proyecto (auditorio, aeropuerto y parque). Dichos directorios fueron compartidos en red, de la misma manera que se ha explicado en apartados anteriores; en cuánto a los permisos que se les dieron, se tratará en los siguientes subapartados con mayor detenimiento, puesto que requerían de una seguridad más personalizada y por tanto del uso de los permisos especiales (véase en subapartados siguientes). A continuación en C:WINDOWSSYSVOLsysvolas07.orgscripts se agregó un fichero .bat llamado unidad.bat. En dicho script se hizo uso del comando net use para el mapeo, por lo que su único conte- nido eran tres líneas de comando para mapear las unidades a las carpetas de los tres correspondientes proyectos. El código fue el siguiente: 1 net use p: 192.168.1.110auditorio 2 net use q: 192.168.1.110aeropuerto 3 net use r: 192.168.1.110parque Decir, además que las carpetas sysvol y scripts de la ruta anterior hubo que compartirlos con los usuarios de la organización (Grupo Domain User) con permiso de lectura y al .bat se le asignó también permiso de lectura y de ejecución, para que éste pudieran ser ejecutado por los usuarios. Finalmente en la herramienta Active Directory Users and Computer, se seleccionaron todos los usua- rios de la organización, y en “Properties”, pestaña “Profile”, se marcó el recuadro “Logon script” y se añadió el nombre del .bat (véase la figura 12). De esa manera, ya se mapearían las unidades nada más el usuario iniciará sesión y tendrían acceso a ellas, en el caso de contar con los permisos necesarios. 13
  • 15. Figura 12: Local Script Todos los usuarios que participan en un proyecto deben tener la posibilidad de leer y modificar los archivos que forman parte del proyecto. Los usuarios no podrán crear ni borrar archivos del proyecto. Esta función la realizará el director del mismo. C REACIÓN DE G RUPOS Para el cumplimiento de los subapartados siguientes, a la hora darles los permisos a los usuarios, fue ne- cesario crear grupos locales conforme a los diferentes tipos de permisos que tendrían en los directorios de cada proyecto. Y a su vez, crear grupos globales para introducir estos grupos locales. También se crea- ron de igual manera grupos local y global para los ejecutivos. Se diferenció entre grupos de Directivos y de los Participantes. A pesar de que, en cierto sentido, se duplican los grupos, está era la estrategia más efectiva en un dominio al permitir mayor versatilidad a la hora de añadir, eliminar y mover usuarios según los permisos que se les desee dar a los recursos y en para la propia organización. Además con el fin de organizar aún mejor el dominio, estos grupos fueron introducidos en la unidad organizativa Group, donde ya estaba situado el grupo global del que se ha hablado con anterioridad, Domain User. Los pasos para crear grupos fueron los siguientes: Se hizo clic sobre el botón para crear grupos y aparecía una ventana donde se poder elegir el tipo y el ámbito del grupo: Seguridad/Distribución y Global/Local. En nuestro caso sólo hicimos uso de los de 14
  • 16. Seguridad, tanto Local como Global. Por supuesto en “Group name” se introdujo el nombre que se le deseaba dar al grupo (véase la figura 13). Figura 13: Crear Grupo El paso siguiente fue añadir miembros, para lo cual se fue a propiedades sobre el grupo correspondiente, luego a la pestaña “Members”, y se presionó añadir. Si se deseaba buscar o comprobar los nombres de los usuarios/grupos se podía pulsar “Check Names” y el nombre/s seleccionado/s aparecería/n en la ventana (véase la figura 14). Figura 14: Añadir Miembros Se procedió así para introducir, en primer lugar, a los usuarios en sus grupos globales correspondientes, y luego a los grupos globales en sus grupos locales correspondientes, quedando el estado de los grupos de la organización tal y cómo se muestra en la figura 15. 15
  • 17. Figura 15: OU Group Bien, pues una vez creado estos grupos, como en este apartado los permisos son muy específicos para los participantes, no es suficiente con los permisos normales sino que hay que darlos de un modo más avanzado, por lo que se hizo uso de los permisos especiales. Para que los usuarios participantes sólo pudieran leer y modificar (pero no crear ni borrar) en el direc- torio del proyecto en el que participan, hubo que ir a “Properties” en la carpeta de dicho proyecto e ir a “Advanced”. Luego, en la ventana emergente, se desmarcó la herencia y se añadió al grupo correspondiente (“Add”) y luego sobre “Edit”. Una vez allí, en “Apply onto” se seleccionó “Files Only” y se marcaron los permisos correspondientes para sólo permitirles leer y escribir (véase la figura 16(a)). Finalmente, se añadió nuevamente el grupo (“Add”), pero esta vez, al editarles los permisos, en “Apply onto” se seleccionó “This folder and subfolders” y se seleccionaron los permisos (véase la figura 16(b)). (a) Files Only (b) This folder and subfolders Figura 16: Permisos Especiales 16
  • 18. 5. Usuarios de la Organización Los usuarios implicados en los proyectos tendrán restringida la hora de acceso al sistema. Este subapartado ya fue descrito detalladamente en el apartado 1 Les debe ser asignado un perfil flotante que no puedan modificar. En un principio, se creó en el servido en la unidad C: una carpeta compartida con el nombre de perfil, donde se alojaría el perfil flotante. Luego nos dirigimos a la máquina cliente con la finalidad de exportar un perfil de uno de los usuarios que ya se había modificado previamente a la manera deseada. Hubo que entrar como Administrador y lo siguiente fue seguir los pasos: Mi PC (clic derecho) → Propiedades → Opciones Avanzadas A continuación, donde se leía “Perfiles de usuario”, se pulsó “Configuración” (véase la figura 17(a)). Se seleccionar el perfil que se había modificado y se quería exportar, y luego se pulsó en “Copiar a” (véase la figura 17(b)). (a) Configuración (b) Copiar a Figura 17: Exportar Perfil de Usuario 17
  • 19. En la nueva ventana emergente, se escribió (también se podría examinar si se deseará buscar el destino) donde se deseaba exportar el perfil, por ejemplo, en nuestro caso, a la máquina servidor y a la carpe- ta creada previamente para alojar el perfil, Ord07perfil (véase la figura 18(a)). También se podía seleccionar con quién estaría permitido compartirlo. Una vez hecho esto, se volvió a la máquina servidor, en las opciones de carpetas se mostraron los archivos ocultos, y en la carpeta perfil se le cambió la extensión al archivo ntuser.dat por .man (véase la figura 18(b)) para hacerlo obligatorio. (a) Copiar Perfil en Servidor (b) Cambiar la Extensión del Archivo Figura 18: Perfil Flotante Obligatorio Como último paso, en la herramienta Active Directory Users and Computer se seleccionaron todos los usuarios de la organización, y en “Properties”, pestaña “Profile”, se marcó el recuadro “Profile Path” y se añadió la ruta de la carpeta donde se almacenó el perfil (véase la figura 19). 18
  • 20. Figura 19: Profile Path De esta manera el perfil sería obligatorio y flotante. Ningún usuario puede de esa manera cambiar su es- critorio, accesos directos, fondo de pantalla, etc. Sino que sería establecido por el propio Administrador. 19
  • 21. 6. Directores de los proyectos Cada proyecto tiene al menos un director. Tienen control total sobre los archivos del proyecto que dirigen. Esto ya fue contemplado previamente, de hecho, se crearon grupos (véase apartado 4) especiales para los directores: en los grupos Globales de Directores (G***Dir) se introdujeron a los usuarios responsables de la dirección, y en los grupos Locales de Directores (L***Dir), se metieron a esos grupos Globales. De manera que a los Locales se le asignó el control total de los directorios de cuyos proyectos eran responsables (véase la figura 20). Figura 20: Grupo de Directores 20
  • 22. 7. Ejecutivos de la organización Podrán acceder a cualquiera de los directorios de los proyectos en curso. Pueden leer la información de estos proyectos. No pueden alterar dicha información. Fueron asignados los permisos correspondientes de sólo lectura y ejecución, de igual forma que se ha explicado ya en apartados anteriores. Esto fue, dirigiéndose a los directorios de los proyectos, en “Sharing and Security”, en la pestaña “Security” y asignando los permisos que corresponden de sólo lectura y ejecución al grupo Local de Ejecutivos (LEje) para que se limiten únicamente a ello (véase la figura 21). Figura 21: Permisos Para los Ejecutivos 21
  • 23. 8. Resto de usuarios No dispondrán de ningún derecho de acceso a los directorios de los proyectos. Al establecerlo únicamente a ejecutivos, participantes y directores, nadie más tendrá acceso a dichos directorios. Por lo que no es necesario denegarlos, sino simplemente no asignarlos. 22
  • 24. S ITUACIÓN ACTUAL DE LA ORGANIZACIÓN Existen actualmente 3 proyectos en ejecución: auditorio, aeropuerto y parque. En el apartado 4 puede comprobarse que fueron creadas carpetas para cada proyecto y los correspon- dientes grupos para manipularlas según el tipo de acceso que tuvieran permitido. Relacionados con estos proyectos, la empresa dispone de 10 empleados, 5 en el turno de mañana (08:00-15:00) (emple1-emple5) y 5 en el grupo de tarde (14:00-21:00) (emple6- emple10). Siguiendo como referencia tanto los nombres de usuario como los horario designados en este apartado, fueron establecidas las horas de acceso (véase apartado 1) y creados los usuarios (véase apartado 2). Los empleados 1, 3, y 5 han sido contratados temporalmente (6 meses). Para expirarles la cuenta en 6 meses se seleccionó a los usuarios propuestos, y en “Properties”, pestaña “Account”, se marcó ‘‘Account expires” y en “End of ” se seleccionó la fecha de expiración (calculando 6 meses). Hay 2 ejecutivos en la organización: ejec1 y ejec2. Este punto ya fue contemplado a la hora de crear tanto los usuarios como los grupos, para lo cual se crearon dos usuarios con los respectivos nombres, un grupo local y otro global para establecer sus permisos particulares. 23
  • 25. ANEXOS Existen algunos pocos más formularios, pero no se presentan debido a la falta de espacio, y a que se piensan que no son tan relevantes (ej. creación de OU, habilitar/deshabilitar usuario, mapear unidad, ...). A. Usuarios En el script se tiene 3 maneras de crear usuarios. Y cada una de estas maneras tienen en común una serie de métodos que están introducidas en un módulo, llamado “Module 1” y a continuación se describen: 1 Module Module1 2 3 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 4 5 Public GDomain As String = "dc=as07,dc=org" 6 7 Public GLenghtPwd As Integer = 4 8 9 Public GServer As String = "192.168.1.110" 10 11 12 ’************************************************************************* 13 ’ CREACIÓN Y ELIMINACIÓN DE USUARIOS : Form => Users, MultiUser 14 ’************************************************************************* 15 16 Public Sub CreateUser(ByVal user As String, ByVal userOU As String, ByVal groupOU As String, ByVal pwd As String, ByVal folder As String, ByVal Message As Boolean) 17 On Error GoTo Existe 18 Err.Clear() 19 Dim obj_OU, obj_User 20 obj_OU = GetObject("LDAP://ou=" & userOU & "," & GDomain) 21 obj_User = obj_OU.Create("user", "cn=" & user) 22 Existe: 23 If Err.Number = vbEmpty Then 24 obj_User.Put("sAMAccountName", "" & user) 25 obj_User.Put("HomeDirectory", GServer & "home" & user) 26 obj_User.Put("profilePath", GServer & "perfil") 27 obj_User.Put("homeDrive", "N:") 28 obj_User.Put("scriptPath", "unidad.bat") 29 obj_User.SetInfo() 30 obj_User.SetPassword(pwd) 31 AddUserGroup(user, userOU, groupOU) 32 UserEnable(user, userOU, vbFalse) 33 CreateFolder("C:home" & folder, vbFalse) 34 If Message Then 35 MsgBox("Usuario " & user & " Creado.", 64, "Éxito") 36 End If 37 Else 38 If Message Then 39 MsgBox("Existe: " & user, 16, "Advertencia") 40 End If 41 End If 42 End Sub 43 44 Public Sub UserEnable(ByVal user As String, ByVal userOU As String, ByVal disabled As Boolean) 24
  • 26. 45 Dim obj_User 46 obj_User = GetObject("LDAP://cn=" & user & ",ou=" & userOU & "," & GDomain) 47 obj_User.AccountDisabled = disabled 48 obj_User.SetInfo() 49 End Sub 50 51 Public Sub AddUserGroup(ByVal user As String, ByVal userOU As String, ByVal groupOU As String) 52 Dim obj_Group, obj_User 53 obj_Group = GetObject("LDAP://cn=Domain User,ou=" & groupOU & "," & GDomain) 54 obj_User = GetObject("LDAP://cn=" & user & ",ou=" & userOU & ",dc=as07,dc= org") 55 If Not obj_Group.IsMember(obj_User.ADsPath) Then 56 obj_Group.Add(obj_User.ADsPath) 57 End If 58 End Sub 59 60 Public Sub Expires(ByVal user As String, ByVal userOU As String, ByVal fecha As String) 61 Dim obj_User 62 obj_User = GetObject("LDAP://cn=" & user & ",ou=" & userOU & "," & GDomain) 63 obj_User.AccountExpirationDate = fecha 64 obj_User.SetInfo() 65 End Sub 66 67 Public Sub DeleteUser(ByVal user As String, ByVal userOU As String, ByVal folder As String, ByVal Message As Boolean) 68 On Error GoTo Existe 69 Dim obj_OU = GetObject("LDAP://ou=" & userOU & "," & GDomain) 70 obj_OU.Delete("user", "cn=" & user) 71 Existe: 72 If Err.Number = vbEmpty Then 73 obj_OU.SetInfo() 74 DeleteFolder("C:home" & Folder, vbFalse) 75 If Message Then 76 MsgBox("Usuario " & user & " Eliminado.", 64, "Éxito") 77 End If 78 Else 79 If Message Then 80 MsgBox("No Existe: " & user, 16, "Advertencia") 81 End If 82 End If 83 End Sub 84 85 ’************************************************************************* 86 ’ CREACIÓN Y BORRADO DE CARPETAS : Form => Users, Folder 87 ’************************************************************************* 88 Public Sub CreateFolder(ByVal archive As String, ByVal Message As Boolean) 89 Dim obj_FSO, obj_Folder 90 obj_FSO = CreateObject("Scripting.FileSystemObject") 91 If obj_FSO.FolderExists(archive) Then 92 If Message Then 93 MsgBox("Existe: " & archive, 16, "Advertencia") 94 End If 95 Else 96 obj_Folder = obj_FSO.CreateFolder(archive) 97 If Message Then 98 MsgBox("Carpeta " & archive & " Creada.", 64, "Éxito") 99 End If 100 End If 101 End Sub 102 103 Public Sub DeleteFolder(ByVal archive As String, ByVal Message As Boolean) 104 Dim obj_FSO, obj_Folder 105 obj_FSO = CreateObject("Scripting.FileSystemObject") 106 If Not obj_FSO.FolderExists(archive) Then 25
  • 27. 107 If Message Then 108 MsgBox("No Existe: " & archive, 16, "Advertencia") 109 End If 110 Else 111 obj_Folder = obj_FSO.DeleteFolder(archive) 112 If Message Then 113 MsgBox("Carpeta Borrada.", 64, "Éxito") 114 End If 115 End If 116 End Sub 117 118 End Module Ahora se exponen los métodos específicos de cada manera. La primera manera, es la opción “Crear/Elimi- nar” en la que el administrador crea o borra al usuario uno a uno. Teniendo en cuenta (aunque es común para las 3 maneras), que al crearlo o borrarlo, también incluye su directorio home, lo añade o elimina del grupo “Domain User” para poder tener permiso para el perfil fijo, para el script logon, para poder mapear los unidades introducidas en el fichero por lotes antes descrito en el fichero unidad.bat. 1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button1.Click 2 If RadioButton1.Checked() Then 3 If TextBox1.Text.Length = 0 Then 4 MsgBox("Introduce el nombre de usuario.", 16, "Advertencia") 5 Else 6 If TextBox2.Text.Length >= GLenghtPwd Then 7 CreateUser(CStr(TextBox1.Text), CStr(TextBox3.Text), CStr( TextBox4.Text), CStr(TextBox2.Text), CStr(TextBox1.Text()), vbTrue) 8 Else 9 MsgBox("Contraseña menor de " & GLenghtPwd & " caracteres.", 16, "Advertencia") 10 End If 11 End If 12 ElseIf RadioButton2.Checked() Then 13 If TextBox1.Text.Length = 0 Then 14 MsgBox("Introduce el nombre de usuario.", 16, "Advertencia") 15 Else 16 DeleteUser(CStr(TextBox1.Text), CStr(TextBox3.Text), CStr(TextBox1. Text()), vbTrue) 26
  • 28. 17 End If 18 ElseIf RadioButton3.Checked Then 19 If TextBox1.Text.Length = 0 Then 20 MsgBox("Introduce el nombre de usuario.", 16, "Advertencia") 21 Else 22 If (TextBox5.Text.Length > 0) And (TextBox5.Text <> "mm/dd/yyyy") Then 23 Expires(CStr(TextBox1.Text), CStr(TextBox3.Text), CStr(TextBox5. Text)) 24 Else 25 MsgBox("Introduce fecha de expiración.", 16, "Advertencia") 26 End If 27 End If 28 Else 29 MsgBox("Selecciona: Crear, Borrar o Expirar", 16, "Advertencia") 30 End If 31 End Sub La segunda manera, es la opción “Crear Varios” en “Carga por Ficheros” que es donde el administrador crea un fichero de texto separados los campos por “;”, donde cada campo representa el nombre, el password, la OU del usuario, la OU del grupo y fecha de expiración (para tiempo nulo se deja en blanco). 1 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button2.Click 2 OpenFileDialog1.ShowDialog() 3 End Sub 4 5 Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk 6 TextBox1.Text = OpenFileDialog1.FileName 7 End Sub 8 9 Sub CreateOrDelete(ByVal user As String, ByVal userOU As String, ByVal groupOU As String, ByVal pwd As String, ByVal folder As String, ByVal fecha As String) 10 If RadioButton1.Checked Then 11 CreateUser(user, userOU, groupOU, pwd, user, vbFalse) 12 If (fecha.Length > 0) And (fecha <> "mm/dd/yyyy") Then 13 Expires(user, userOU, fecha) 14 End If 27
  • 29. 15 ElseIf RadioButton2.Checked Then 16 DeleteUser(user, userOU, user, vbFalse) 17 End If 18 End Sub 19 20 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button1.Click 21 Dim archive As System.IO.StreamReader 22 Dim field() As String 23 Dim user, pwd, userOU, groupOU, fecha 24 If My.Computer.FileSystem.FileExists(TextBox1.Text) Then 25 archive = File.OpenText(TextBox1.Text) 26 Do Until archive.EndOfStream 27 field = Split(archive.ReadLine(), ";") 28 user = field(0) 29 pwd = field(1) 30 userOU = field(2) 31 groupOU = field(3) 32 fecha = field(4) 33 CreateOrDelete(user, userOU, groupOU, pwd, user, fecha) 34 Loop 35 archive.Close() 36 Else 37 MsgBox("No Existe: " & TextBox1.Text, 16, "Advertencia") 38 End If 39 End Sub La tercera manera, es la opción “Crear Varios” en “Carga por Secuencia” pero esta vez el administrador puede crear un número finito de usuarios con características similar, de manera que todos se llamen igual salvo el no final que sería el identificatorio (ej. emple5). Se le deja la opción de elegir la palabra común, el no de inicio, y la cantidad de usuarios a crer o borrar. 1 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button3.Click 2 Dim i, j As Integer 3 Dim user, pwd, userOU, groupOU, fecha 4 For i = 0 To TextBox3.Text - 1 5 j = CInt(TextBox4.Text) + i 6 user = CStr(TextBox2.Text) & j 7 pwd = user 28
  • 30. 8 userOU = CStr(TextBox7.Text) 9 groupOU = CStr(TextBox5.Text) 10 fecha = CStr(TextBox6.Text) 11 CreateOrDelete(user, userOU, groupOU, pwd, user, fecha) 12 Next 13 End Sub 29
  • 31. B. Grupos Dentro del script existen varios apartados referidos a los grupos. El primero es la opción “Crear/Eliminar” que crea o borra grupos locales o globales. 1 Sub CreateGroup() 2 On Error GoTo Existe 3 Const TYPE_GLOBAL = -2147483646 4 Const TYPE_LOCAL = -2147483644 5 Dim obj_OU, obj_Group 6 obj_OU = GetObject("LDAP://ou=" & TextBox3.Text() & "," & GDomain) 7 obj_Group = obj_OU.Create("group", "cn=" & TextBox1.Text()) 8 Existe: 9 If Err.Number = vbEmpty Then 10 obj_Group.Put("sAMAccountName", "" & TextBox1.Text()) 11 If RadioButton3.Checked() Then 12 obj_Group.Put("Grouptype", TYPE_GLOBAL) 13 ElseIf RadioButton4.Checked() Then 14 obj_Group.Put("Grouptype", TYPE_LOCAL) 15 End If 16 If TextBox2.Text.Length > 0 Then 17 obj_Group.Description = TextBox2.Text() 18 End If 19 obj_Group.SetInfo() 20 MsgBox("Grupo Creado.", 64, "Éxito") 21 Else 22 MsgBox("Existe", 16, "Advertencia") 23 End If 24 End Sub 25 26 Sub DeleteGroup() 27 On Error GoTo Existe 28 Dim obj_OU 29 obj_OU = GetObject("LDAP://ou=" & TextBox3.Text() & "," & GDomain) 30 obj_OU.Delete("group", "cn=" & TextBox1.Text()) 31 Existe: 32 If Err.Number = vbEmpty Then 33 obj_OU.SetInfo() 34 MsgBox("Grupo Eliminado.", 64, "Éxito") 35 Else 36 MsgBox("No Existe", 16, "Advertencia") 37 End If 38 End Sub 30
  • 32. 39 40 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button1.Click 41 If TextBox1.Text.Length > 0 Then 42 If RadioButton1.Checked() Then 43 If RadioButton3.Checked() Or RadioButton4.Checked() Then 44 CreateGroup() 45 Else 46 MsgBox("Marca una casilla: Local o Global.", 16, "Advertencia") 47 End If 48 ElseIf RadioButton2.Checked() Then 49 DeleteGroup() 50 Else 51 MsgBox("Selecciona: Crear o Borrar.", 16, "Advertencia") 52 End If 53 Else 54 MsgBox("Introduzca nombre del Grupo.", 16, "Advertencia") 55 End If 56 End Sub El segundo apartado está en la opción “Agregar Miembros”, donde el administrador primero señalaría conque tipo de grupo va a trabajar. Si eligiese Local, pues en la etiqueta “Grupo” aparecerían todos los grupos Locales, y podría señalar uno. Luego, en la etiqueta “usuario/Grupos” aparecerían todos los grupos Globales que existen en la OU Group que existen, y para terminar si cliqueas en el botón de “Miembros” podrías ver cuales miembros ya están incluidos, y así de esa manera podrías elegir uno que mejor te convenga. 1 Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows .Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress 2 e.KeyChar() = "" 3 End Sub 4 5 Private Sub ComboBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows .Forms.KeyPressEventArgs) Handles ComboBox2.KeyPress 6 e.KeyChar() = "" 7 End Sub 8 9 Private Sub ComboBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows .Forms.KeyPressEventArgs) Handles ComboBox3.KeyPress 10 e.KeyChar() = "" 11 End Sub 12 31
  • 33. 13 Private Sub ListingGroup() 14 Const TYPE_GLOBAL = -2147483646 15 Const TYPE_LOCAL = -2147483644 16 ComboBox1.Items.Clear() 17 Dim obj_OU 18 obj_OU = GetObject("LDAP://ou=" & TextBox5.Text() & "," & GDomain) 19 For Each obj_Member In obj_OU 20 If (LCase(obj_Member.Class) = "group") Then 21 If (RadioButton3.Checked) Then 22 If (obj_Member.Grouptype = TYPE_GLOBAL) Then 23 ComboBox1.Items.Add(obj_Member.sAMAccountName) 24 End If 25 ElseIf (RadioButton4.Checked) Then 26 If (obj_Member.Grouptype = TYPE_LOCAL) Then 27 ComboBox1.Items.Add(obj_Member.sAMAccountName) 28 End If 29 End If 30 End If 31 Next 32 End Sub 33 34 Private Sub ListingGroupGlobal() 35 Const TYPE_GLOBAL = -2147483646 36 ComboBox2.Items.Clear() 37 Dim obj_OU 38 obj_OU = GetObject("LDAP://ou=" & TextBox5.Text() & "," & GDomain) 39 For Each obj_Member In obj_OU 40 If (LCase(obj_Member.Class) = "group") Then 41 If (obj_Member.Grouptype = TYPE_GLOBAL) Then 42 ComboBox2.Items.Add(obj_Member.sAMAccountName) 43 End If 44 End If 45 Next 46 End Sub 47 48 Private Sub ListingUsers() 49 ComboBox2.Items.Clear() 50 Dim obj_Group 51 obj_Group = GetObject("LDAP://cn=Domain User,ou=" & TextBox5.Text() & "," & GDomain) 52 For Each obj_Member In obj_Group.Members 53 ComboBox2.Items.Add(obj_Member.sAMAccountName) 54 Next 55 End Sub 56 57 Private Sub ListingMember() 58 ComboBox3.Items.Clear() 59 Dim obj_Group 60 obj_Group = GetObject("LDAP://cn=" & ComboBox1.Text() & ",ou=" & TextBox5. Text() & "," & GDomain) 61 For Each obj_Member In obj_Group.Members 62 ComboBox3.Items.Add(obj_Member.sAMAccountName) 63 Next 64 End Sub 65 66 Sub AddUserGroup() 67 Dim obj_Group, obj_User 68 obj_Group = GetObject("LDAP://cn=" & ComboBox1.Text() & ",ou=" & TextBox5. Text() & "," & GDomain) 69 obj_User = GetObject("LDAP://cn=" & ComboBox2.Text() & ",ou=" & TextBox4. Text() & "," & GDomain) 70 If Not obj_Group.IsMember(obj_User.ADsPath) Then 71 obj_Group.Add(obj_User.ADsPath) 72 MsgBox("Añadido al Grupo", 64, "Éxito") 73 Else 74 MsgBox("Existe", 16, "Advertencia") 32
  • 34. 75 End If 76 End Sub 77 78 Sub RemoveUserGroup() 79 Dim obj_Group, obj_User 80 obj_Group = GetObject("LDAP://cn=" & ComboBox1.Text() & ",ou=" & TextBox5. Text() & "," & GDomain) 81 obj_User = GetObject("LDAP://cn=" & ComboBox2.Text() & ",ou=" & TextBox4. Text() & "," & GDomain) 82 If obj_Group.IsMember(obj_User.ADsPath) Then 83 obj_Group.Remove(obj_User.ADsPath) 84 MsgBox("Eliminado del Grupo", 64, "Éxito") 85 Else 86 MsgBox("No Existe", 16, "Advertencia") 87 End If 88 End Sub 89 90 Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged 91 ListingGroup() 92 ListingUsers() 93 End Sub 94 95 Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged 96 ListingGroup() 97 ListingGroupGlobal() 98 End Sub 99 100 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button1.Click 101 If (ComboBox1.Text.Length > 0) And (ComboBox2.Text.Length > 0) Then 102 If RadioButton1.Checked Then 103 If RadioButton3.Checked Or RadioButton4.Checked Then 104 AddUserGroup() 105 Else 106 MsgBox("Selecciona: Local o Global", 16, "Advertencia") 107 End If 108 ElseIf RadioButton2.Checked Then 109 RemoveUserGroup() 110 Else 111 MsgBox("Selecciona: Añadir o Eliminar", 16, "Advertencia") 112 End If 113 ElseIf (ComboBox1.Text.Length > 0) Then 114 MsgBox("Selecciona Usuario/Grupo.", 16, "Advertencia") 115 ElseIf (ComboBox2.Text.Length > 0) Then 116 MsgBox("Selecciona un Grupo.", 16, "Advertencia") 117 Else 118 If RadioButton3.Checked Or RadioButton4.Checked Then 119 MsgBox("Selecciona un Grupo y Usuario/Grupo.", 16, "Advertencia") 120 Else 121 MsgBox("Selecciona el tipo de Grupo: Global o Local.", 16, " Advertencia") 122 End If 123 End If 124 End Sub 125 126 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button2.Click 127 If (ComboBox1.Text.Length() > 0) Then 128 ListingMember() 129 Else 130 MsgBox("Selecciona un Grupo.", 16, "Advertencia") 131 End If 132 End Sub 33
  • 35. C. Carpeta Para la creación o eliminación de carpetas se añadió tales métodos en el módulo “Module1”, debido a que eran métodos importantes y necesarios para la creación o eliminación de usuarios. En cambio, en el formulario de carpeta tan sólo se dejó el método de mover. 1 Sub MoveFolder() 2 Dim obj_FSO, obj_Folder 3 obj_FSO = CreateObject("Scripting.FileSystemObject") 4 obj_Folder = obj_FSO.MoveFolder(TextBox1.Text, TextBox2.Text) 5 MsgBox("Carpeta Movida.", 64, "Éxito") 6 End Sub 7 8 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button1.Click 9 If RadioButton1.Checked Then 10 If TextBox1.Text.Length = 0 Then 11 MsgBox("Introduce la ruta Origen.", 16, "Advertencia") 12 Else 13 Me.ToolStripStatusLabel1.Text = "Creando Carpeta: " & CStr(TextBox1. Text) 14 CreateFolder(CStr(TextBox1.Text), vbTrue) 15 Me.ToolStripStatusLabel1.Text = "Carpeta: " & CStr(TextBox1.Text) & " Creada" 16 End If 17 ElseIf RadioButton2.Checked() Then 18 If TextBox1.Text.Length = 0 Then 19 MsgBox("Introduce la ruta Origen.", 16, "Advertencia") 20 Else 21 DeleteFolder(CStr(TextBox1.Text), vbTrue) 22 End If 23 ElseIf RadioButton3.Checked Then 24 If (TextBox1.Text.Length = 0) Or (TextBox2.Text.Length = 0) Then 25 MsgBox("Introduce la ruta Origen y Destino.", 16, "Advertencia") 26 Else 27 MoveFolder() 28 End If 29 Else 30 MsgBox("Marca una casilla: Crear, Borrar o Mover", 16, "Advertencia") 31 End If 32 End Sub 34
  • 36. D. Security Policy No se pudo acabar con éxito en su totalidad, debido a que no se encuentra solución al tratamiento de los días y minutos. Al final se optó sólo por utilizar las que fueron posibles manipular. 1 Sub Configuration() 2 Dim obj_Domain 3 obj_Domain = GetObject("LDAP://" & GDomain) 4 obj_Domain.Put("minPwdLength", CInt(TextBox3.Text())) 5 ’obj_Domain.Put("minPwdAge", CInt(TextBox2.Text())) 6 ’obj_Domain.Put("maxPwdAge", CLng(TextBox1.Text()) * 86400) 7 obj_Domain.Put("pwdHistoryLength", CInt(TextBox4.Text())) 8 ’obj_Domain.Put("lockoutDuration", TextBox5.Text()) 9 obj_Domain.Put("lockoutThreshold", CInt(TextBox6.Text())) 10 ’obj_Domain.Put("lockoutObservationWindow", TextBox7.Text()) 11 obj_Domain.SetInfo() 12 End Sub 13 14 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button1.Click 15 Configuration() 16 GLenghtPwd = TextBox3.Text 17 End Sub 35
  • 37. E. Compartir Existe otro formulario que sirve para compartir carpetas. En este formulario se añade la ruta de la carpeta, el nombre que recibirá el recurso, y una descripción que es opcional. 1 Sub CreateShare() 2 Const FILE_SHARE = 0 3 Const MAXIMUM_CONNECTIONS = 25 4 Dim objWMIService, errReturn, objNewShare 5 objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!" & GServer & "rootcimv2") 6 objNewShare = objWMIService.Get("Win32_Share") 7 errReturn = objNewShare.Create(CStr(TextBox1.Text), CStr(TextBox2.Text), FILE_SHARE, MAXIMUM_CONNECTIONS, CStr(TextBox3.Text)) 8 MsgBox("Recurso Compartido.", 64, "Éxito") 9 End Sub 10 11 Function ExistsFolder() As Boolean 12 Dim obj_FSO 13 obj_FSO = CreateObject("Scripting.FileSystemObject") 14 If obj_FSO.FolderExists(TextBox1.Text) Then 15 ExistsFolder = True 16 Else 17 ExistsFolder = False 18 End If 19 End Function 20 21 Function ExistsFile() As Boolean 22 Dim obj_FSO 23 obj_FSO = CreateObject("Scripting.FileSystemObject") 24 If obj_FSO.FileExists(TextBox1.Text) Then 25 ExistsFile = True 26 Else 27 ExistsFile = False 28 End If 29 End Function 30 31 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button1.Click 32 If TextBox1.Text.Length = 0 Then 33 MsgBox("Introduzca la ruta de la carpeta o fichero a compartir.", 16, " Advertencia") 34 ElseIf TextBox2.Text.Length = 0 Then 36
  • 38. 35 MsgBox("Introduzca el nombre que desea para el recurso compartido.", 16, "Advertencia") 36 Else 37 If ExistsFile() Or ExistsFolder() Then 38 CreateShare() 39 Else 40 MsgBox("No existe", 16, "Advertencia") 41 End If 42 End If 43 End Sub 37
  • 39. F. Permisos NTFS Para poder otorgar permisos especiales se hizo necesaria la herramienta “Xcacls.vbs”. Para poder utilizarla, primero se tuvo que instalar, y cuando solicitó una ubicación se seleccionó C:Windows. Luego, hubo que cambiar el motor de secuencias de comandos predeterminado de Wscript a Cscript. Para conseguirlo, se tuvo que escribir en la línea de comandos cscript.exe /h:cscript. El resto fue utilizar WScript.shell. 1 Sub Permission(ByVal Path As String, ByVal userOrGroup As String, ByVal permiso As String) 2 Dim Obj_Shell 3 Obj_Shell = CreateObject("WScript.shell") 4 Obj_Shell.Run("icacls " & Path & " /Grant:r " & userOrGroup & ":" & permiso) 5 End Sub 6 7 Function Simple() 8 If rdbControlT.Checked Then 9 Simple = "F" 10 ElseIf rdbModify.Checked Then 11 Simple = "M" 12 ElseIf rdbReadExejute.Checked Then 13 Simple = "RX" 14 ElseIf rdbRead.Checked Then 15 Simple = "R" 16 ElseIf rdbWrite.Checked Then 17 Simple = "W" 18 ElseIf rdbNone.Checked Then 19 Simple = "N" 20 Else 21 Simple = "" 22 End If 23 End Function 24 25 Sub add(ByRef cadena As String, ByVal cadenaAdd As String, ByRef posicion As Boolean) 26 If posicion Then 27 cadena = cadena & cadenaAdd 28 posicion = False 29 Else 30 cadena = cadena & "," & cadenaAdd 31 End If 32 End Sub 33 38
  • 40. 34 Function Specific() 35 Dim aux As String 36 Dim first As Boolean 37 first = True 38 aux = "(" 39 If chkListing.Checked Then 40 add(aux, "RD", first) 41 End If 42 If chkAddFile.Checked Then 43 add(aux, "WD", first) 44 End If 45 If chkAddSubDirectory.Checked Then 46 add(aux, "AD", first) 47 End If 48 If chkReadAttribute.Checked Then 49 add(aux, "RA", first) 50 End If 51 If chkWriteAttribute.Checked Then 52 add(aux, "WD", first) 53 End If 54 If chkExecute.Checked Then 55 add(aux, "X", first) 56 End If 57 If aux.Length = 1 Then 58 aux = "" 59 Else 60 aux = aux & ")" 61 End If 62 Specific = aux 63 End Function 64 65 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button1.Click 66 Dim permiso, permiso2 As String 67 permiso = Simple() 68 permiso2 = Specific() 69 If txtPath.Text.Length > 0 And txtUserGroup.Text.Length > 0 Then 70 If permiso.Length = 0 And permiso2.Length = 0 Then 71 MsgBox("Selecciona un permiso.", 16, "Advertencia") 72 ElseIf permiso2.Length > 0 Then 73 Permission(CStr(txtPath.Text), CStr(txtUserGroup.Text), permiso2) 74 Else 75 Permission(CStr(txtPath.Text), CStr(txtUserGroup.Text), permiso) 76 End If 77 Else 78 MsgBox("Rellene ruta y usuario/Grupo.", 16, "Advertencia") 79 End If 80 End Sub 39
  • 41. G. Permiso Share Este formulario es un complementario del anexo E. Ya que una vez compartida la carpeta, se le añade a un grupo o a un usurio una serie de permisos a esa carpeta (recurso). En este formulario al igual que se hizo en los permisos NTFS, nos tuvimos que valer de un recurso externo. En este caso, fue RMTSHAR el cual es un archivo que deberá estár presente en la localización del script para que pueda funcionar. 1 Sub AddPermission(ByVal ShareName As String, ByVal userOrGroup As String, ByVal permiso As String) 2 Dim Obj_Shell 3 Obj_Shell = CreateObject("WScript.shell") 4 Obj_Shell.Run("RMTSHARE.exe " & GServer & "" & ShareName & " /GRANT " & userOrGroup & ":" & permiso, 3) 5 MsgBox("Permiso Concedido.", 64, "Éxito") 6 End Sub 7 8 Sub mierda() 9 Dim Obj_Shell 10 Obj_Shell = CreateObject("WScript.shell") 11 Obj_Shell.Run("cmd /k cd c: | dir,3, true") 12 Obj_Shell = Nothing 13 MsgBox("Permiso Concedido.", 64, "Éxito") 14 End Sub 15 16 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) 17 mierda() 18 End Sub 19 20 Sub DeletePermission(ByVal ShareName As String, ByVal userOrGroup As String) 21 Dim Obj_Shell 22 Obj_Shell = CreateObject("WScript.shell") 23 Obj_Shell.Run("rmtshare " & GServer & "" & ShareName & " /REMOVE " & userOrGroup) 24 MsgBox("Permiso Restring.", 64, "Éxito") 25 End Sub 26 27 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button1.Click 28 If TextBox1.Text.Length = 0 Then 29 MsgBox("Rellene nombre del Recurso.", 16, "Advertencia") 30 ElseIf TextBox2.Text.Length = 0 Then 40
  • 42. 31 MsgBox("Rellene nombre del Grupo/Usuario.", 16, "Advertencia") 32 Else 33 If RadioButton1.Checked Then 34 If RadioButton3.Checked Then 35 AddPermission(CStr(TextBox1.Text), CStr(TextBox2.Text), "R") 36 ElseIf RadioButton4.Checked Then 37 AddPermission(CStr(TextBox1.Text), CStr(TextBox2.Text), "C") 38 ElseIf RadioButton5.Checked Then 39 AddPermission(CStr(TextBox1.Text), CStr(TextBox2.Text), "F") 40 Else 41 MsgBox("Seleccione un tipo de permiso.", 16, "Advertencia") 42 End If 43 ElseIf RadioButton2.Checked Then 44 DeletePermission(CStr(TextBox1.Text), CStr(TextBox2.Text)) 45 Else 46 MsgBox("Seleccione Añadir/Eliminar.", 16, "Advertencia") 47 End If 48 End If 49 End Sub 41