Mostrando entradas con la etiqueta windows. Mostrar todas las entradas
Mostrando entradas con la etiqueta windows. Mostrar todas las entradas

sábado, 10 de octubre de 2020

MBR2GTP: Convertir disco con MBR a GPT

 Hace mucho tiempo que tendría que haber hecho la conversión de la estructura del disco duro de mi portátil de MBR a GPT. Creo recordar que en su momento quise hacerlo pero tenía que formatearlo y no me apetecía nada. 

Así, hace no más de una semana y pico se me ocurrió buscar cómo se podía hacer y me encontré con algunas páginas que indicaban que a partir de Windows 10 v1709 existía una herramienta llamada MBR2GTP.exe que lo hacía "perfectamente" (entrecomillado porque cuando uno tiene que hacerlo no siempre es tan sencillo como cabría esperar).

Es importante el disclaimer de siempre, por si las moscas: podrías perder tus datos o el sistema. Por lo que tirar de esta herramienta es solo tu decisión y responsabilidad todo lo que pase con ellos.

La primera sorpresa fue que en la búsqueda, una de las primeras entradas era un vídeo en Youtube de Sysadmit. Ya hace mucho tiempo que le tengo en mi feed y está en el listado de blogs a los que sigo.

Normalmente pondría el paso a paso de lo que fui haciendo pero creo que en esta ocasión lo voy a hacer de otra forma. 

Esta herramienta se ejecuta desde un cmd con privilegios de administración. Y se encuentra en %system32%. La ejecución seria

MBR2GTP.EXE [/validate | /convert] /disk:0 /allowFullOS [/logs:rutaLogs]

Con estos parámetros se consigue lo siguiente, si bien algunos son muy intuitivos por su nombre:

  • validate: es el modo prueba. Antes de lanzarse a ver si te dejaría como norma general hacer la conversión.
  • convert: ejecutar de forma efectiva la conversión
  • disk: se indica qué disco duro quieres convertir
  • alloFullOS: sobre todo si es el mismo disco duro donde tienes el sistema operativo que estás ejecutando, te obligará a pasar este parámetro. De hecho, si no lo pasas, ya se encargará de recordártelo especificamente.
  • logs: Parece ser que lo normal es que te guarde unos logs directamente en %windir%. Yo no fui capaz de encontrarlos y tuve que ponerle este parámetro. Ayuda bastante a debuguear. Te genera cuatro ficheros: diagerr.xmldiagwrn.xmlsetupact.log y setuperr.log.

Con una validación sin problemas obtendrías algo así:

mbr2gpt.exe /validate /disk:0 /allowFullOS 

MBR2GPT: Attempting to validate disk 0
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
MBR2GPT: Validation completed successfully

Pero te puedes encontrar con algún problema:

MBR2GPT: Attempting to validate disk 0
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
Disk layout validation failed for disk 0

Este error puede venir porque tu disco duro en MBR tiene más particiones de las que realmente permite esta herramienta. Sólo funcionará si tienes como máximo 3 particiones. Si tienes una específica para datos ya irían 4: interna oculta del sistema, sistema operativo, recovery... (Ya van tres)... Y la cuarta de datos. 

Aunque el log de error donde lo redirigía no tiene todos los mensajes el que se encuentra en %windir% sí. Para este caso en concreto setuperr.log mostraria:

_datetime_, Error                        ValidateLayout: Too many MBR partitions found, no room to create EFI system partition.

_datetime_, Error                        Disk layout validation failed for disk 0

La solución para continuar con el proceso pasaría por eliminar una partición. Las dos primeras no puedes: te quedarías sin sistema operativo y no podrías arrancarlo. 

Una solución que se encuentra por internet (¡¡pero no la hagas hasta que termines de leer todo el post!!): "he eliminado la partición del recovery y me ha funcionado.". Puede ser una locura que temporalmente se podría pasar por alto... Depende de cada uno si se quiere arriesgar. Sabiendo las consecuencias... Y no se puede eliminar desde dismgmt.msc por lo que habría que utilizar diskpart desde cmd, evidentemente con privilegios de administración.

diskpart
list partition
select partition 3
delete partition override
list partition


Si ejecutas volvemos a ejecutar el validate:

MBR2GPT.EXE /validate /disk:0 /allowFullOS

MBR2GPT: Attempting to validate disk 0
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
Cannot find OS partition(s) for disk 0

Nos da el anterior error. Acabamos de eliminar la partición del recovery ahora nos suelta este otro error.

Las opciones pasarían por:
  1. Volver a crear la partición del recovery si es que se eliminó usando diskpart y poniendo el tipo de partición 0x27. Además, quedaría un paso adicional que ahora explicaré.
  2. Eliminar la cuarta partición: que puede ser la de datos. Espérate. 
¿He eliminado la partición del recovery?

Llegado el caso de haber eliminado la partición del recovery, aunque se haya creado de nuevo, nos encontraremos con que los logs muestran otros mensajes de error.

_datetime_, Error                        GetOSDeviceVolume: Cannot get NT path for entry.[gle=0x000000ea]
_datetime_, Error                        FindOSPartitions: Cannot get volume name for the recovery boot entry. Error: 0x000000EA[gle=0x000000ea]
_datetime_, Error                        Cannot find OS partition(s) for disk 0[gle=0x000000ea]


Este mensaje puede despistar mucho. Pensar en que al haber recreado la partición del recovery se quitaría... Y no es así. Me encontré con la solución, pero viendo ahora todo el bloque entero del log, tiene más sentido:

_datetime_, Info                         BCD: Opening store. Flags: 0x0
_datetime_, Info                         BCD: Store path: "\??\GLOBALROOT\device\harddisk0\partition1\Boot\BCD"
_datetime_, Info                         BCD: Loaded hive at BCD00000000
_datetime_, Info                         BCD: Opening object {_ID01_}
_datetime_, Info                         FindOSPartitions: Default boot entry: {_ID02_}
_datetime_, Info                         BCD: Opening object {_ID02_}
_datetime_, Info                         VERBOSE: Device path: \Device\HarddiskVolume2
_datetime_, Info                         VERBOSE: Dos path: \\?\GLOBALROOT\Device\HarddiskVolume2
_datetime_, Info                         FindOSPartitions: Volume name for the default boot entry: \\?\Volume{_ID04_}\
_datetime_, Info                         BCD: Opening object {**_ID05_**}
_datetime_, Error                        GetOSDeviceVolume: Cannot get NT path for entry.[gle=0x000000ea]
_datetime_, Error                        FindOSPartitions: Cannot get volume name for the recovery boot entry. Error: 0x000000EA[gle=0x000000ea]
_datetime_, Error                        Cannot find OS partition(s) for disk 0[gle=0x000000ea]

El problema radica en que en la base de datos del BCD existía la partición de recuperación, que el ejemplo que pongo está con ID05. Si quieres dejar eliminada esta partición para no tener que cargarte la siguiente, o ya la has eliminado y tirarás con la siguiente, no podrás continuar hasta que no arregles los registros del bcd. La opción que seguí fue eliminar el registro. Y ya lo arreglaría (y lo haré en algún momento) más adelante.

Enumeramos los registros que tiene bcd:

bcdedit.exe /enum /v

Buscamos en el listado que nos muestra el identificador que tiene de etiqueta recoverysecuence y lo eliminamos:

bcdedit.exe /delete {__idDelRecoverySequence__}

Si volvemos a hacer la enumeración ya no lo deberíamos de ver.

Por lo tanto: en este punto, que hemos eliminado la partición de recuperación, ya no habrá acceso a la misma al arrancar: hayas creado una partición con su sistema de ficheros específico o hayas dejado su espacio sin tocar.

Línea de pegote... En algún sitio proponen ejecutar:

bcdboot c:\Windows /f bios /s c:

Pero no funcionará.

¿Elimino la cuarta partición?

Aunque estoy generalizando, este es mi caso: hice un rsync de la partición de datos contra el servidor de backups (actualicé los datos) y la eliminé. Con la diferencia de que después de eliminar la partición fue cuando descubrí el problema del BCD.

Como resumen antes de volver a lanzar MBR2GTP.exe
  • Partición recovery y su entrada BCD eliminada.
  • Partición de datos eliminada sin necesidad de tocar recovery.
¿Ejecucion final?

mbr2gpt.exe /validate /disk:0 /allowFullOS 

MBR2GPT: Attempting to validate disk 0
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
MBR2GPT: Validation completed successfully

Si ya no se queja aquí, podría aplicar el parámetro convert:

mbr2gtp.exe /convert /disk:0 /allowFullOS

MBR2GPT: Attempting to convert disk 0
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
MBR2GPT: Trying to shrink the OS partition
MBR2GPT: Creating the EFI system partition
MBR2GPT: Installing the new boot files
MBR2GPT: Performing the layout conversion
MBR2GPT: Migrating default boot entry
MBR2GPT: Fixing drive letter mapping
MBR2GPT: Conversion completed successfully
Call WinReReapir to repair WinRE
MBR2GPT: Failed to update ReAgent.xml, please try to  manually disable and enable WinRE.
MBR2GPT: Before the new system can boot properly you need to switch the firmware to boot to UEFI mode!

No obstante, parece que hay casos en los que el validate sí que da un OK pero el convert da error. 

Por último hay que configurar la BIOS para que cambie el modo legacy (heredado) a seguro o UEFI.

Además, insta a ejecutar el WinReRepair (¿WinReapir? ¿Eso es una errata?) que ya lo haré en algún momento.

No quiero olvidarme de poner algunos enlaces que pueden ser importantes, por si os fuese de utilidad o para un futuro volver a mirar por si contasen más cosas de las que he puesto aquí:

martes, 8 de octubre de 2019

Clave de licencia del Windows

Buscando cómo solucionar un problemilla con un Windows no sé cómo he llegado a este comando que, en teoría, muestra la clave de licencia del Windows que estamos utiliznado:

wmic path SoftwareLicensingService get OA3xOriginalProductKey

Al ejecutarlo desde un cmd no me ha hecho falta elevar privilegios (y eso que mi usuario es mortal). Al menos sí que devuelve una cadena que tiene la estructura de las claves de licencias. Que sea realmente la que se está utilizando... Eso ya no lo puedo asegurar. Pero como chuleta de cómo se podría sacar de llegar a serlo viene muy, pero que muy bien.

Espero que si funciona también os sea de utilidad a vosotros.

domingo, 26 de agosto de 2018

Windows no puede finalizar la configuración del sistema

Tal y como comenté recientemente, instalé una máquina virtual con Windows 10 a la que le conseguí hacer un sysprep después de varios problemas al intentar lanzarlo. El caso es que ahora me he encontrado con otro problema. Al reiniciar la máquina para probar la instalación, a mitad de camino, me da otro error:

Windows no puede finalizar la configuración del sistema. Para intentar reanudarla, reinicie el equipo
Windows no puede finalizar la configuración del sistema. Para intentar reanudarla, reinicie el equipo
Aunque voy a enumerar las distintas opciones que he encontrado, ya hago un aviso a navegantes de que sólo he podido averiguar qué es lo que ha hecho que salga este error volviendo a instalar la máquina virtual.

Las posibles soluciones que he encontrado son:

  1. Modificar el registro: si bien en pei.com indican que se modifique la clave del registro setup en Computer\HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\ChildCompletion no me ha funcionado. Para poder abrir el regedit.exe se accede a una consola pulsando Shift+F10 (puede que toque hacer otras combinaciones).
  2. Con una consola, ejecutar tracerpt c:\Windows\Panther\setup.etl -o c:\carpetaAux\setupLogfile.csv -of CSV. Esto permitirá poder abrir el fichero de salida con el notepad (ejecutándolo también desde la consola). Si se le añade el parámetro -of csv nos lo convierte a este formato. Si tuviese algunas herramientas en la misma máquina podría tirar de ellas directamente (como csvviewer de Nirsoft)
tracerpt c:\Windows\Panther\setup.etl -o c:\carpetaAux\setupLogfile.csv
tracerpt c:\Windows\Panther\setup.etl -o c:\carpetaAux\setupLogfile.csv
Lo malo es que son tantos datos que puede ser muy difícil encontrar el problema. 
  1. En troubleshooter.xyz también hay unas cuantas acciones que se pueden hacer. 
  2. En HowISolve proponen abrir desde la ventana del mismo error una consola y, o bien desde c:\Windows\System32\oobe ejecutar msoobe.exe y crear un usuario o abrir una consola mmc y activar alguno de los administradores que se encuentran en el sistema. En mi caso, no he tenido éxito. Corrijo: mientras escribía estas líneas sin ver resultados se ha producido un cambio, posiblemente al ejecutar la primera opción (ya había tirado previamente a por la segunda). Sin embargo, después de muchas horas, no me ha funcionado.

Ninguna de estas opciones me ha funcionado. Por lo que he decidido seguir el consejo del último post de este enlace:

I create a [...] technician VM just before sysprepping [...], run Windows Update and update installed software like browsers and Office, then remove all installers and run Disk Clean-up to remove temp files, sysprep again [...] to replace my old one.

Although Windows Update works in Audit Mode, build and feature upgrades do not work. When I want to upgrade my image I sysprep it once with /generalize, /oobe and /reboot switches, create a dummy local admin account in OOBE, sign in to desktop to upgrade for instance with latest Insider build, when done run sysprep with /audit and /reboot switches to boot back to Audit Mode, remove the dummy user and its profile folder, remove all installers and run Disk Clean-up to remove temp files, sysprep again[...] to replace my old one.

Por lo tanto, ¿qué hice?:
  1. Hice una instalación nueva. 
  2. Actualización completa.
  3. Limpieza de Appx desde powershell
  4. Dism-Clean desde powershell: dism /online /Cleanup-Image /StartComponentCleanup /ResetBase
  5. Instalación de software: 
    1. Navegadores
    2. Notepad ampliado: El "plusplus", sublime... Uno de estos
  6. Un editor gráfico: photoshop, gimp...
  7. Compresor  / Desompresor: Zip, 7zip, Rar
Seguro que me dejo algún programa y algún paso intermedio, pero lo más importante de todo: por cada una de estas hice una copia de seguridad para después lanzar:

sysprep /audit /reboot

Al reiniciar, sólo tuve que eliminar el usuario de la instalación y su perfil tal y como recomendaban en el texto parafraseado. Una vez eliminados: 

sysprep /generalize /oobe /shutdown.

Lo más importante de todo: como se puede ver no he incluido el antivirus. Y es porque antes de instalarlo me hice una copia de seguridad. Si repetía este proceso con el antivirus me volvía a salir el error descrito arriba. Por lo tanto, y de momento, me tocará hacer la instalación de esta herramienta una vez instalada la imagen. El día entero de instalación de parches y pequeños programas me lo ahorro. 

Siento mucho no haber podido ayudar a arreglar el error directamente sin tener que reinstalar. 

domingo, 29 de julio de 2018

Sysprep no pudo validar la instalación de Windows

Estaba montando una instalación en una máquina virtual y la quería "generalizar" con la herramienta sysprep para poder hacer la típica una imagen que después permite adelantar trabajo a la hora de hacer futuras instalaciones. 

Al ejercutar dese una consola con permisos administrativos:

sysprep /oobe /generalize /shutdown /unattend:rutaUnattend.xml

me salio una ventana informativa (con la "i" azul) con el mismo mensaje del título de este post:

Sysprep no pudo validar la instalación de Windows

Me forzaba a buscar en la ruta %windir%\Panther\setupact.log, pero la verdad, un fichero de texto tan largo y con tanto contenido iba a ser imposible saber qué tenía que buscar. Por lo tanto, una búsqueda rápida en Google me llevó a un vídeo de pantallazos.es en el que explicaban qué hacer. A saber:

  1. Arrancar una consola de powershell con permisos administrativos.
  2. Importar módulo: Import-Module appx
  3. Importar otro módulo: Import-Module dism
  4. Desinstalar programas que vienen al instalar Windows: Get-AppxPackage | Remove-AppxPackage
A pesar de que saldrán errores con este último comando, al finalizar, ya podremos lanzar una vez más sysprep sin problemas. 

martes, 29 de noviembre de 2016

Clonado de discos con fallos: ddrescue

Hace unas dos semanas me pasaron un equipo para que lo arreglase. El problema: una actualización de Windows no se instaló correctamente. Lo que podía ser algo sencillo terminó con un cambio de disco.

Para empezar, el sistema intentaba hacer una reparación por su cuenta, es decir: había detectado un fallo y automáticamente entraba en modo reparación. Y no finalizaba.

Tampoco permitía acceder al menú avanzado pulsando F8, por lo que en ese instante esa opción para buscar soluciones no estaba disponible.

La única opción sería arrancar con un USB de Windows 10 y buscar la solución desde el pincho. Una de las configuraciones que hice fue indicarle al equipo desde el setup de la BIOS que me permitiera pulsar F2 o F12 para mostrar el menú de los dispositivos de arranque. Una vez tuve montada la unidad de arranque me llevé una desagradable sorpresa: quise tirar para atrás la instalación de la actualización a través la opción del punto de restauración sin ningún éxito: no se había creado ninguno. Raro, teniendo en cuenta que en teoría se crea uno justo antes de que se apliquen las actuaciones.

¿Qué más podía hacer? Solicitar hacer la auto-reparación, pero desde el USB. Tampoco hubo éxito. Si terminaba, era para reinicarse otra vez mostrando incluso mensajes de error.

¿Qué más hice? En alguno de estos arranques con el USB hice el famoso

sfc /scannow

Pero tampoco funcionó. De hecho, si no recuerdo mal, apenas empezó y ya había finalizado.

Por lo tanto, configuré el arranque de Windows para que me mostrara un menú con las distintas instalaciones para tener acceso a la posibilidad de pulsar F8 con total éxito:

bcdecit /set {bootmgr} displaybootmenu yes

Así, ya con acceso al menú principal, decidí arrancar en modo seguro, en el que se supone que se cargarían los menos controladores posibles. Y ahí estaba, arrancando normalmente hasta que me ofreció parar el checkdisk. No recuerdo si lo dejé pasar en ese instante o no. Creo que no. Pero después también daría su trabajo. El caso es que al rato ya estaba con acceso al sistema. Por lo tanto, reinicié, entré en modo normal (no usé el menú de F8) y ya estaba dentro. Esto parecía que ya sólo quedaba montar la actualización que había dado problemas y terminar de pasar el chkdsk en condiciones. Nada más lejos de la realidad.

Por un lado, se veía que el equipo de vez en cuando se bloqueaba un poco. Y por otro, que la actualización (KB3200970: lo bueno que tiene el guardar las ventanas durante meses) no se instalaba ni "para atrás". Estuve buscando y según los hallazgos resulta que esa actualización había estado dando problemas. Además, según los logs de Windows Update ya se había intentado instalar bastantes veces. Por lo que decidí pasar a la siguiente tarea: revisar el disco duro.

Como en cada arranque seguía pidiendo pasar el chequeo, quise forzarlo yo. Como no recuerdo todas las opciones las opciones que puse, puedo enumerar:
  • Desde Windows arrancado
  • Desde el USB
  • Arrancando Windows: En el que se quedaba en el 4% durante aproximadamente una hora.
Sobretodo esta última opción, que ya la había visto en algún momento (lo dejaba un poco menos de tiempo) no me terminaba de gustar. Desde el sistema arrancado con el disco duro no terminaba de convencerme y no había resultados que ayudasen. Incluso llegué a dejar la operación una noche y poco a poco se iba mostrando cómo el tiempo para finalizar iba subiendo, llegando a indicar 4 horas y pico para luego terminar a medias. Por lo que decidí hacer otra cosa: sabiendo la marca del disco, buscar en la página de su fabricante y coger la herramienta de validación que ofrece. ¿Quién mejor que el propio fabricante para decirte si el disco está bien o no? Una vez instalada hice dos pasadas: la express y la exhaustiva. El resultado casi se olia: en ambas opciones la herramienta indicaba que había errores en el disco. Sí, soy consciente de que se podría haber intentado arrancar el equipo y haber hecho el scan con el sistema offline.

Por lo tanto, para resumir, tenemos:
  • Un equipo que no ha sido capaz de instalar en varias ocasiones una actualización (¿error de la propia actualización?¿del sistema operativo?¿de hardware?).
  • Un sistema operativo que cada pocos minutos, por no decidir algo menos, se bloquea durante unos segundos
  • Un disco duro que el sistema operativo no es capaz de reparar los sectores de su sistema de ficheros y la herramienta del fabricante indicando errores.
Ante la posibilidad de que el disco duro pudiera romper del todo antes o después, con la consecuente pérdida de datos, hice una operación que no era nueva para mí: clonar ese disco cuanto antes. Con una salvedad: la herramienta de clonado sería otra a la usada habitualmente (dd): ddrescue. (Por si estáis pensando en una clonadora, ahora mismo no dispongo de ninguna. Pero todo se andará, :D ).

Dos pasos: físico y lógico.

El físico: comprar un disco duro nuevo de, como mínimo, el tamaño original del disco. Incluso de la marca si es posible. A la vez, adquirir una carcasa para convertir el interno original a USB. Colocar cada uno de los discos en su posición: instalar el disco nuevo en el equipo y el antiguo en la carcasa. La carcasa no se enchufa todavía. Aunque se pueda hacer de la otra forma (clonar y después cambiar), me gusta hacerlo así.

Ahora, el lógico, es decir, lo que hice con software.

Arranqué un Kali y tirando del entorno gráfico que trae por defecto usé un terminal. No sabría decir si ddrescue estaba instalado. Mis primeros intentos de lanzarlo no funcionaron, pero el resultado final es que lo pude usar.

Aquí eché de menos un aparatito que me podía salvar de un posible desastre: un bloqueador de escritura. Resulta que esta operación es delicada porque si te equivocas podrías clonar un disco completamente nuevo (o no, según te estén vendiendo un disco que ya ha sido usado) sobre el importante, perdiendo todos los datos. Lo bueno de ddrescue con respecto a dd es que el primero es capaz de continuar con sectores defectuosos e intentar recuperar sus datos. Sin embargo, dd se puede llegar a parar o, a una mala, si se le indica conv=noerror,sync (lo he tenido que buscar, ¿eh?) continúa si se encontrasen errores, pero no hace el intento de ver si se pueden recuperar (o eso es lo que he entendido).

Como nunca había usado ddrescue busqué la información para ejecutarlo. Una de las cosas que he me ha gustado mucho es que no tienes que preocuparte de si pones el parámetro de origen y destino mal (En dd ¿if era la salida de la lectura o era la entrada de lo que vas a escribir? ¿Lo contrario con of? Te acuerdas durante un tiempo pero luego...):

ddrescue lista_parámetros dicoOrigen discoDestino fichero_log

Así de sencillo. Además, la otra cosa buena que tiene es que al guardar los resultados en un fichero de salida (.log, .txt, .etc) si se parase el proceso podrías continuar más adelante. Y es muy importante, porque puedes hacer distintas pasadas tal y como recomiendan hacer. Consejo que yo seguí.

ddrescue -v -R -n /dev/sdc /dev/sda /root/result_v2.log -f

Por un lado, muy arriesgado mandar la salida a una carpeta virtual. Si algo iba muy, muy mal habría que repetir toda la operación. Pero no había más conexiones USB: 1 para el USB de arranque, 2 para el disco que estábamos clonando.

  • -v: verbose, para mostrar más información
  • -n: para ignorar los errores y no hacer nada con ellos.
  • -R: según pude leer, va de "atrás adelante". Leí que si había problemas el disco era recomendable. Y aquí (https://lists.gnu.org/archive/html/bug-ddrescue/2012-05/msg00006.html) explican más o menos cómo funciona, lo que yo no era consciente era que esta opción ralentizaría el proceso.
  • -f: al detectar que podrías estar machacando información (porque se cree que hay una partición en el destino), te obliga a poner este parámetro, que significa "forzar", como indicando que estás seguro de que quieres continuar.

Poco más de 24 horas después, el proceso terminó con apenas 22 errores y unos 300 KB en errores.

ddrescue -v -R -n
ddrescue -v -R -n

Para intentar recuperar los pocos errores que dio hice una segunda pasada:

ddrescue -v -R -r1 /dev/sdc /dev/sda /root/result_v2.log -f

  • -r1: Todo sea dicho, he visto distintos formatos. El 1 lo he llegado a ver junto a la r, separado, distintos valores: -r 3. En mi caso, seguí esta indicación. En teoría es el número de intentos que tiene que hacer para recuperar ese dato.

Aunque no tengo la foto final, tardó media hora de reloj, aparecieron más errores pero el total ocupaba menos que lo que muestro en la imagen de arriba. Al final, di el disco por clonado y recuperado.

Hasta aquí, después de varios días pegándome con el disco, ya teníamos un disco completamente nuevo con el sistema operativo tal cual estaba cuando lo apagamos, con una actualización pendiente de instalar y el sistema operativo esperando a realizar un checkdisk.

Para no alargar más la historia, sólo resumir que fue coser y cantar: pude arrancar correctamente el sistema, la actualización se instaló sin dar ningún problema y el chkdsk pasó del 4% en tiempo record.

Con lo que he podido contar (seguro que alguna cosa me he dejado en el tintero como, por ejemplo, las distintas veces que creé los puntos de restauración): ¿qué habríais hecho vosotros? ¿Qué herramientas con las contáis o que sabéis hubierais usado para arreglar este equipo?

lunes, 14 de marzo de 2016

Regripper y registro de Windows

He estado una temporada trabajando en un proyecto en el que la herramienta regripper me ha ayudado bastante. Al principio me costó un poco hacerme con ella pero después de conseguir hacerla funcionar la incluí en unos cuantos ficheros por lotes (batches o .bat) pudiendo lanzarlos tirando millas. El problema de tener este tipo de herramientas embebido en este tipo de scripts es que después no los tienes a mano y aquel problema que te dio en su momento vuelve a surgir y no te acuerdas de cómo lo arreglaste. Y eso es lo que me ha pasado con regripper.

Lo primero de todo: lo he estado haciendo desde Windows.

Lo segundo: lo estaba haciendo contra los hives del mismo Windows arrancado. Primer (y último) error: no puedes lanzar los plug-ins del regripper contra el mismo Windows en modo on-line.Si lo hacemos, nos podremos encontrar con mensajes de error como el siguiente al usar el plug-in uninstall:

D:\regRipper2.8>rip.exe -r c:\Windows\System32\config\SOFTWARE -p uninstall
Launching uninstall v.20140512
uninstall v.20140512
(Software, NTUSER.DAT) Gets contents of Uninstall keys from Software, NTUSER.DAT hives

Error in plugins\uninstall.pl: Unable to open 'c:\Windows\System32\config\SOFTWARE': No such file or directory at D:\datos\herramientas\pentest\_paquetes\regripper\regRipper2.8/plugins\uninstall.pl line 55

Por lo que toca hacer una copia de los hives en un lugar a parte. Así podremos trabajar contra esos ficheros, que no estarán bloqueados.Para ello hay que recuperarlos con la herramienta reg, de la que ya hablé el otro día.

Ahora que hemos seguido las instrucciones, podremos utilizar el que acabamos de extraer:

D:\ regRipper2.8>rip.exe -r d:\datos\pruebas\registro\SOFTWARE -p uninstall

Y ya dejaría de dar problemas. Ahora podemos trabajar con ellos como queramos. Por ejemplo: redirigir la salida a un fichero de texto. 

martes, 8 de marzo de 2016

Volcar el registro de Windows que se está usando

Me he estado pegando con un pequeño problema con el registro. Necesitaba obtener información del mismo, pero al estar bloqueado la lectura de las herramientas no era posible. ¿Qué puedo hacer? Tendrás que volcar el registro que se está usando en una ubicación a parte y a partir de aquí trabajar sobre ese volcado.

Lo primero de todo: No debería de hacer falta decir que equivocarse en una operación de este tipo podría dejar la instalación de Windows para los restos. Dicho de otro modo: que deje de funcionar. Avisado estás.
Windows nos ofrece una herramienta que se llama reg. Además de poder manipular los datos del registro nos permite extraer los valores de sus claves incluyendo sus hijos. Tiene varios parámetros: query, import¸ export, save. A nosotros nos interesa este último. ¿Qué parámetros acepta este modo de trabajo (por llamarlo de un modo? Nos acepta:

a) La clave que deseamos extraer. Que serán: SECURITY, SAM, SOFTWARE y SYSTEM.
b) Ruta destino de cada extracción. Es decir: sobre qué fichero queremos hacer la extracción.

Para muestra los siguientes ejemplos:

reg save HKLM\SOFTWARE d:\datos\pruebas\registro\SOFTWARE
reg save HKLM\SYSTEM d:\datos\pruebas\registro\SYSTEM
reg save HKLM\SAM d:\datos\pruebas\registro\SAM
reg save HKLM\SECURITY d:\datos\pruebas\registro\SECURITY

Una vez los hemos extraído ya podremos trabajar con estos hives sin ningún problema. Un ejemplo sería poder analizar su contenido. 

martes, 16 de febrero de 2016

Windows 10: loop inifinito, 0x800704DD, registro 'system' y otros

He estado tres semenas pegándome con un equipo. Dos para intentar recuperar la actualización de un Windows 7 a Windows 10 y la última en montar todas las actualizaciones de una reinstalación del primero (teniendo en cuenta que no se le ha dedicado todo el día a este trabajo ya que hay que ir a currar).

Lo sé: se quiere evitar a toda costa una reinslación. Yo lo quise hacer y me ha consumido dos semanas de trabajo más a tercera de la reinstalación en sí misma. Si quieres probar estas cosas por si no se te habían ocurrido, adelante.

¡OJO! Estos procesos podrían funcionar... O no. Cualquier operación realizada podría estropear más el sistema. Si decides usar algunas de las acciones aquí explicadas, ya sabes: bajo tu responsabilidad.

Para resumir: me dijeron que no se terminaba la actualización. Probé distintas opciones (las que ofrece al arrancar pulsando F8) y de una u otra forma conseguí que terminara el proceso. Pude entrar en un usuario ya existente, configurarlo... Y la última prueba de todas, la de fuego, reiniciar para ver que todo funcionaba bien. Craso error. Tanto es así que me terminé llevando el equipo para poder trabajar con él tranquilamente.

Lo primero de todo: una imagen dd. Lo más importante son los datos, por lo que con una de éstas puedes trastear con más tranquilidad que si se pierde información o quieres hacer otras pruebas puedas tirar para atrás.

No puedo dar información de todos los errores que tuve y en qué orden estuve luchando contra ellos pero el peor de todos, y la razón por la que me llevé el portátil, es que se reiniciaba constantemente mostrando el mensaje "Preparando reparación Automática" y entrando en el recovery.

Las primeras pruebas de reparación de inicio no funcionaron. Incluso mostraban el resultado en C:\Windows\System32\LogFiles\Srt\SrtTrail.txt (también cabe la posibilidad de que me lo ofreciera en alguno de los arranques. Sé que se me ofreció como fichero de información).

Intenté desactivar en el arranque la recoverymode y que me mostrara el menú de los sistemas para arrancar utilizando bcdedit:

bcdedit /set {default} recoveryenabled no
bcdedit /set {bootmgr} displaybootmenu yes

Al no arrancar el modo de reparación nos llegaba a mostrar el error de que el fichero de registro C:\Windows\System32\config\SYSTEM estaba estropeado,

También probé a usar el comando

sfc /scannow

fallando sin haber finaizado todo el proceso.

Otra prueba que hice fue el checkdisk con alguno de sus parámetros:

chkdsk /f /r /x

En un momento determinado decido intentar montar un soporte externo (DVD / USB) del Windows 10 con el fin de intentar hacer las reparaciones desde esta unidad y de tener un soporte bootable.

También intenté reinstalar los sectores de arranque, entre los tantos que probé:

bootrec /rebuildbcd
Reparticionados con diskpart tampoco me ayudó. Ni volviendo a la anterior versión, ni intentando restaurar el sistema manteniendo los ficheros y programas, o no manteniéndolos...

Total, que después de haber hecho todas estas pruebas no necesariamente en este orden, terminé haciendo lo siguiente: como ya había reparticionado y había eliminado la partición donde vienen los ficheros de instalación al comprar el equipo, pero ya los tenía en la imagen que hice antes de empezarr el trabajo desde casa, monté la imagen, busqué los ficheros, y me encontré con unos que tenían extensión .swm. Es como si tuviéramos un fichero .wim, pero con la diferencia de que éste está dividido en varios. Sólo tuve que guardarlos en un disco externo, borrar los datos de la partición principal, arrancar el sistema con el USB bootable que me monté, y en un cmd lanzar:

dism /Apply-Image /ImgeFile:rutaPrimer.swm /SWMFile:rutaFicherosSWM*.swm /Index:numeroIndice /ApplyDir:C:

Y al esperar un rato y reiniciar, ya me apareció el sistema como si lo hubiera reseteado con su propio software.

Han sido muchas pruebas, muchos "ensayos y errores" muchos quebraderos de cabeza. Y aunque sólo os pongo algunos enlaces aquí abajo, voy a cerrar unas cuantas ventanas con muchas pestañas.


Bajarse ISO Windows 10:
https://www.microsoft.com/es-es/software-download/windows10

SFC /Scannow:
https://answers.microsoft.com/es-es/insider/forum/insider_wintp-insider_repair/windows-10-no-arranca-dice-preparando/88a36e1f-3ce2-4821-825c-31c24b7e0b7b?auth=1

La idea para mostrar el menú de arranque:
http://pocospasos.com/como-iniciar-windows-10-en-modo-seguro/


BCDEdit de Microsoft:
https://msdn.microsoft.com/en-us/library/windows/hardware/ff541231(v=vs.85).aspx

Restaurar sistema:
http://h30467.www3.hp.com/t5/Sistemas-operativos-y-software-para-notebooks/ayuda-mensaje-preparando-reparacion-automatica/td-p/521196

Instalación de imágenes SWM:
https://technet.microsoft.com/en-us/library/hh825258.aspx



lunes, 11 de mayo de 2015

Tomando posesión en Windows 8.1

Esta entrada es algo que seguro, seguro, la mayoría de vosotros conocéis.

Como sabréis, hace una semana tuve que comprarme un portátil nuevo porque el anterior murió. Al menos, no había manera ni de que me sacara el POST. Ayer domingo le saqué el disco duro y lo introduje en una caja para convertilo a USB, la cual compré junto con el nuevo equipo.

Con el antiguo disco ya convertido de SATA a USB, lo conecté al ordenador. Y el antivirus me informó de que había bloqueado un autoruns.inf. Precisamente se encuentra en la partición destinada a un recovery que ni siquiera en el anterior equipo tenía utilidad. Por lo que me dispuse a eliminarlo. El problema: no tenía permisos, porque el usuario propietario, no existía:

Usuario desconocido
Usuario desconocido

Como podréis ver, me está mostrando el SID del usuario propietario. ¿Y qué puedo hacer? Tendrás que ir a las opciones avanzadas, y en el recuadro que muestre:

Configuración de seguridad avanzada para...
Configuración de seguridad avanzada para...

tendrás que cambiar el propietario haciendo click en el enlace que muestro con el recuadro en rojo. Así, te mostrará el la ventana en la que podrás buscar al usuario que quieras asignar como propietario:

Seleccionar usuario o grupo
Seleccionar usuario o grupo
Mi recomendación: poner el nombre del usuario completo. Si no, te mostrará otra ventana (de la que no hice captura) y te tocará hacer más búsquedas.
Una vez hayas aceptado cada una de las ventanas, el usuario propietario debería de poder realizar más acciones, a no ser que el fichero tenga algunas propiedades que lo impidan (otra cosa que no tuve tiempo de investigar).

Cuando vuelva a tener el disco a mano, podré seguir jugando con él. Además, tengo más ideas en mente para otras cosas.



lunes, 4 de mayo de 2015

Nuevo portátil: HP Pavilion x360

Hace dos semanas el otro portátil que tenía, un HP Compaq 6745b:

HP Compaq 6745b
HP Compaq 6745b
Os podéis imaginar que cuando el equipo enciende, pero no saca el POST (Power On Self Test), no aparecía (ni aparece), a uno casi le da un algo. Por lo tanto, casi rápido un corriendo, a comprar un nuevo equipo. Lo compré en unos grandes almacenes muy conocidos y con un gran servicio postventa y con unos dependientes muy atentos. El mío lo fue. 

Por lo tanto, viendo las distintas posibilidades, me di cuenta de que prácticamente todos los equipos de los que podía disponer, tenían prácticamente las mismas características. Por lo tanto, me decanté por otro HP: HP Pavilion x360

Estas son las fotos del umboxing que hice:

HP Pavilion x360 embalado
HP Pavilion x360 empaquetado

HP Pavilion x360 desembalado
HP Pavilion x360 desempaquetado

HP Pavilion x360 desembalado y sus cables
HP Pavilion x360 desempaquetado y sus cables

HP Pavilion x360: embalado
HP Pavilion x360: embalado
HP Pavilion x360: desembalado
HP Pavilion x360: desembalado

HP Pavilion x360: abierto: teclado tapado
HP Pavilion x360: abierto: teclado tapado

HP Pavilion x360: abierto: teclado destapado
HP Pavilion x360: abierto: teclado destapado

En estas dos semanas que llevo utilizando el equipo, tengo unas cuantas quejas. Las dos que son independientes del sistema operativo, Windows 8.1, están relacionadas en cómo están distribuidos los botones y las teclas del equipo. Vamos a hacer una comparación:

Comparación teclados portátiles HP
Comparación teclados portátiles HP
Si os fijáis, podéis ver que la barra espaciadora del nuevo equipo es más alargada, lo que obliga a que el botón "Alt+Gr" esté más desplazado a la derecha. He fallado bastantes veces en utilizarlo porque el pulgar hay que doblarlo bastante más de lo normal. Es muy, muy incomodo. Eso es un punto en contra. Otro punto en contra está relacionado con el touchpad y los botones. Para empezar, que es más sencillo de explicar, el tacto de los botones no me termina de gustar tampoco. Además, el otro detalle es que al ser más grande, es mucho más sencillo de tocarlo con las manos apoyadas en el equipo, lo que hace que el puntero termine en otro punto de la pantalla y, por lo tanto, el cursor se desplace. No sería la primera vez que estoy escribiendo algo, empezando una línea, y de repente, se me vaya a otro sitio. 

Por lo demás, que ya estaría relacionado con el sistema operativo y los programas instalados, he desinstalado unas cuantas cosas, pero aún me queda por quitar bastantes más. Y recuperar los datos del anterior disco duro para pasarlos a este. Con el problema que se me va a plantear y que tengo que estudiar el cómo distribuir unos datos de un disco duro que ahora mismo ya tiene más particiones de las deseadas y que el sistema de arranque UEFI me la ha liado al querer arrancar con un lector de DVD externo. 

Ya haré una segunda review sobre las otras dos formas de utilizar este equipo.



lunes, 22 de diciembre de 2014

pnputil: Mucho cuidado... O te quedas sin dispositivos

Hace tiempo, jugando un poco con los drivers, e intentando instalar uno para un dispositivo Android... Conseguí que apenas se detectara. Si no recuerdo mal, fue por instalar unos drivers que al final no eran para dicho gadget. El problema está en que gracias a eso conseguí que tampoco se detectara correctamente mi móvil, por lo que no podría acceder a la tarjeta SD desde el ordenador.

Y ahí me veis, instalando un montón de controladores para Android, descargados de páginas oficiales (tanto del propio Android como del fabricante) y que no hay manera. Hasta que me encuentro con que se me repiten muchas entradas.

Por lo tanto, no se me ocurrió otra cosa que buscar cómo podía quitármelos de encima. Y ahí es donde encontré esta página, el que usando el comando de Windows pnputil te permitía quitar los drivers deseados.

Total, que me puse como loco a eliminar los que me parecieron... Y ahí estoy, desde hace un tiempo, desde mi Windows, sin acceso a los datos del cacharro.

Sí, he probado a instalar de nuevo las paqueterías, pero nada.

Sí, he probado a ejecutar

sfc /scannow

pero tampoco...

Sí, le he dicho que se descargue los controladores por Windows Update.

Si es que, ya me lo decía el maestro Vicente: los experimentos se hacen con gaseosa.

Cosas que acabo de probar, siguiendo los consejos de esta otra página:

  1. Ir cambiando los distintos modos en los que se puede poner la conexión USB: Almacenamiento masivo (la que no me funcionaba), multimedia y.... Cámara PTP. En las dos últimas ha instalado algún driver, sobretodo porque nunca los he necesitado.
  2. Poner el modo USB debug desde las opciones de desarrollo. Aquí la cosa ha mejorado, porque sí que me han aparecido las dos unidades que debían de salir, pero, en el momento de activar el almacenamiento, sólo me ha permitido entrar a ver los datos de la partición de la tarjeta externa. Al menos, algo es algo. Eso sí, en el momento en el que se desactiva el debug, volvemos a tener invisibles las unidades. 

Pero, la verdad, como ahora mismo estoy metido en veinte mil proyectos y cosas, de momento no me voy a pegar mucho más con esto. Aún así, si a alguien se le ocurre otra forma de volver a instalarlos...  Además de poder escribir alguna cosa que le pueda servir de ayuda a alguien que quiera poder manipular (léase, instalar y desinstalar controladores por consola o cmd), también continúo dándole vida al blog, que llevaba tiempo sin escribir algo técnico.

miércoles, 10 de septiembre de 2014

Cambiar la hora en Windows con NTP por consola: PowerShell

¡¡Hola!!

Ultimamente estoy viendo que la hora de mi equipo se va retrasando poco a poco. Además, me doy cuenta cuando ya lleva unas cuantas horas de retraso. Y me da que es cuestión de la pila de la BIOS, cosa que me da una pereza enorme cambiarla.

Ya sé que desde la interfaz gráfica de Windows se puede cambiar la hora, e, incluso, forzar a que se sincronice contra un servidor NTP para que esté perfecta.

Cambiar la hora en Windows utilizando NTP - GUI
Cambiar la hora en Windows utilizando NTP - GUI
Ahora bien, quería ir más allá. Quería conseguir cambiar la hora utilizando powershell y tirando, a su vez, de un servidor NTP.

En mi búsqueda localicé algún enlace que otro que permitía obtener un montón de datos de comparativas de la hora del sistema contra el servidor indicado. Es el cmlet llamado Get-NtpTime. Una vez importado, podríamos obtener los datos que se muestran por pantalla:

Cmlet Get-NtpTime, por Chris J. Warwick, @cjwarwickps
Aún así, le faltaba algo muy, muy importante. ¿De qué me sirve ver todos estos datos si no puedo ponerle al sistema la hora que me ha indicado el servidor? Por lo tanto, busqué la forma de cambiarla. ¿Cómo lo he hecho? Fusilando el script para adecuarlo a mis necesidades. Algunos datos no sé para qué los quiere, o si supondrán una gran diferencia. Como por ejemplo, el tiempo que tarda en conectarse y desconectarse utiliza dos variables de tiempo inicial y final. 

Por lo tanto, después de hacer varias pruebas, algunas con más éxito que otras, ya tengo un cmlet que permite cambiarte la hora utilizando la que te devuelve el servidor NTP pasado como parámetro. El script se llama Set-NtpTimeV2 (por las distintas pruebas y esas cosas), y tiene un resultado como el siguiente:

Cmlet Set-NtpTimeV2, por Agux

Y el código fuente, tal cual lo he dejado, eliminando las cosas que no hacían falta del original y poniendo las necesarias (las que menos, la verdad):

Function Set-NtpTimeV2 {
#Parametros
[CmdletBinding()]
Param (
[String]$Server = 'pool.ntp.org',
[Int]$MaxOffset = 10000     # (Milliseconds) Throw if network time offset is larger
)
# Construct a 48-byte client NTP time packet to send to the specified server
# (Request Header: [00=No Leap Warning; 011=Version 3; 011=Client Mode]; 00011011 = 0x1B)
[Byte[]]$NtpData = ,0 * 48
$NtpData[0] = 0x1B    # NTP Request header in first byte
# NTP Transaction -------------------------------------------------------
$Socket = New-Object Net.Sockets.Socket([Net.Sockets.AddressFamily]::InterNetwork,
[Net.Sockets.SocketType]::Dgram,
[Net.Sockets.ProtocolType]::Udp)
Try {
$Socket.Connect($Server,123)
}
Catch {
Write-Error $_
Throw "Failed to connect to server $Server"
}
$t1 = Get-Date    # Start of transaction... the clock is ticking...
Try {
[Void]$Socket.Send($NtpData)
[Void]$Socket.Receive($NtpData)  
}
Catch {
Write-Error $_
Throw "Failed to communicate with server $Server"
}
$t4 = Get-Date    # End of transaction time
$Socket.Close()
# -----------------------------------------------------------------------
# -----------------------------------------------------------------------
# Check the Leap Indicator (LI) flag for an alarm condition - extract the flag
# from the first byte in the packet by masking and shifting (dividing)
$LI = ($NtpData[0] -band 0xC0)/64    # Leap Second indicator
If ($LI -eq 3) {
Throw 'Alarm condition from server (clock not synchronized)'
}
# We now have the 64-bit NTP times, t3 is in the last 8 bytes of the received data.
# The NTP time is the number of seconds since 1/1/1900 and is split into an 
# integer part (top 32 bits) and a fractional part, multipled by 2^32, in the 
# bottom 32 bits.
# Convert Integer and Fractional parts of the (64-bit) t3 NTP time from the byte array
# $IntPart=0;  Foreach ($Byte in $NtpData[40..43]) {$IntPart  = $IntPart  * 256 + $Byte} 
# $FracPart=0; Foreach ($Byte in $NtpData[44..47]) {$FracPart = $FracPart * 256 + $Byte} 
$IntPart = [BitConverter]::ToUInt32($NtpData[43..40],0)
$FracPart = [BitConverter]::ToUInt32($NtpData[47..44],0)
# Convert to Millseconds (convert fractional part by dividing value by 2^32)
$t3ms = $IntPart * 1000 + ($FracPart * 1000 / 0x100000000)
# Make sure the result looks sane...
If ([Math]::Abs($Offset) -gt $MaxOffset) {
# Network time is too different from server time
Throw "Network time offset exceeds maximum ($($MaxOffset)ms)"
}
# Create Output object and return
echo "Cogiendo hora y fecha presente en el equipo..."
$currentDate = Get-Date
echo "La fecha y hora actual del sistema es: $currentDate"
echo "Obteniedo la fecha y hora real del servidor NTP..."
echo "Configurando la fecha y hora real..."
$nuevaFechaHora=New-Object DateTime(1900,1,1,0,0,0,[DateTimeKind]::Utc)   
$nuevaFechaHora = $nuevaFechaHora.AddMilliseconds($t3ms).ToLocalTime()
$nuevaFecha = Set-Date -Date $nuevaFechaHora
echo "La hora y fecha configurada es... $nuevaFecha"
}

miércoles, 5 de marzo de 2014

Abriendo paneles en Windows con el CMD

Os voy a poner en situación:

Cogemos nuestro sandbox favorita (o la que tengas más a mano). En mi caso: Sandboxie. Haces una instalación de algún programa. El que más te guste. Y lo haces utilizando la opción que tiene de Ejecutar un programa aislado en la sandbox:
Sandboxie: Ejecutar aislado en una Sandbox
Sandboxie: Ejecutar aislado en una Sandbox
Ahora que lo hemos instalado pueden pasar varias cosas:

  1. Que se ejecute directamente. Esto se hará la primera vez, pero las siguientes…
  2. Que sepamos dónde está instalado. Es muy importante, porque tendremos que ejecutarlo que ejecutarlo utilizando el mismo sistema que el anterior indicando su ruta completa. O, también, lanzando el explorer. Y después ir a la ruta adecuada para ejecutarlo.
Ahora, nos encontramos con otro problema: Ya no lo usamos y necesitamos desinstalarlo. Para hacerlo, tendremos que abrir el panel de control (siempre y cuando no traiga su propio ejecutable de desinstalación). Por lo que nos encontramos con un problema: hay que ejecutar el panel de control en la misma sandbox en la que tenemos el programa. Por lo tanto: ¿qué hacemos? Tendremos que localizar qué tenemos que ejecutar para lanzarlo. Ya sea ejecutándolo directamente aislado, o aislar una consola cmd (símbolo del sistema) y sea ahí donde levantemos los paneles necesarios.

Haciendo una búsqueda rápida me he encontrado con el siguiente manual:


Control panel tool Command
Accessibility Optionscontrol access.cpl
Add New Hardwarecontrol sysdm.cpl add new hardware
Add/Remove Programscontrol appwiz.cpl
Date/Time Propertiescontrol timedate.cpl
Display Propertiescontrol desk.cpl
FindFastcontrol findfast.cpl
Fonts Foldercontrol fonts
Internet Propertiescontrol inetcpl.cpl
Joystick Propertiescontrol joy.cpl
Keyboard Propertiescontrol main.cpl keyboard
Microsoft Exchangecontrol mlcfg32.cpl (or Windows Messaging)
Microsoft Mail Post Officecontrol wgpocpl.cpl
Modem Propertiescontrol modem.cpl
Mouse Propertiescontrol main.cpl
Multimedia Propertiescontrol mmsys.cpl
Network Propertiescontrol netcpl.cpl NOTE: In Windows NT 4.0, Network properties is Ncpa.cpl, not Netcpl.cpl
Password Propertiescontrol password.cpl
PC Cardcontrol main.cpl pc card (PCMCIA)
Printers Foldercontrol printers
Regional Settingscontrol intl.cpl
Scanners and Camerascontrol sticpl.cpl
Sound Propertiescontrol mmsys.cpl sounds
System Propertiescontrol sysdm.cpl

En nuestro caso, queremos abrir el panel relacionado con la instalación y desinstalación de programas, por lo que utilizaremos el que nos va a abrir Add/Remove Programs:

Abrir panel de control en Sandboxie. control appwix.cpl
Abrir panel de control en Sandboxie. control appwix.cpl
Por lo que al ejecutarlo:
Panel de Agregar o quitar programas en una sandbox
Panel de Agregar o quitar programas en una sandbox
Y ya podremos desinstalarlo.

No está del todo mal tener este listado. De todas formas, seguro que está incompleto. Pero para ir tirando… También, se puede ver que no lo he lanzado desde una consola/símbolo del sistema/cmd, pero, a todos los efectos, funciona igual. 

miércoles, 22 de enero de 2014

Windows camello

Como todos sabemos (o deberíamos) los sistemas basados en Unix, Linux, etc son case-sensitive. Es decir: son sensibles a las mayúsculas y a las minúsculas. También sabemos muy bien que los sistemas Windows no lo son, es decir, son case-insensitive. Por lo que aunque un fichero o ejecutable se llame

msconfig.exe

funcionará igual si vas a una consola de símbolo de sistema y lo ejecutas como

Ejecutando msconfig en el cmd con mayúsculas, minúsculas...
Ejecutando msconfig en el cmd con mayúsculas, minúsculas...
Por lo tanto, como se puede ver, no da ningún mensaje de error ya sea porque escriba msconfig todo en minúsuclas, o todo en mayúsculas o en formato camello. Para el que no sepa qué es el formato camello, que en el ejemplo lo he exagerado mucho,  es lo que en programación de java se hace a la hora de escribir las variables que contienen más de una palabra. No sólo las variables, también los métodos. Un ejemplo rápido que me desvío de lo que quería mostrar:

int elNumeroDeLaCasaDeAlguien;

ó

public void getElNumeroDeLaCasaDeAlguien();

Muy bien. Pero: sabíais que aunque el nombre del fichero esté escrito en minúsculas, el sistema de búsqueda del botón inicio del Wndows 7 te lo ofrece según lo estás escribiendo?

Buscando msconfig alternando el tipo de letra
Buscando msconfig alternando el tipo de letra
pero, en C:\Windows\System32\:

c:\Windows\System32\msconfig
c:\Windows\System32\msconfig

Cosa curiosa. También lo es que los nombres de las imágenes que construyen este post no les suceda. ¿Verdad?

miércoles, 21 de agosto de 2013

Cambiando la carpeta users de sitio

Creo que ya os he contado hace poco (y si no, lo hago ahora) que he tenido que hacer una reinstalación. La verdad, creía que haberos contado lo que voy a poner en este post, pero no he sido capaz de encontrarlo. Todo sea que ande por ahí pero no haya hecho bien la búsqueda.

La anterior vez que tuve que llevar a cabo esa operación hice exactamente lo mismo (o muy parecido): cambiar la ubicación de la carpeta de usuario de sitio. Por lo que la pasaría de la unidad C a la D.

Para ello, una de las formas posibles, es modificando el registro de Windows. Y, para ello, vamos a utilizar la herramienta regedit. Evidentemente, necesitaremos elevar privilegios. Eso sí, como de costumbre: toquetear donde no se debe puede producir resultados inesperados e indeseables, que podría hacer falta reinstalar (de nuevo) el sistema. Hazlo bajo tu responsabilidad.

Lo primero que vamos a hacer es realizar una búsqueda del regedit desde el botón de inicio:

01-Abriendo regedit
01-Abriendo regedit

Una vez lo hemos abierto, tendremos que visitar la rama 

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList]

Regedit: [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList]
Regedit:  ProfileList
Las tres entradas que se pueden ver que hacen referencia a %SystemDrive%\Users\ habrá que cambiarlas a D:\Users\. Una vez cambiadas, todo usuario que vayas a crear, tendrá todo el contenido de su perfil en esa ruta. ¡Mucho ojo de cambiar las demás! A ver si me explico. En teoría, se debería de poder cambiar la ruta de un usuario ya creado, pero eso implicaría hacer una copia de su perfil completo en la otra ubicación, y no tiene por qué funcionar. Además, podrías dejar a tu administrador como un mero mortal. Podrías loguearte con su cuenta, pero la UAC no haría efecto. No funcionaría. Hazme caso, que ya metí la pata con eso. 

Esto me fue muy útil la anterior vez, y por eso lo he vuelto a hacer. Todos los datos que se almacenen en el perfil, aunque sean, por ejemplo, tus favoritos del IE o del Firefox, se guardarán a salvo de los posibles formateos que tengas que hacer de la partición del sistema operativo.