Script para copiar Ficheros y/o Carpetas en los perfiles de un Equipo


Escenario

Tenemos un equipo con varios perfiles de usuarios y queremos copiar ficheros y/o carpetas en cada uno de los perfiles que han iniciado sesión en el equipo.

Procedimientos:

  • Tomaremos la lista Perfiles de la Clave del Registro HK_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList y la volcaremos en un Array mediante una función

‘ Procedimiento para listar los perfiles en en un equipo
‘ Recibe la matriz de Perfiles, comprueba la constate lista y muestra la lista de perfiles
Sub ListProfiles(ArrPerfiles)
Dim i
Dim StrM
For i= 0 To UBound(ArrPerfiles,1)
If Not ArrPerfiles(i) = “” Then
StrM =  i & “–” & ArrPerfiles(i)
Mensaje StrM
End If
Next

End Sub

Function FilterProfiles(ArrPerfiles)
Dim i,j,u
Dim strList
Dim arrFilterProfile()

‘Comprobamos si el ultimo elmento de la lista es menor que el numero de perfiles
If SinceElement > UBound(ArrPerfiles,1) Or SinceElement < 0 Then
ReDim Preserve arrFilterProfile(0)
Mensaje(“Error!!!: Criterios de Filtrado erroneo”)
FilterProfiles = arrFilterProfile
Exit Function
End If
j=0
For i = SinceElement To UBound(ArrPerfiles,1)
If FindElementsInStr(ArrPerfiles(i)) = 0 And Not ArrPerfiles(i)= “” Then
ReDim Preserve arrFilterProfile(i-SinceElement)
arrFilterProfile(i-SinceElement-j) = ArrPerfiles(i)
Else
j = j + 1
End If
Next
‘Eliminamos los elmentos vacios del final de la matriz
For i=0 To UBound(arrFilterProfile,1)
If IsEmpty(arrFilterProfile(i)) Then
u = u + 1
End If
Next
ReDim Preserve arrFilterProfile(UBound(arrFilterProfile,1)-u)
FilterProfiles = arrFilterProfile
End Function

  • Generaremos tantas funciones o procedimientos para cubrir las siguientes funciones:
    • Filtrar Perfiles a partir de uno y/o conteniendo una cadena
    • Procedimientos de copia de ficheros y/o carpetas a partir de un Array de Perfiles
  • Definimos un juego de Constantes a modo de parámetros:

    ‘*************************** Parametros del programa *******************************

    ‘Parametros de Filtrado
    Const SinceElement = 3 ‘Listado de perfiles desde el elemento indicado
    Const ExcludeText = “admin” ‘

    ‘Parametros de Copia de Carpetas
    Const BoolCopyFolder = False
    Const CarpetaOrigen = “C:\Test Prueba”

    ‘Parametros de Ficheros
    Const BoolCopyFiles = True
    Const FicherosOrigen = “C:\Test\*.*”

    ‘Parametros de Log
    Const BoolLog = True
    strPath = “”
    strLogFile = strPath & WScript.ScriptName & “.log”
    Set WshNetwork = WScript.CreateObject(“WScript.Network”)
    strBeginnerLog = CStr(Now) & ” ” & WshNetwork.ComputerName & “: “

  • El script se encuentra ubicado  CopiarHaciaPerfiles.zip

Enlaces de Interés

Para más información consultar User Profile Structure

Disclaimer

Este ejemplo de script no esta soportado por el autor del artículo. Este ejemplo de script es ta provisto sin garantía de ningún tipo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s