New-PSSession attraverso i confini di dominio

Sto cercando di far emergere una macchina virtuale che deve essere in grado di creare nuove sessioni (con New-PSSession). L'altamente interessante about_Remote_Troubleshooting è il mio compagno costante, naturalmente!

Dopo aver richiamato una macchina di base (Win 8.1 Enterprise):

  • Come affrontare le password durante la distribuzione automatizzata?
  • Il consulente SEO desidera credenziali di sistema
  • Come aggiungere il certificato a Credential Manager di Windows?
  • C'è un'utilità di linea di command di Windows per verificare le credenziali dell'utente?
  • Windows 7 - Criteri di gruppo - Consenti di salvare i credenziali di RDP
  • Credenziali utente di Jenkins non mostrando il progetto
    • Domini primari della mia azienda sono, per esempio, mycompany.com .
    • Abbiamo un dominio di sviluppo dev.mycompany.com modo che gli sviluppatori dispongano di una sandbox da giocare.
    • Ho aggiunto il nuovo VM (denominato mio-vm) al dominio di sviluppo dev.mycompany.com .
    • Ho un account locale sul nuovo VM, my-vm\msorens che si trova nel gruppo Administrators della macchina locale.

    Prima ostacolo:

    Il tentativo di eseguire appena New-PSSession non è riuscito con l'accesso negato a causa di problemi di dominio interattivo. Per la pagina di risoluzione dei problemi di cui sopra:

    Quando un utente di un altro dominio è un membro del gruppo Administrators nel computer locale, l'utente non può connettersi al computer locale in remoto con i privilegi di amministratore.

    Non sono convinto che questo sia vero (a causa della mia inesperienza nei problemi di dominio) ma applicando la ricetta per quel rimedio ha permesso alla New-PSSession di base di funzionare:

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

    (E questo, sebbene less sicuro, va bene, perché è solo un sandbox VM.)

    Secondo ostacolo:

    Con la patch sopra indicata ho potuto eseguire con successo uno di questi:

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

    Tuttavia, la mia effettiva necessità è dare il FQDN della macchina:

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

    Questo non riesce a causa delle credenziali mancanti. Ciò ci port a questo:

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

    Ho provato le mie credenziali locali (my-vm), che hanno portto a WinRM non è in grado di elaborare la richiesta; nessun server di accesso disponibile .

    Ho provato le mie credenziali di dominio aziendale (noti che non è il miocompany.com non il dominio che il VM è in realtà su dev.mycompany.com), che ha portto ad Access è negato .

    C'è un modo per fare questo lavoro?

  • Come gestire le credenziali memorizzate (Windows Vault) per un altro utente di te, ad esempio SYSTEM?
  • Windows 7 - Criteri di gruppo - Consenti di salvare i credenziali di RDP
  • Wget: C'è un modo per passare nome utente e password da un file?
  • Perché un utente può concedere il diritto di accesso come un servizio?
  • C'è un'utilità di linea di command di Windows per verificare le credenziali dell'utente?
  • Come aggiungere il certificato a Credential Manager di Windows?
  • One Solution collect form web for “New-PSSession attraverso i confini di dominio”

    Al lavoro abbiamo la stessa situazione. Ecco alcuni passi che facciamo ai nuovi collaboratori in modo che siano in grado di connettersi a questi server come sono fuori dal nostro dominio.

    Sul lato client

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

    Sul lato server

     Enable-PSRemoting -Force winrm quickconfig 

    Per HTTPS

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

    Per HTTP

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

    Prova con

     Test-WsMan ComputerName Test-WsMan ComputerName -UseSSL 

    Crea una session con

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

    Naturalmente è necessario configurare il firewall per consentire al server di ascoltare il port di remoto di powershell.

    Modifica: imposta TrustedHosts con PowerShell

    Oppure con PowerShell (come amministratore)

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

    E controlla (non serve Admin)

     Get-Item WSMan:\localhost\Client\TrustedHosts 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.