Activar escritorio remoto mediante Powershell

Por defecto la conexión por escritorio remoto aparece deshabilitada en los equipos con Windows Pro, en una red de dominio es posible establecer mediante políticas de grupo los permisos necesarios:

– Configuración de Equipo \ Directivas \ Plantillas Administrativas
— Componentes de Windows \ Servicios de escritorio remoto \ Host de sesión de Escritorio remoto \ Conexiones \ Permitir que los usuarios se conecten de forma remota mediante Servicios de Escritorio Remoto

— Red \ Conexiones de red \ Firewall de Windows \ Perfil de dominio \ Firewall de Windows: permitir excepciones de Escritorio remoto entrantes

Igualmente podemos echar mano de un Script para powershell escrito por Sitaram Pamarthi en 2013, que mediante WMI nos facilita acciones puntuales:

[cmdletbinding()]
param(
	[parameter(ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
	[string[]]$ComputerName = $env:computername,
	[ValidateScript({Test-Path $_})]
	[string]$OutFolder = "c:\"
)

begin {
$SuccessComps = Join-Path $OutFolder "Successcomps.txt"
$FailedComps = Join-Path $OutFolder "FailedComps.txt"
}

process {
	foreach($Computer in $ComputerName) {

		try {
			$RDP = Get-WmiObject -Class Win32_TerminalServiceSetting `
								-Namespace root\CIMV2\TerminalServices `
								-Computer $Computer `
								-Authentication 6 `
								-ErrorAction Stop
								
		} catch {
			Write-Host "$Computer : WMIQueryFailed"
			"$Computer : WMIQueryFailed" | Out-File -FilePath $FailedComps -Append
			continue
		}
		
		if($RDP.AllowTSConnections -eq 1) {
			Write-Host "$Computer : RDP Already Enabled"
			"$Computer : RDP Already Enabled" | Out-File -FilePath $SuccessComps -Append
			continue
		} else {
			try {
				$result = $RDP.SetAllowTsConnections(1,1)
				if($result.ReturnValue -eq 0) {
					Write-Host "$Computer : Enabled RDP Successfully"
					"$Computer : RDP Enabled Successfully" | Out-File -FilePath $SuccessComps -Append
				} else {
					Write-Host "$Computer : Failed to enabled RDP"
					"$Computer : Failed to enable RDP" | Out-File -FilePath $FailedComps -Append

				}
			
			} catch {
				Write-Host "$computer : Failed to enabled RDP"
				"$Computer : Failed to enable RDP" | Out-File -FilePath $FailedComps -Append
			}
		}
	}

}

end {}

Su utilización para un equipo concreto:

.\Enable-RDPAccess.ps1 -ComputerName <computer name>

 Si obtenemos errores al ejectuarlo, debemos comprobar que tenemos acceso mediante WMI o activarlo mediante GPO:

– Configuración del equipo \ Directivas \ Configuración de Windows \ Configuración de seguridad \ Firewall de Windows con seguridad avanzada \ Reglas de Entrada

No se pudo actualizar la partición reservada del sistema

Microsoft ha simplificado, cada vez más, las actualizaciones y migraciones a Windows 10 desde el año 2015, pero en ocasiones es necesario acciones específicas. En este caso el error que nos aparece al utilizar la herramienta de actualización es el siguiente: «No se pudo actualizar la partición reservada del sistema«

Leer más

Actualización fallida Windows 10 / Windows Server 2019: 0xC1900101 – 0x30018

Aunque la solución parece enfocada en Windows 10, también es aplicable a Windows Server 2019. Después de un par de reinicios en el proceso de actualización aparece el error:

0xC1900101 - 0x30018
Error de instalación en la fase FIRST_BOOT con un error durante la operación SYSPREP
Leer más
0xC1900101 - 0x30018
Error de instalación en la fase FIRST_BOOT con un error durante la operación SYSPREP
Leer más

Aplicaciones Metro, seguridad y permisos de administrador

En varias ocasiones encuentras mensajes en equipos que no permiten la ejecución de programas por estar utilizando el usuario administrador predeterminado: «No podemos abrir X con la cuenta predeterminada de administrador. Inicia sesión con otra cuenta y prueba de nuevo»

Realmente un usuario de Windows siempre ha podido ejecutar cualquier aplicación pero desde Windows 8, aunque tu nombre de usuario durante la instalación sea otro, crea 2 cuentas adicionales: administrador e invitado.

Estas se utilizan para ejecutar el control de cuentas de usuario UAC, instalación de imágenes, servicios… las implicaciones de seguridad son muchas, como buena práctica general nunca debes ejecutar para tu uso diario bajo la cuenta de permisos de administrador, menos sobre la cuenta de administrador predeterminado.

La razón es sencilla y muy repetida, si existe un problema de seguridad se limitará a la zona que este accesible a esa cuenta. Si conociendo las implicaciones que supone y quieres seguir con ello, también puedes: Directiva de seguridad local -> Directivas Locales -> Opciones de seguridad -> Control de cuentas de usuario: ejecutar todos los administradores en Modo de aprobación de administrador (habilitar)

Nombres de servicios en Windows

En ocasiones las traducciones de algunos servicios de Inglés a Español en los nombres de los servicios de windows, tanto para servidores como para clientes son algo… peculiares y no siempre se ajustan… podemos contrastarlos con los nombres cortos. Mediante PowerShell sacamos el listado completo:

Get-Service | Sort-Object -Property DisplayName | Format-Table DisplayName, Name -AutoSize

En el caso de necesitar conocer que servicio, programa, proceso… tiene abierto un fichero determinado, podemos recurrir a la herramienta Process Explorer, pulsamos sobre «Find -> Find Handle or DLL…» con el nombre del fichero.

Una vez encontrado desde las propiedades podemos ver si tiene algún servicio asociado.