Reset Windows Update es una herramienta completa de solución de problemas que se puede generar con las actualizaciones de Windows

Esta herramienta incluye un gran número de funciones de solución de problemas, tales como:

  1. Restablecer los componentes de Windows Update
  2. Eliminar archivos temporales
  3. Cambiar los valores inválidos en el registro de Windows
  4. Analizar todos los archivos protegidos del sistema y reemplazar los archivos dañados (SFC / scannow)
  5. Explorar, detectar y repara las corrupciones de la imagen del sistema de Windows
  6. Limpiar los componentes remplazados

La herramienta de restablecimiento de Windows Update fue desarrollada principalmente para restablecer los componentes de Windows Update. Con el tiempo, se han añadido nuevas características para mejorar la experiencia del usuario.

pantalla script wupdate

 

 

Para descargar el script:

descargar button

Descomprimir el .zip en el escritorio y ejecutar el archivo ResetWUSpa.cmd con privilegios de administrador.
Pulsar con el botón derecho del ratón sobre el icono del script y seleccionar "Ejecutar como administrador"

 

 

Para más información y futuras versiones os recomiendo visitar la web de Manuel Gil, que es el desarrollador:

http://wureset.com/

 

 

Esta solución está probada en Windows 10 PRO a fecha 10/05/2020

 

Para poder restablecer el comportamiento esperado de javaw.exe y conseguir que al hacer doble click sobre un archivo .jar se abra y ejecute el programa de java en un entorno con ventanas, tienes que seguir estos pasos:

 

Elimina la siguiente rama del registro de windows con Regedit:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jar

 

Ejecuta desde una consola con permisos de administrador:

assoc .jar=jarfile
ftype jarfile="C:\program files\java\jre1.8.0_251\bin\javaw.exe" -jar "%1" %*

(cambia la ruta a javaw.exe por la que tengas en tu ordenador)

 

La rama del registro de windows HKEY_CLASSES_ROOT\.jar tiene que tener lo siguiente: 

Predeterminado      REG_SZ      jarfile

 

La rama del registro de windows HKEY_CLASSES_ROOT\jarfile tiene que tener:

shell
open
command
Predeterminado REG_EXPAND_SZ "C:\program files\java\jre1.8.0_251\bin\javaw.exe" -jar "%1" %*

 

Por último debes activar las variables de estado de Windows referentes a Java:

 

Doble click en el icono "Este Equipo" en el escritorio, se abre la ventana y en la opción de la izquierda: Configuración Avanzada del Sistema, se abrirá la ventana Propiedades del Sistema, nos vamos a la solapa Opciones avanzadas, pulsamos el botón de abajo: Variables de entorno.

 

Tenemos que añadir o modificar las siguientes "Variables del Sistema":

JAVA_HOME=C:\program files\java\jre1.8.0_251

Pulsamos Editar en la variable PATH y añadimos C:\program files\java\jre1.8.0_251

 

Recuerda cambiar la ruta de Java por la tuya en todos los casos.

 

Para descargar Java hay que seguir este enlace:

https://www.java.com/es/download/win10.jsp

 

Hay veces que necesitamos una versión má avanzada de Java porque al ejecutar algún script se nos dice que no tenemos una versión para un runtime determinado. En ese caso recomiendo esta versión de JRE de Java de software libre y multiplataforma:

https://adoptopenjdk.net/?variant=openjdk14&jvmVariant=hotspot

Si se instala esta versión, debes saber que no hay problema para que conviva junto con la versión oficial de Java de Oracle. Lo que sí es importante es que las variables de estado apunten a la versión que quieres ejecutar en cada momento. No olvides revisar el acceso directo que se encuentra aquí en esta ruta:

C:\Program Files (x86)\Common Files\Oracle\Java

Ahí encontrarás un acceso directo que se llama javapath y es el que tienes que rehacer si quieres que apunte a otra versión de Java que tengas instalado en tu sistema.

 

 

 

 

Para ejecutar la herramienta System Update Readiness, sigue estos pasos:

  1. Escribe cmd en el cuadro de búsqueda.
  2. En la lista de resultados, haz clic con el botón derecho del ratón en Símbolo del sistema y, a continuación, haz clic en Ejecutar como administrador.
  3. En la ventana del símbolo del sistema, escribe los comandos siguientes exactamente como aparecen. Pulsa la tecla ENTER después de cada comando:
    1. DISM.exe /Online /Cleanup-image /Scanhealth
    2. DISM.exe /Online /Cleanup-image /Restorehealth
    3. net stop cryptSvc
    4. net stop bits
    5. net stop msiserver
    6. net stop AppIDSvc
    7. ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
    8. ren C:\Windows\System32\Catroot2 Catroot2.old
    9. net start cryptSvc
    10. net start bits net
    11. start msiserver
    12. net start AppIDSvc
    13. ICACLS C:\Windows\winsxs
    14. wuauclt.exe /updatenow
  4. Importante: Si los dos primeros comandos no funcionaran al ejecutarlos, sigue con los demás pasos y cuando llegues al paso 14, REINICIA el equipo. Luego al volver al escritorio, ejecuta los dos primeros pasos que no funcionaron.
  5. Para cerrar el símbolo del sistema escribe Exit y pulsa ENTER.
  6. Descargar de la siguiente web el reparador de Microsoft para Windows Update
  7. https://aka.ms/diag_wu
  8. Ejecuta Windows Update de nuevo.
  9. En el caso raro e hipotético de que siguiera sin funcionar ejecuta SFC /scannow desde una consola de Símbolo del Sistema para ver qué archivos están estropeados y repararlos.

 

 

Tengo un artículo con un script que realiza todo esto por nosotros y a lo mejor te resulta más sencillo que hacerlo paso a paso.

Lo puedes leer aquí:

https://www.rafaelsantos.es/web/informatica/windows/66-reparar-windows-update-y-mucho-mas

 

 

Si has querido realizar una tarea programada con Windows 10 te habrás dado cuenta de que MicroSoft da por obsoletas las opciones de enviar un email o mostrar un mensaje.

accion tarea

Es evidente que lo hacen para potenciar el uso de PowerShell y de este modo incrementar su difusión. Así es que nosotros vamos a hacer un Script de PowerShell para enviar un email desde la consola y luego vamos a crear una tarea programada que lo ejecute.

El Script puede ser por ejemplo así:

$EmailPropio = "Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.";
$EmailDestino = "Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.";
$Asunto = "El asunto del email"
$Mensaje = "El cuerpo del mensaje"
$ServidorSMTP = "smtp.gmail.com"
$ClienteSMTP = New-Object Net.Mail.SmtpClient($ServidorSMTP, 587)
$ClienteSMTP.EnableSsl = $true
$ClienteSMTP.Credentials = New-Object System.Net.NetworkCredential("usuario", "contraseña");
$ClienteSMTP.Send($EmailPropio, $EmailDestino, $Asunto, $Mensaje)

Solo habría que personalizar las diferentes variables con los valores que te correspondan prestando especial atención al "usuario" y "contraseña" (ojo que las credenciales van todas en una sola línea)

Una vez personalizado el Script lo tenemos que guardar en un archivo con extensión .ps1 en una carpeta accesible, con permisos suficientes al menos a nuestro usuario o al que vaya ejecutar la tarea.

Luego desde el programador de tareas seleccionamos como acción a realizar "Iniciar un programa" y en el siguiente paso escribimos lo siguiente:

powershell -file "C:\rutadelscript\nombredelscript.ps1"

script tarea

  Y al darle a siguiente luego pulsamos Sí:

script tarea2Con esto ya tendremos la tarea que envía emails. Asóciala a un evento, a un horario, a un inicio de sesión... a lo que necesites y desde ese momento tu ordenador te avisará por email de lo que suceda.

NOTA: Para asegurarnos que GMAIL envía los mensajes correctamente tenemos que habilitar el uso de "aplicaciones menos seguras" en la configuración de la cuenta de Google. Ayuda de Google.

 

Para Windows 2008

Para que se ejecuten los scripts de PowerShell en Windows 2008 hay que activarlos con el siguiente comando escrito en la consola de PowerShell: Set-ExecutionPolicy Unrestricted

Para ejecutar los scripts en PowerShell con una tarea programada hay que hacerlo sin el parámetro -file que se usa para Windows 10, de modo que quedaría así: powershell "rutadelscript\script.ps1"

 

Adjuntar un archivo al email

Si lo que queremos es enviar un email y adjuntar un archivo al mismo tiempo, el código fuente anterior hay que modificarlo un poco y dejarlo así:

$EmailPropio = "Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.";
$EmailDestino = "Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.";
$Asunto = "El asunto del email"
$Texto = "El cuerpo del mensaje"
$ServidorSMTP = "smtp.gmail.com"
$Archivo = "c:\carpeta\archivo.txt"
$Mensaje = New-Object System.Net.Mail.MailMessage
$Mensaje.From = $EmailPropio
$Mensaje.To.Add($EmailDestino)
$Mensaje.IsBodyHtml = $True
$Mensaje.Subject = $Asunto
$Mensaje.Body = $Texto
$Adjunto = New-Object Net.Mail.Attachment($Archivo)
$Mensaje.Attachments.Add($Adjunto)
$ClienteSMTP = New-Object Net.Mail.SmtpClient($ServidorSMTP, 587)
$ClienteSMTP.EnableSsl = $true
$ClienteSMTP.Credentials = New-Object System.Net.NetworkCredential("usuario", "contraseña");
$ClienteSMTP.Send($Mensaje)

No olvidar que hay que modificar los valores entre comillas por los correspondientes a cada caso particular.