Visual Basic - script logon

Life is soft - evento anual de software empresarial
 
Vista:

script logon

Publicado por amendez (2 intervenciones) el 04/06/2007 07:56:23
Muy buenas. Necesito un script logo vbs que haga ciertas cosas. El script de momento es el siguiente.

Dim oNet, sUser, startTime, unidad, ruta
On Error Resume Next

' Objeto Red
Set oNet = CreateObject("WScript.Network")

'Buscamos el usuario que ha iniciado la sesión
sUser = oNet.UserName
startTime = Now

Do While sUser = ""
If DateDiff("s", startTime, Now) > 600 Then Wscript.Quit
Wscript.Sleep 500
sUser = oNet.UserName 'almacenamos en la variable sUser el nombre del usuario
Loop

'Comprobamos si la carpeta especifica del usuario existe
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

unidad = "P:" 'seleccionamos la letra de la unidad deseada
ruta = "\\b1ads101\Personales\" 'seleccionamos la ruta donde se encuentra la carpeta personal del usuario

If (fso.FolderExists(ruta & sUser )) Then

' Mapeado de la unidad particular de cada usuario
oNet.RemoveNetworkDrive unidad
oNet.MapNetworkDrive unidad, ruta & sUser
else 'Si no existe le mostramos un mensaje por pantalla
WScript.Echo "Aun no tienes una carpeta personal, ponte en contacto con el responsable de Sistemas para consegir una"

end if

'Funcion para saber a que grupo pertenece el usuario que a iniciado sesión
Function fl_Es_Miembro(str_Grupo)

Dim str_ADs_Path 'Cadena utilizada para generar la ruta ADSI del usuario
Dim obj_Usuario 'Objeto que se cargará con 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


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

'Montamos la ruta ADSI ("Interfaz de servicios de Active Directory") del usuario y creamos el objeto de usuario
str_ADs_Path = obj_Net.UserDomain & "/" & obj_Net.UserName
Set obj_User = GetObject("WinNT://" & str_ADs_Path & ",user")

'En este bucle vamos recorriendo uno a uno los grupos a los que pertenece el usuario
For Each obj_Grupo In obj_User.Groups

'Si el grupo coincide con el recibido como parámetro salimos de la función
'devolviendo True
If StrComp(str_Grupo, obj_Grupo.Name, vbTextCompare) = 0 Then
fl_Es_Miembro =True
Exit Function
End If

Next

'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

Dim letra 'Letra deseada para esta unidad
Dim rutaDesarrollo 'Ruta de la carpeta desarrollo
Dim rutaSistemas 'Ruta de la carpeta Sistemas

letra = "W:"
rutaDesarrollo = "\\b1ads101\Desarrollo"
rutaSistemas = "\\b1ads101\Sistemas"

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

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

'Mapeamos la unidad
obj_Net.RemoveNetworkDrive letra
obj_Net.MapNetworkDrive letra, rutaDesarrollo

EnD If

'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 letra
obj_Net.MapNetworkDrive letra, rutaSistemas
EnD If

'Añadir Impresoras

Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.AddWindowsPrinterConnection "\\b1ads101\Lanier_5618"
WshNetwork.SetDefaultPrinter "\\b1ads101\Lanier_5618" 'La pone por defecto

Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.AddWindowsPrinterConnection "\\b1ads101\HPColor-PS"

Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.AddWindowsPrinterConnection "\\b1ads101\HPColor-PCL"

'Pagina de inicio
Dim WSHShell
Set WSHShell = CreateObject("WScript.Shell")

WSHShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Start Page", "http://www.deustosistemas.net"

Lo que necesito es lo siguiente:
- Antes de mapear una de las unidades que se mapean en este script comprobar si dicha unidad ya se encuentra mapeada con otra Letra diferente y de ser asi no mapearla.
- Comprobar que resolucion tiene el usuario que inicia la sesión y dependiendo de su resolucion poner un fondo de escritorio u otro.

Si fuerais capaces de ayudarme os lo agradeceria mucho, ya que no se como conseguir hacerlo

saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:script logon

Publicado por amendez (2 intervenciones) el 05/06/2007 16:58:04
y si alguno sabe como se cogen los parametros tmb se lo agradeceria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar