windows scripting profile registry

Actualizando el registro de cada perfil en Windows Server 2003



scripting profile (2)

Tengo un sistema Windows Server 2003 que se usa para servicios de terminal. No usamos perfiles móviles. No usamos scripts de inicio de sesión. Tengo alrededor de treinta a cuarenta cuentas que inician sesión en este sistema y, como tales, tienen perfiles locales.

Uno de los paquetes de software que se instalan en este sistema utiliza HKCU / Árbol de registro de software para su licencia y, por lo tanto, cada usuario tiene la clave de licencia en su perfil local.

¿Cómo puedo actualizar todos estos registros de perfiles diferentes de manera determinista?


Monte la colmena de registro de forma programática, cambie las teclas y luego cierre la colmena. Alternativamente, puede usar PSExec / runas para ejecutar el script "actualizar las claves" como ese usuario , que también resuelve el problema de "editar HKCU"


Hay varias maneras de lograr lo que desea: un clunkier que el otro. Los servidores de terminal pueden ser una pesadilla de implementación: es posible que los usuarios no tengan derechos para ejecutar msiexec.exe y, por lo tanto, la reparación automática de MSI podría fallar. Es por eso que generalmente prefiero usar archivos por lotes , scripts o archivos reg para el tipo de situación que enfrenta.

Usaría la función de Configuración activa de Microsoft. Este es simplemente un nombre elegante para una función que le permite "ejecutar algo una vez por perfil al iniciar sesión". Aquí hay una buena explicación: http://www.etlengineering.com/installer/activesetup.txt

Aquí hay una entrada de ejemplo de configuración activa para un archivo MSI (este es el contenido de un archivo * .reg):

REGEDIT4 [HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Active Setup/Installed Components/[ProductCode]] "StubPath"="[SystemFolder]msiexec.exe /q /fou [ProductCode]"

El comando "StubPath" puede ser cualquier cosa "ejecutable", y en su caso sugeriría que no se ejecute msiexec.exe sino más bien un vbscript a través de cscript.exe o algún otro mecanismo de proceso por lotes (CMD, REG, Etc ...). La razón es lo que dije anteriormente: es posible que msiexec.exe no se ejecute para los usuarios del servidor de terminal. En otras palabras, algo como esto:

REGEDIT4 [HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Active Setup/Installed Components/MyProduct] "StubPath"="[SystemFolder]cmd.exe /k C:/SomeScript.cmd"

Hay otras formas de agregar datos al perfil de cada usuario, como el uso de accesos directos MSI publicitados y la reparación automática , pero no recomendaría eso para los servidores de terminales. Consulte esta respuesta de serverfault.com para obtener información sobre problemas con el uso de archivos MSI para configuraciones de registro.