New-PSSession au-delà des limites du domaine

8

J'essaie de faire apparaître une machine virtuelle qui doit pouvoir créer de nouvelles sessions (avec New-PSSession). Le très engageant about_Remote_Troubleshooting est mon compagnon constant, bien sûr!

Après avoir lancé une machine de base (Win 8.1 Enterprise):

  • Domaine principal de mon entreprise est, par exemple, mycompany.com.
  • Nous avons un domaine de développement dev.mycompany.compour que les développeurs aient un bac à sable avec lequel jouer.
  • J'ai ajouté la nouvelle VM (nommée my-vm) au domaine de développement dev.mycompany.com.
  • J'ai un compte local sur la nouvelle machine virtuelle, my-vm\msorensqui se trouve dans le groupe Administrateurs sur la machine locale.

Premier obstacle:

La tentative d'exécution a New-PSSessionéchoué et l'accès a été refusé en raison de problèmes interdomaines. Par la page de dépannage référencée ci-dessus:

Lorsqu'un utilisateur d'un autre domaine est membre du groupe Administrateurs sur l'ordinateur local, l'utilisateur ne peut pas se connecter à distance à l'ordinateur local avec des privilèges d'administrateur.

Je ne suis pas convaincu que cela soit vrai (en raison de mon inexpérience dans les problèmes de domaine), mais l'application de la recette de ce remède a permis à la base New-PSSessionde fonctionner:

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

(Et cela, bien que moins sécurisé, est très bien, car il ne s'agit que d'une machine virtuelle sandbox.)

Deuxième obstacle:

Avec le patch ci-dessus en place, je pourrais faire avec succès l'un de ces éléments:

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

Cependant, mon besoin réel est de donner le FQDN de la machine:

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

Cela échoue en raison d'informations d'identification manquantes. Ce qui nous amène à ceci:

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

J'ai essayé mes informations d'identification locales (my-vm), ce qui a empêché WinRM de traiter la demande; aucun serveur d'ouverture de session disponible .

J'ai essayé les informations d'identification de domaine de ma société (notez qu'il s'agit de mycompany.com et non du domaine sur lequel la machine virtuelle se trouve réellement sur dev.mycompany.com), ce qui a entraîné le refus d'accès .

Existe-t-il un moyen de faire fonctionner cela?

Michael Sorens
la source
Avez-vous essayé de spécifier un suffixe UPN? [email protected]
red888
1
Le dev.mycompany.comdomaine approuve-t-il le mycompany.comdomaine? Sinon, vous ne pourrez peut-être pas vous connecter. De plus, nous avons un environnement très similaire au vôtre. Mon compte d'entreprise principal est un administrateur sur ma machine virtuelle, qui se trouve sur notre domaine de développement, et je peux me connecter à la machine virtuelle.
éclaboussures

Réponses:

8

Au travail, nous avons la même situation. Voici quelques étapes que nous effectuons sur les nouveaux ordinateurs de collègues afin qu'ils puissent se connecter à ces serveurs en dehors de notre domaine.

Côté client

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

Côté serveur

Enable-PSRemoting -Force
winrm quickconfig

Pour HTTPS

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

Pour HTTP

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

Testez avec

Test-WsMan ComputerName
Test-WsMan ComputerName -UseSSL

Créez une session avec

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

Bien sûr, vous devez configurer votre pare-feu pour permettre au serveur d'écouter sur le port distant de PowerShell.

Modifier: définir TrustedHosts avec PowerShell

Ou avec PowerShell (en tant qu'administrateur)

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

Et vérifiez (pas besoin d'Admin pour ça)

Get-Item WSMan:\localhost\Client\TrustedHosts
dhcgn
la source
1
Ou, au lieu d'une New-PSSession, vous pouvez simplement faire une Enter-PSSession. De plus, je n'ai que cette ligne - winrm set winrm / config / client '@ {TrustedHosts = "Computer1"}' - puisque j'avais à distance de travailler à l'intérieur du domaine auparavant.
Gomibushi