* Imagenes de instalación de las versiones estables para Mageia y OpenMandriva.

OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.

Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.

Mapeo de unidades falla dependiendo del usuario en Dominio SAMBA

Hola, tengo montado un dominio con samba. todo funciona perfectamente, el unico problema que tengo es con el script del netlogon, ya que quiero que me mapee unas carpetas a unas unidades en windows dependiendo del grupo al que pertenezcan los usuarios. El script que tengo no saca a que grupo pertenecen los usuarios, es lo unico me me hace falta. Tal y como esta el script me intenta mapear todas las carpetas y unidades, pero como esto va mapeado en el mismo sitio dependiendo del grupo, me sale el error de que ya esta en uso.

hos dejo el codigo del script.


Function fl_Es_Miembro(str_Grupo)
Dim str_ADs_Path 'Cadena utilizada para generar la ruta ADSI del usuario
Dim obj_User 'Objeto que se cargará la información del usuario
Dim obj_Grupo 'Objeto para cada cargar la información de un grupo
Dim obj_Net 'Objeto Network del que partimos para obtener el objeto usuario
Dim WSHShell
Dim grpPrimaryID 'ID del grupo primario

'Creamos el objeto Shell
Set WSHShell = CreateObject("WScript.Shell")
'Creamos el objeto Network
Set obj_Net = CreateObject("Wscript.Network")

'Hacemos que la web inicial sea la del marca
WSHShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Start Page", "http://www.marca.com"

'Montamos la ruta ADSI del usuario y creamos el objeto de usuario
Set obj_User = GetObject("WinNT://nombredeldominio/" & Obj_Net.Username & ",user")

'En este bucle vamos recorriendo uno a uno los grupos a los que pertenece el usuario
'Si el grupo coincide con el recibido como parámetro salimos de la función
'devolviendo True

grpPrimaryID = obj_user.Get("PrimaryGroupID")
If StrComp(str_Grupo, grpPrimaryID, vbTextCompare) = 1 Then
fl_Es_Miembro =True
Exit Function
End If

'Si hemos terminado el bucle, es porque no se ha encontrado el grupo recibido entre
'aquellos a los que pertenece el usuario, por tanto la devolución de esta función
'será False
fl_Es_Miembro = False

End Function

'Se utiliza la funcion para el grupo Sistemas
If fl_Es_Miembro("Sistemas")=True Then

'creamos el objeto NetWork que utilizaremos para montar la unidad
Set obj_Net = CreateObject("Wscript.Network")

'Mapeamos la unidad
obj_Net.RemoveNetworkDrive "z:", True, True
WScript.sleep 2000
obj_Net.MapNetworkDrive "z:", "\\PDCSERVER\Comun"
obj_Net.RemoveNetworkDrive "y:", True, True
WScript.sleep 2000
obj_Net.MapNetworkDrive "y:", "\\PDCSERVER\Perfiles"
obj_Net.RemoveNetworkDrive "x:", True, True
WScript.sleep 2000
obj_Net.MapNetworkDrive "x:", "\\PDCSERVER\Departamentales\Sistemas"

EnD If

'Se utiliza la funcion para el grupo Desarrollo
If fl_Es_Miembro("Desarrollo")=True Then

'creamos el objeto NetWork que utilizaremos para montar la unidad
Set obj_Net = CreateObject("Wscript.Network")

'Mapeamos la unidad
obj_Net.RemoveNetworkDrive "z:", True, True
WScript.sleep 2000
obj_Net.MapNetworkDrive "z:", "\\PDCSERVER\Comun"
obj_Net.RemoveNetworkDrive "y:", True, True
WScript.sleep 2000
obj_Net.MapNetworkDrive "y:", "\\PDCSERVER\Perfiles"
obj_Net.RemoveNetworkDrive "x:", True, True
WScript.sleep 2000
obj_Net.MapNetworkDrive "x:", "\\PDCSERVER\Departamentales\Desarrollo"

End if

Gracias.

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.


Gravatar de alejandroes

# 91752 Porque no creas un bat, para

Porque no creas un bat, para que se ejecute cada vez que inicie sesion el usuario y mapee las unidades que necesite?
Alejandro
Linux User #470096

Alejandro
Linux User #470096



Gravatar de egoitzro

# 91756 Si eso seria lo mas sencillo

Si eso seria lo mas sencillo pero tengo que hacerlo en un solo script y lo unico que no consigo es que me compare la variable del grupo del usuario con la del mapeo de unidades.

En este caso solo tendria que hacer dos script diferentes pero tendria que metelos en las carpetas de los usuarios, tal y como lo tengo con ponerlo en la carpeta de netlogon del samba una vez me vale, y es asi como me lo han pedido que lo haga.

gracias

Un Saludo
Egoitz R.

Un Saludo
Egoitz R.



Gravatar de katnatek

# 91758 El problema podría ser

El problema podría ser la función ya que si el script te monta repetidamente las unidades entonces quiere decir que te esta devolviendo True en ambas comprobaciones.

Lo que es posible solo si el usuario pertenece a ambos grupos o la función no esta haciendo bien su trabajo, si tienes un depurador revisa la ejecución de tu código.

Miembro de NoticiasDrake, MdkTrans y del grupo de Empaquetadores



Gravatar de egoitzro

# 91772 El problema es que no

El problema es que no funciona bien, ya que lo he probado con usuarios diferentes que estan den diferentes grupos y me hace lo mismo.

Un Saludo
Egoitz R.

Un Saludo
Egoitz R.



Gravatar de katnatek

# 91776 Usa el buscador

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.