Thursday 19 October 2017

Oshell Regwrite Binary Options


Descripción El método RegWrite se utiliza para escribir un valor en el registro de Windows. Parámetros El parámetro Name es una cadena que especifica el valor o la clave a escribir. El parámetro Value especifica los datos que se deben escribir en el registro. El valor se convierte automáticamente en una cadena cuando Type es REGSZ o REGEXPANDSZ y un entero cuando Type es REGDWORD o REGBINARY. El parámetro Type opcional especifica el tipo de datos para el valor, las opciones válidas son REGSZ, REGEXPANDSZ, REGDWORD y REGBINARY. ExampleUseful Script Number 5 8211 Ajustar el registro de usuario por defecto Hive Michael Murgolo hizo un gran post sobre las diferentes maneras de ajustar los valores predeterminados al crear una imagen (Configuración de la configuración predeterminada para el despliegue de imagen de Windows) y una de las opciones presentadas fue a los cambios Registro de usuario predeterminado hive y carpetas de perfil. Tuve que hacer esto recientemente y reunir un script que se puede iniciar desde la secuencia de tareas MDT porque estaba encontrando mi perfil de administrador personalizado wasn8217t que se copian correctamente en el perfil de usuario predeterminado como parte de SysPrep. Como Michael mencionó en su post 8211 hay tres procesos principales8230, primero debes cargar la colmena de usuario por defecto (NTUser. dat) 8211 hacer los cambios que necesitas 8211 luego descargar la colmena del usuario. He reproducido la parte principal de mi script que hace este proceso para la discusión. La primera sección establece las dos variables que se utilizarán 8211 una para almacenar la clave temp (sTempHive) que vamos a cargar, y la segunda para mantener el archivo de perfil y la ubicación que queremos cargar (sDefaultUserHive) Para Windows Vista la entrada quotquotquotUSERPROFILE..DefaultNTUSER. DATquotquotquot se refiere a C: UsersDefaultntuser. dat sTempHive quotquotquotHKEYUSERSTestquotquotquot sDefaultUserHive quotquotquotUSERPROFILE..DefaultNTUSER. DATquotquotquot sSName oUtility. ScriptName establece oShell WScript. CreateObject (quotWscript. Shellquot) entonces, necesitamos iniciar el registro 8211 it8217s la ley oLogging. CreateEntry sSName Amp quot: Acciones Inicio 8211 Actualización Default Profilequot, LogTypeInfo oLogging. CreateEntry sSName amp quot: Carga del usuario predeterminado hivequot, LogTypeInfo La siguiente sección ejecuta reg load para cargar el archivo NTUser. dat desde el directorio de usuario predeterminado a la clave temp (HKEYUSERSTest) Establecido en la primera sección 8211 si hay un error la secuencia de comandos falla y se cierra con un número de fallo específico o registrar el éxito. carga oShell. run quotreg quot amp amp quot quot sTempHive amp sDefaultUserHive Si Errltgt0 Entonces 160 oLogging. CreateEntry sSName amp quot: No se pudo cargar el amplificador quot sección del Registro sDefaultUserHive, LogTypeError 160 ZTIProcess70 160 Exit Function End If quot amp oLogging. CreateEntry sSName: por defecto Hive de usuario cargado a quot amp sTempHive, LogTypeInfo oLogging. CreateEntry sSName amp quot: Iniciando cambios de registro8230 quot, LogTypeInfo Ahora que la colmena está cargada podemos empezar a cambiar stuff8230 como un ejemplo 8211 He configurado el código para cambiar el fondo de pantalla y el protector de pantalla para El usuario predeterminado 8211 de nuevo con la comprobación de errores y los códigos de error específicos Este código establece el fondo de pantalla (el archivo debe ser donde se establece la clave para oLogging. CreateEntry sSName amperio quot: Setting Default User Wallpaperquot, LogTypeInfo RegPath quotHKEYUSERSTestControl PanelDesktopquot oshell. RegWrite Regpath amp quotWallPaperquot, quotC: WindowsWebWallpaperCorporateWallpaper. bmpquot, quotREGSZquot Si Errltgt0 Entonces 160 oLogging. CreateEntry sSName amp quot: Error al actualizar settingquot archivo de papel tapiz, LogTypeError 160 ZTIProcess60 160 Exit Function End If 8230and este los códigos fija el protector de pantalla (de nuevo el archivo de 8211 tiene que ser Donde se establece la clave para oLogging. CreateEntry sSName amp quot: Configuración Default User Screensaverquot, LogTypeInfo RegPath quotHKEYUSERSTestControl PanelDesktopquot oshell. RegWrite Regpath amp quotSCRNSAVE. EXEquot, quotC: WindowsCorporateScreensaver. scrquot, quotREGSZquot If Errltgt0 Then 160 oLogging. CreateEntry sSName amp quot: Failed Para actualizar las configuraciones del protector de pantalla, LogTypeError 160 ZTIProcess50 160 Exit Function End If Una vez que todos los cambios se han realizado 8211 su tiempo para descargar la colmena de su clave temporal 8211 nuevamente con registro y comprobación de errores oLogging. CreateEntry sSName amp quot: hivequot, LogTypeInfo oShell. run quotreg descarga quot amp sTempHive Si Errltgt0 Entonces 160 oLogging. CreateEntry sSName amp quot: No se pudo descargar el hivequot registro de usuarios predeterminado, LogTypeError 160 ZTIProcess40 160 Exit Function End If oLogging. CreateEntry sSName amp quot: acciones completedquot, LogTypeInfo El script completado se puede agregar a su secuencia de tareas de MDT hacia el final 8211 para que se ejecute antes de la máquina SysPreps y reinicia para la captura. El script completo 8211 en formato MDT (para incluir el registro y acceso a las clases de ZTIUtility. wsf) con una serie de otros cambios incluidos está disponible en el Deployment Guys SkyDrive: Esta entrada fue aportado por Richard Smith, un consultor senior de Microsoft Services, Reino Unido . He añadido tu script en mi implementación de MDT 2008, pero, por desgracia, produce algunos errores. He encontrado esto en devx Const HKEYUSERS ampH80000003 Const HKEYPERFORMANCEDATA ampH80000004 que es diferente de su configuración. También, usando su línea: ltscript languagequotVBScriptquot srcquot8230.ZTIUtility. vbsquot / gt no ejecutó el script. El quot8230.quot tiene que ser removido. Aquí está la salida de zCFG-DefaultUser. log: ltLOG El registro del secuenciador de tareas se encuentra en X: windowsTEMPSMSTSLogSMSTS. LOG. Para los fracasos de la secuencia de tareas, consulte este log. LOGgtlttimequot12: 22: 54.000000quot datequot08-21-2008quot componentquotzCFG-DefaultUserquot contextquotquot typequot1quot threadquotquot filequotzCFG-DefaultUserquotgt ltLOGzCFG-DefaultUser: acciones de inicio 8211 de actualización predeterminada ProfileLOGgtlttimequot12: 22: 54.000000quot datequot08-21-2008quot componentquotzCFG-DefaultUserquot contextquotquot typequot1quot threadquotquot filequotzCFG-DefaultUserquotgt ltLOGzCFG-DefaultUser: Carga del hiveLOGgtlttimequot12 usuario por defecto: 22: 54.000000quot datequot08-21-2008quot componentquotzCFG-DefaultUserquot contextquotquot typequot1quot threadquotquot filequotzCFG-DefaultUserquotgt ltLOGzCFG-DefaultUser: Valor predeterminado de la colmena Cargado de quotHKEYUSERSTestquotLOGgtlttimequot12: 22: 57.000000quot datequot08-21-2008quot componentquotzCFG-DefaultUserquot contextquotquot typequot1quot threadquotquot filequotzCFG-DefaultUserquotgt ltLOGzCFG-DefaultUser: A partir del registro Changes8230 LOGgtlttimequot12: 22: 58.000000quot datequot08-21-2008quot componentquotzCFG-DefaultUserquot contextquotquot typequot1quot threadquotquot filequotzCFG-DefaultUserquotgt ltLOGzCFG-DefaultUser: Configuración de usuario por defecto WallpaperLOGgtlttimequot12: 22: 58.000000quot datequot08-21-2008quot componentquotzCFG-DefaultUserquot contextquotquot typequot1quot threadquotquot filequotzCFG-DefaultUserquotgt ltLOGZTI eRROR 8211 de error desconocida devuelto por zCFG-DefaultUser: raíz no válida en clave de registro quotHKEYUSERSTestControl PanelDesktopWallpaperquot. (-2147024809 0x80070057) LOGgtlttimequot12: 22: 58.000000quot datequot08-21-2008quot componentquotzCFG-DefaultUserquot contextquotquot typequot3quot threadquotquot filequotzCFG-DefaultUserquotgt ¿Tiene una versión actualizada de este script, ya que no soy un programador y no sabría por dónde empezar. That8217s corregir 8211 como Michael mencionó en su puesto 8211 Esta técnica tiene la ventaja de que todos los cambios a Usuario Predeterminado son conocidos y predecibles. Sin embargo, esta técnica también requiere que todos los cambios se reduzcan a elementos programables, es decir, cambios en el sistema de registro o en el archivo, no se pueda aplicar ninguna configuración manual. Dejé un post en el foro técnico relacionado. Tengo que tratar con una red de quotworkgroupquot de estilo antiguo, sin herramientas de AD para el despliegue, pero buscando una manera de automatizar la creación de la VPN de oficina (actualmente sólo Windows 7). Sería bueno si se script para pedir el nombre de usuario y la contraseña para utilizar para la creación de la VPN, pero otras cosas como el nombre de VPN, configuración IPV4 / IPV6 y otras modificaciones específicas podrían ser escritos dentro de él. Como toque final, necesita crear un acceso directo en el escritorio del usuario. Para el Grand Finale, necesita probar la conexión y si tiene éxito, coloque 3 unidades de red en la conexión VPN. Eso haría que mi Vida sea mucho más cotizada. Así que parece que con esta técnica, no necesitas usar sysprep para copiar la configuración. Sólo puede hacerlo cargando, cambiando los ajustes y descargando la colmena Cool. Bueno, si usó esto en combinación con sysprep, parecería darle todo lo que necesita. Wouldnt John Quirk dice: Este es un enfoque interesante, nunca he sido un fan de copiar un perfil modificado por defecto como it8217s a menudo reulted en los resultados impredecibles para me8230 También creo que cualquier modificación manual a la configuración de la imagen es en general mala práctica, por lo que Tienden a evitar que approach8230 En el momento que don8217t utilizar la modificación de la colmena de registro detallado anteriormente, pero tienden a crear un BuildSettings. msi que instalar como una entrada de ActiveSetup. Esto tiene la ventaja de (obviamente) ejecutar una vez para cada usuario que inicia sesión y tiene la capacidad de modificar los valores del registro y cuando sea necesario añadir archivos, si you8217re familiarizado con MSI (o cualquier otro lenguaje de scripting para esa materia, SMSInstaller.) Esto puede Ser un enfoque vale la pena mirar. El BuildSettings. msi I8217m que utiliza en el cliente I8217m con hoy establece lo siguiente (it8217s un XP ZTI job8230): Enciende ClearType ON, cambia variables de entorno TEMP, silencia sonido, activa NumLock, crea Nombres TNS Variable ENV y carpeta. Qué si la llave misma doesn8217t exista. I8217d gustaría realizar algunos cambios en la clave SoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced, pero no existe en el perfil de usuario predeterminado. ¿Qué hay de una manera de ajustar la configuración predeterminada cuando no está preparando una imagen El uso de esto en los entornos domésticos, etc, cuando varios usuarios utilizan la misma PC. Tengo una manera de hacer esto en XP, pero no todavía para Vista o Win7. Para XP, creo una cuenta de usuario limitada y personalizo todo el escritorio, barra de tareas, menú de inicio, vídeo, protector de pantalla, configuración de explorador de Windows, etc. Utilizo archivos de registro (o hacerlo manualmente) para configurar todas las configuraciones de IE (Zonas, , Configuración avanzada, Barras de herramientas, Ad-Ons, Proveedores de búsqueda, etc.). A continuación, cargue esta cola de usuario de plantilla para importar la configuración de energía (creada con una cuenta de administrador y modificada para que coincida con el nombre utilizado al cargar la colmena para el usuario de la plantilla) etc. que el usuario limitado puede realizar. Desactivar o borrar las listas de programas / documentos recientes. A continuación, copie este perfil modificado sobre el valor predeterminado (como en Q319974 03/02/2005 Rev2). Para corregir los problemas de personalización / nombres de la carpeta Desktop. ini / My Docs, anuncio un acceso directo en Startup a un archivo por lotes que ejecuta rundll32 mydocs, dll, PerUserInit y, a continuación, elimina el acceso directo para que se ejecute sólo en el primer inicio de sesión Que runonce clave de registro). Este método soluciona los problemas mencionados (2a, 2c (configuración del menú Inicio), 2d) para reemplazar manualmente el perfil de defalto mencionado en blogs. technet / deploymentguys / archive / 2008/02/18 / configuring-default-user-and-computer - Settings-for-windows-image-deployment. aspx. Para este uso, 2b no importa. I8217m no estoy seguro si 2e y 2f son problemas, pero si las aplicaciones aren8217t abierto con el perfil de usuario de plantilla que no puede ocurrir. Todavía no he visto los problemas 2e y 2f. Funciona bien en XP sin ningún problema que haya notado. Cualquier sugerencia para Vista o Win7 raíz no válida en clave de registro quotHKEYUSERSTestControl PanelDesktopWallpaperquot. (-2147024809 0x80070057 Se debe a que el script no puede resolver sDefaultUserHive quotquotquotUSERPROFILE..DefaultNTUSER. DATquotquotquot en un entorno WinPE Cambiarlo a sDefaultUserHive C: UsersDefaultNTUSER. DATquotquotquot Los trabajos no son no ordenados. Necesito editar una clave del registro con esto que utiliza el formato de REGBINARY y su secuencia de comandos no funciona en absoluto con él, puede por favor publicar un ejemplo de cómo que funcionaría con ese tipo de registro Thanks. Programming el WshShell Object WshShell es un nombre genérico para un objeto de gran alcance que le permite consultar e interactuar con Varios aspectos del shell de Windows Puede mostrar información al usuario, ejecutar aplicaciones, crear accesos directos, trabajar con el Registro y controlar las variables de entorno de Windows Las siguientes secciones tratan cada una de esas tareas útiles Referencia al objeto WshShell WshShell se refiere a El objeto Shell expuesto a través de la interfaz de automatización de WScript Por lo tanto, debe utilizar CreateObject para devolver este objeto: Desde aquí, puede utilizar la variable objWshShell para acceder a las propiedades de los objetos y métodos. Visualización de información al usuario Usted vio anteriormente que el método Echo de objetos WScript es útil para mostrar mensajes de texto simples al usuario. Puede obtener más control sobre el mensaje mostrado utilizando el método de objetos emergentes de WshShell. Este método es similar a la función MsgBox utilizada en Visual Basic y VBA en que permite controlar el título del cuadro de diálogo y los botones mostrados, así como para determinar cuáles de los botones que el usuario presionó. Heres la sintaxis: Deriva el argumento intType de una de dos maneras: Añadiendo los valores para cada opción Utilizando las constantes de VBScript separadas por signos plus () El script del Listado 12.4 muestra un ejemplo y la Figura 12.3 muestra el cuadro de diálogo resultante. Figura 12.3 El cuadro de diálogo que aparece cuando se ejecuta el script. Listado 12.4. Un ejemplo de VBScript que utiliza el método Popup para mostrar el cuadro de diálogo que se muestra en la figura 12.3 Aquí, tres variables8212 strText. StrTitle. Y intType 8212 almacenan los valores de los métodos Popup strText. StrTitle. Y argumentos intType, respectivamente. En particular, la siguiente instrucción deriva el argumento intType: También podría derivar el argumento intType sumando los valores que representan estas constantes (32.32 y 256, respectivamente), pero el script se vuelve menos legible de esa manera. Obtención de valores de retorno desde el cuadro de diálogo Mensaje Un cuadro de diálogo que muestra sólo un botón Aceptar es sencillo. El usuario hace clic en Aceptar o presiona Enter para eliminar el diálogo de la pantalla. Los estilos multibutton son un poco diferentes, sin embargo, el usuario tiene una opción de botones para seleccionar, y su script debe tener una manera de averiguar qué botón el usuario eligió, lo que le permite decidir qué hacer a continuación, en función de la selección de los usuarios . Para ello, almacene el valor de retorno de métodos Popup en una variable. La Tabla 12.2 enumera los siete posibles valores de retorno. Tabla 12.2. Valores de devolución de métodos emergentes Para procesar el valor devuelto, puede utilizar un If. Entonces. Else o Select Case para probar los valores apropiados. Por ejemplo, la secuencia de comandos mostrada anteriormente utiliza una variable llamada intResult para almacenar el valor de retorno del método Popup. El Listado 12.5 muestra una versión revisada del script que utiliza una sentencia VBScript Select Case para probar los tres posibles valores devueltos. Listado 12.5. Una secuencia de comandos que utiliza una instrucción Select Case para procesar los métodos emergentes Valor de retorno Aplicaciones en ejecución Cuando necesita que su secuencia de comandos ejecute otra aplicación, utilice el método Run: El objeto WshShell. El nombre del archivo que inicia la aplicación. A menos que el archivo esté en la carpeta de Windows, debe incluir la unidad y la carpeta para asegurarse de que la secuencia de comandos puede encontrar el archivo. La ruta de acceso completa y el nombre de archivo del archivo de acceso directo que desea crear. Utilice la extensión. lnk para un atajo de sistema de archivos (programa, documento, carpeta, etc.). Utilice la extensión. url para un acceso directo de Internet. El ejemplo siguiente crea y guarda un acceso directo en un escritorio de usuarios: Programación del objeto WshShortcut El método CreateShortcut devuelve un objeto WshShortcut. Puede utilizar este objeto para manipular varias propiedades y métodos asociados con archivos de acceso directo. Este objeto contiene las siguientes propiedades: Argumentos 8212Retorna o establece una cadena que especifica los argumentos utilizados al iniciar el acceso directo. Por ejemplo, supongamos que el destino de accesos directos es el siguiente: En otras palabras, este acceso directo inicia el Bloc de notas y carga el archivo Boot. ini. En este caso, la propiedad Arguments devolverá la siguiente cadena: Descripción 8212Retorna o establece una descripción de cadena del acceso directo. FullName 8212Retorna la ruta de acceso completa y el nombre de archivo del destino de accesos directos. Esto será el mismo que el valor strPathname utilizado en el método CreateShortcut. Tecla de acceso directo 8212Ruelve o establece la tecla de acceso rápido asociada con el acceso directo. Para establecer este valor, utilice la sintaxis siguiente: El objeto WshShortcut. Un valor de cadena del formulario Path, Index. Donde Ruta es la ruta de acceso completa del archivo de icono e Índice es la posición del icono dentro del archivo (donde el primer icono es 0). Heres un ejemplo: TargetPath 8212Retorna o establece la ruta del destino de atajos. WindowStyle 8212Retorna o establece el estilo de ventana utilizado por el destino de accesos directos. Utilice los mismos valores descritos anteriormente para el argumento IntWindowStyle de métodos de ejecución. WorkingDirectory 8212Retorna o establece la ruta del directorio de trabajo de atajos. Si está trabajando con accesos directos de Internet, tenga en cuenta que sólo admiten dos propiedades: FullName y TargetPath (el destino de URL). El objeto WshShortcut también admite dos métodos: Guardar 8212 Guarda el archivo de acceso directo en el disco. Resolver 8212 Utiliza la propiedad TargetPath de accesos directos para buscar el archivo de destino. Heres la sintaxis: El listado 12.6 muestra un ejemplo completo de un script que crea un acceso directo. Listado 12.6. Un script que crea un archivo de acceso directo Trabajando con entradas de registro Youve visto a lo largo de este libro que el registro es una de las estructuras de datos más importantes en Windows. Sin embargo, el Registro no es una herramienta que sólo Windows rinde. La mayoría de las aplicaciones de 32 bits hacen uso del Registro como un lugar para almacenar opciones de configuración, valores de personalización que el usuario seleccionó y mucho más. Curiosamente, sus secuencias de comandos pueden entrar en el acto también. No sólo sus scripts pueden leer el valor actual de cualquier configuración del Registro, sino que también pueden usar el Registro como un área de almacenamiento. Esto le permite realizar un seguimiento de la configuración del usuario, los archivos utilizados recientemente y cualquier otro dato de configuración que desee guardar entre sesiones. Esta sección le muestra cómo usar el objeto WshShell para manipular el Registro desde sus scripts. Configuración de lectura del Registro Para leer cualquier valor del Registro, utilice los objetos WshShell Método RegRead: El nombre del valor del Registro o la clave que desea eliminar. Si strName termina con una barra invertida (), RegDelete elimina la clave, de lo contrario, RegDelete elimina el valor. StrName debe comenzar con uno de los nombres de clave raíz detallados en el método RegRead. Para eliminar el valor NumberOfReboots utilizado en el ejemplo anterior, debería utilizar las siguientes instrucciones: Trabajar con variables de entorno Windows Vista realiza un seguimiento de varias variables de entorno que contienen datos como la ubicación de la carpeta de Windows, la ubicación de los archivos temporales Carpeta, la ruta de comandos, la unidad principal y mucho más. ¿Por qué necesitaría estos datos? Un ejemplo sería el acceso a archivos o carpetas dentro de la carpeta principal de Windows. En lugar de adivinar que esta carpeta es C: Windows. Sería mucho más fácil simplemente consultar la variable de entorno SystemRoot. Del mismo modo, si tiene un script que accede a los archivos de una carpeta Mis documentos de los usuarios, codificar el nombre de usuario en la ruta del archivo es inconveniente porque significa crear scripts personalizados para cada usuario posible. En su lugar, sería mucho más fácil crear sólo un script único que hace referencia a la variable de entorno UserProfile. Esta sección le muestra cómo leer datos de variables de entorno dentro de sus scripts. Las variables de entorno definidas se almacenan en la colección Environment, que es una propiedad del objeto WshShell. Las variables de entorno de Windows Vista se almacenan en el entorno Proceso, por lo que hace referencia a esta colección de la siguiente manera: El Listado 12.8 muestra un script que se ejecuta a través de esta colección, añade cada variable a una cadena y luego muestra la cadena. Listado 12.8. Un script que muestra las variables de entorno de sistemas La Figura 12.4 muestra el cuadro de diálogo que aparece (su kilometraje puede variar). Figura 12.4 Inventario completo de las variables de un entorno de sistemas. Si desea utilizar el valor de una variable de entorno determinada, utilice la siguiente sintaxis:

No comments:

Post a Comment