New-PSSession a través de los límites del dominio

8

Estoy tratando de abrir una máquina virtual que necesita poder crear nuevas sesiones (con New-PSSession). ¡El muy atractivo acerca de la solución de problemas remotos es mi compañero constante, por supuesto!

Después de abrir una máquina básica (Win 8.1 Enterprise):

  • Dominio principal de mi empresa es, por ejemplo, mycompany.com.
  • Tenemos un dominio de desarrollo dev.mycompany.compara que los desarrolladores tengan un entorno limitado para jugar.
  • Agregué la nueva VM (llamada my-vm) al dominio de desarrollo dev.mycompany.com.
  • Tengo una cuenta local en la nueva VM, my-vm\msorensque está en el grupo Administradores en la máquina local.

Primer obstáculo:

Intento de ejecutar simplemente New-PSSessionfalló con acceso denegado debido a problemas entre dominios. Según la página de solución de problemas mencionada anteriormente:

Cuando un usuario en otro dominio es miembro del grupo Administradores en la computadora local, el usuario no puede conectarse a la computadora local de forma remota con privilegios de administrador.

No estoy convencido de que esto sea cierto (debido a mi inexperiencia en cuestiones de dominio), pero la aplicación de la receta para ese remedio permitió que lo básico New-PSSessionfuncionara:

New-ItemProperty `
-Name LocalAccountTokenFilterPolicy `
-Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System `
-PropertyType DWord `
-Value 1

(Y eso, aunque es menos seguro, está bien, ya que es solo una máquina virtual de sandbox).

Segundo obstáculo:

Con el parche anterior en su lugar, podría hacer con éxito cualquiera de estos:

PS> New-PSSession
PS> New-PSSession -ComputerName localhost
PS> New-PSSession -ComputerName my-vm

Sin embargo, mi necesidad real es dar el FQDN de la máquina:

PS> New-PSSession -ComputerName my-vm.dev.mycompany.com

Eso falla debido a la falta de credenciales. Lo que nos lleva a esto:

PS> New-PSSession -ComputerName my-vm.dev.mycompany.com -Credential (Get-Credential)

He probado mis credenciales locales (my-vm), lo que resultó en que WinRM no puede procesar la solicitud; no hay servidores de inicio de sesión disponibles .

He probado las credenciales de dominio de mi empresa (tenga en cuenta que es mycompany.com no el dominio en el que se encuentra realmente la VM en dev.mycompany.com), lo que resultó en el acceso denegado .

¿Hay alguna manera de hacer que esto funcione?

Michael Sorens
fuente
¿Has intentado especificar un sufijo UPN? [email protected]
red888
1
¿El dev.mycompany.comdominio confía en el mycompany.comdominio? De lo contrario, es posible que no pueda conectarse. Además, tenemos un entorno muy similar al tuyo. Mi cuenta corporativa principal es un administrador en mi VM, que está en nuestro dominio de desarrollo, y puedo iniciar sesión en la VM.
bits salpicados

Respuestas:

8

En el trabajo tenemos la misma situación. Aquí hay algunos pasos que hacemos en las nuevas computadoras de compañeros de trabajo para que puedan conectarse a estos servidores fuera de nuestro dominio.

Del lado del cliente

winrm quickconfig
winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'

En el lado del servidor

Enable-PSRemoting -Force
winrm quickconfig

Para HTTPS

winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="_";CertificateThumbprint="_"}

Para HTTP

winrm create winrm/config/Listener?Address=*+Transport=HTTP

Prueba con

Test-WsMan ComputerName
Test-WsMan ComputerName -UseSSL

Crea una sesión con

New-PSSession -ComputerName Computer1 -Credential (Get-Credential)

Por supuesto, debe configurar su firewall para permitir que el servidor escuche en el puerto remoto Powershell.

Editar: establecer TrustedHosts con PowerShell

O con PowerShell (como administrador)

Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value "Computer1,Computer2"

Y verifique (no necesita administrador para eso)

Get-Item WSMan:\localhost\Client\TrustedHosts
dhcgn
fuente
1
O, en lugar de una New-PSSession, puede hacer una Enter-PSSession. Además, solo utilizo esta línea: winrm set winrm / config / client '@ {TrustedHosts = "Computer1"}', ya que tenía remotos trabajando dentro del dominio desde antes.
Gomibushi