Logon Script para mapear unidades de Red

28/11/2005 - 16:18 por RAFA | Informe spam
Hola:
En windows Nt se podia mapear una unidad en el script de logon dependiendo
del grupo al que perteneciera el usuario gracias a InGroup.
Por ejemplo
If InGroup ("X",Usergroups) then
mapeo
End if
He migrado a windows2003 y ejecuto mi script de logon que ahora es un script
con extension .vbs pero no encuentro forma de hacer esto mismo.
Alguien tiene alguna idea???
Como puedo mapear una u otra unidad de red dependiendo del grupo / grupos en
los que se encuentre un usuario???

Preguntas similare

Leer las respuestas

#1 Guillermo Delprato [MS-MVP]
28/11/2005 - 20:33 | Informe spam
Puedes adaptar el que pego abajo

'='
' VBScript Source File -- Created with SAPIEN Technologies PrimalSCRIPT(TM)
'
' NAME: <filename>
'
' AUTHOR: Bryan Nyce , Home
' DATE : 4/10/2003
'
' COMMENT: <comment>
'
'=Option Explicit
On Error Resume Next

Dim oFSO, oWshNetwork, oGroupDict

'Map drives based on Group memberships
If IsMember("Group1") Then
MapDrive "S:", "\\Server\Share"
End If

If IsMember("Group2") Then
MapDrive "T:", "\\Server\Share1"
MapDrive "P:", "\\Server2\Share2"
End If

'Supporting function to enumerate group memberships
Function IsMember(sGroup)
Dim sAdsPath, oUser, oGroup

If IsEmpty(oGroupDict) Then
Set oGroupDict = CreateObject("Scripting.Dictionary")
oGroupDict.CompareMode = vbTextCompare

sAdsPath = oNet.UserDomain & "/" & oNet.UserName
Set oUser = GetObject("WinNT://" & sAdsPath & ",user")

For Each oGroup In oUser.Groups
oGroupDict.Add oGroup.Name, "-"
Next

Set oUser = Nothing
End If

IsMember = CBool(oGroupDict.Exists(sGroup))

End Function

'Supporting function to Map drives
'If drive letter is in use, attempts to remove connection.
'Returns True if drive mapped, False otherwise.
Function MapDrive(sDrive, sShare)
Dim oDrive

On Error Resume Next
Err.Clear

If oFSO.DriveExists(sDrive) Then
Set oDrive = oFSO.GetDrive(sDrive)
If Err.Number <> 0 Then
Err.Clear




Saludos

Guillermo Delprato
MVP-MCT-MCSE-MCSA-MCP
Buenos Aires, Argentina

NOTA. Por favor, las preguntas y comentarios en los grupos, así nos
beneficiamos todos.

http://support.microsoft.com/kb/555375/en-us

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho. Ud. asume los riesgos This posting is
provided "AS IS" with no warranties, and confers no rights. You assume
all risk for your use.




RAFA wrote:
Hola:
En windows Nt se podia mapear una unidad en el script de logon
dependiendo del grupo al que perteneciera el usuario gracias a
InGroup.
Por ejemplo
If InGroup ("X",Usergroups) then
mapeo
End if
He migrado a windows2003 y ejecuto mi script de logon que ahora es un
script con extension .vbs pero no encuentro forma de hacer esto mismo.
Alguien tiene alguna idea???
Como puedo mapear una u otra unidad de red dependiendo del grupo /
grupos en los que se encuentre un usuario???
Respuesta Responder a este mensaje
#2 icegon
29/12/2005 - 10:23 | Informe spam
estoy utilizando esta funcion para enumerar los grupos a los que pertenece el
usuario:

on error resume next

Function fl_Es_Miembro(str_Grupo)

Dim str_ADs_Path
Dim obj_Usuario
Dim obj_Grupo
Dim obj_Net

Set obj_Net = CreateObject("Wscript.Network")

str_ADs_Path = obj_Net.UserDomain & "/" & obj_Net.UserName

Set obj_User = GetObject("WinNT://" & str_ADs_Path & ",user")

For Each obj_Grupo In obj_User.Groups

If StrComp(str_Grupo, obj_Grupo.Name, vbTextCompare) = 0 Then

fl_Es_Miembro =True

Exit Function

End If

Next

fl_Es_Miembro = False

End Function



El problema me lo encuentro con los grupos anidados. Es decir, un usuario
pertenece a un grupo y a su vez ese grupo al que pertenece forma parte de
otro grupo. El script controla en que grupos aparece la cuenta del usuario
pero no controla los grupos a los que pertenece.a ver si me explico:

PEPITO > GRUPO SISTEMAS (si el usuario forma parte de sistemas conecto la
unidad de sistemas)

GRUPO SISTEMAS --> GRUPO GENERAL (conecto a los usuarios de sistemas la
unidad general)

¿Existe alguna forma que ese script entienda que PEPITO forma parte de
SISTEMAS y le conecte la unidad general?

Muchas gracias.









"Guillermo Delprato [MS-MVP]" escribió:

Puedes adaptar el que pego abajo

'=> '
' VBScript Source File -- Created with SAPIEN Technologies PrimalSCRIPT(TM)
'
' NAME: <filename>
'
' AUTHOR: Bryan Nyce , Home
' DATE : 4/10/2003
'
' COMMENT: <comment>
'
'=> Option Explicit
On Error Resume Next

Dim oFSO, oWshNetwork, oGroupDict

'Map drives based on Group memberships
If IsMember("Group1") Then
MapDrive "S:", "\\Server\Share"
End If

If IsMember("Group2") Then
MapDrive "T:", "\\Server\Share1"
MapDrive "P:", "\\Server2\Share2"
End If

'Supporting function to enumerate group memberships
Function IsMember(sGroup)
Dim sAdsPath, oUser, oGroup

If IsEmpty(oGroupDict) Then
Set oGroupDict = CreateObject("Scripting.Dictionary")
oGroupDict.CompareMode = vbTextCompare

sAdsPath = oNet.UserDomain & "/" & oNet.UserName
Set oUser = GetObject("WinNT://" & sAdsPath & ",user")

For Each oGroup In oUser.Groups
oGroupDict.Add oGroup.Name, "-"
Next

Set oUser = Nothing
End If

IsMember = CBool(oGroupDict.Exists(sGroup))

End Function

'Supporting function to Map drives
'If drive letter is in use, attempts to remove connection.
'Returns True if drive mapped, False otherwise.
Function MapDrive(sDrive, sShare)
Dim oDrive

On Error Resume Next
Err.Clear

If oFSO.DriveExists(sDrive) Then
Set oDrive = oFSO.GetDrive(sDrive)
If Err.Number <> 0 Then
Err.Clear




Saludos

Guillermo Delprato
MVP-MCT-MCSE-MCSA-MCP
Buenos Aires, Argentina

NOTA. Por favor, las preguntas y comentarios en los grupos, así nos
beneficiamos todos.

http://support.microsoft.com/kb/555375/en-us

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho. Ud. asume los riesgos This posting is
provided "AS IS" with no warranties, and confers no rights. You assume
all risk for your use.




RAFA wrote:
> Hola:
> En windows Nt se podia mapear una unidad en el script de logon
> dependiendo del grupo al que perteneciera el usuario gracias a
> InGroup.
> Por ejemplo
> If InGroup ("X",Usergroups) then
> mapeo
> End if
> He migrado a windows2003 y ejecuto mi script de logon que ahora es un
> script con extension .vbs pero no encuentro forma de hacer esto mismo.
> Alguien tiene alguna idea???
> Como puedo mapear una u otra unidad de red dependiendo del grupo /
> grupos en los que se encuentre un usuario???



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida