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:
    • DISM.exe /Online /Cleanup-image /Scanhealth
    • DISM.exe /Online /Cleanup-image /Restorehealth
  4. Para cerrar el símbolo del sistema escribe Exit y pulsa ENTER.
  5. Ejecuta Windows Update de nuevo.

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.

 

Si Cortana te ha dejado de funcionar después de alguna actualización, no te preocupes, es bastante normal.

Lo único que tienes que hacer es reinstalar y registrar de nuevo el asistente.

Abre el terminal de comandos con permisos de administrador y ejecuta powershell, copia la siguiente línea y pulsa enter en el terminal:

 

Get-AppxPackage -AllUsers Microsoft.Windows.Cortana | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}


Una vez terminada la ejecución reinicia Windows 10 y ya tienes Cortana operativa de nuevo.

Antes de empezar, aclaro una cosa: el que la contraseña caduque es bueno ya que le recuerda al usuario que tiene que cambiarla periódicamente y esta opción DEBE activarse por defecto.

Si no se modifica nada en las Directivas de Seguridad Local, el tiempo por defecto antes de que caduque es de 42 días.

Ahora bien, si os parece una medida de seguridad innecesaria, podéis desactivar esta caducidad de una manera muy sencilla:

 

Modo 1 (Windows Professional, Ultimate y Enterprise):

Vamos al icono de Windows y en el cuadro de búsqueda ponemos:  lusrmgr.msc

Pinchamos en el icono, vamos a Usuarios, tu usuario y seleccionamos la casilla “la contraseña nunca caduca”. Si se entra como administrador podremos modificar esta propiedad en todos los usuarios que queramos.

Damos Aceptar a todo y ya lo tenemos desactivado.

 

Modo 2 (Windows Home Premium):

Aquí han hecho la “gracia” de deshabilitar el complemento de gestión de usuarios, pero podemos hacer lo mismo por línea de comando.

Vamos al símbolo de Windows, escribimos CMD y con el botón derecho en el icono de cmd.exe seleccionamos “ejecutar como administrador”. Ahí escribimos:

net accounts /maxpwage:unlimited

Y damos al enter. Al reiniciar el ordenador tendremos la caducidad desactivada.

 

Modo 3: Para todas las versiones:

También podemos seguir los primeros pasos del modo 2 para ejecutar el terminal en modo administrador. Luego escribir:

wmic path Win32_UserAccount WHERE Name=’username’ set PasswordExpiries=false

Modifica username por tu nombre de usuario y luego dale al Enter. Esto hará el mismo efecto.