
Tengo un proceso automatizado que se supone que crea una imagen y la implementa con un usuario que está configurado para ejecutar un servicio. El usuario necesita acceso a un recurso compartido de archivos de la red Azure. Para proporcionar las credenciales para acceder al recurso compartido de archivos, guardo las credenciales en el Administrador de credenciales de Windows mediante el siguiente comando y lo ejecuto como mi cuenta de servicio.
cmdkey /add:storage.file.core.windows.net /user:Azure\storage /pass:password
Luego agrego el mapa de red a través de
net use Z: \\storage.file.core.windows.net\share /persistent:yes
La red está asignada y puedo acceder a la ruta UNC anterior. Luego preparo la VM para la captura de imágenes ejecutando sysprep y generalizándolo.
C:\Windows\Sysprep\Sysprep.exe /oobe /generalize /quiet /quit /mode:vm
Cuando vuelvo a hacer girar la imagen, puedo iniciar sesión en mi cuenta de servicio, pero la clave cmd que agregué desapareció. Puedo escribir una tarea programada para volver a agregar la clave cmd, pero me preguntaba si realmente es Sysprep el que borra mis credenciales de Windows y si hay alguna manera de evitarlo.
Respuesta1
Estaba usando este método para poder crear una imagen que ya tenga una unidad de red montada. Lo que descubrí fue que mi proceso automatizado (Packer), incluso si se ejecutaba con la misma cuenta, no comparte la credencial de la sesión del script y la credencial de la sesión del usuario.
Montar un recurso compartido de red mediante un script (independientemente de si se está ejecutando en la misma cuenta) y esperar que el recurso compartido se monte en sesiones/aplicaciones de usuario no funcionará. La credencial no se comparte entre los dos.
Lo que hice fue que mi script creara un archivo por lotes que monta el recurso compartido de red tan pronto como se ejecuta mi servicio. Sé que mi servicio se ejecutará en la sesión como la sesión autenticada, así que puedo simplemente llamar a mi archivo por lotes y montar el recurso compartido de red de mi servicio y mi servicio debería poder acceder al recurso compartido de red.
Es interesante notar que si mi servicio se autentica como mi cuenta y monta el recurso compartido de red, podría realizar RDP y acceder al recurso compartido de red sin proporcionar credenciales, lo que indica que la sesión de la aplicación se comparte entre una sesión interactiva de usuario.