Per stabilire una connessione tra il plug-in PowerShell e Windows PowerShell, è necessario configurare WinRM in modo che utilizzi uno dei protocolli di comunicazione supportati.

Il plug-in PowerShell supporta Windows Remote Management (WinRM) 2.0 come protocollo di gestione.

Sono supportati i metodi di autenticazione descritti di seguito.
Metodo di autenticazione Dettagli
Di base Meccanismo di autenticazione non sicuro che richiede un nome utente e una password.
Kerberos Protocollo di autenticazione sicuro che utilizza ticket per verificare l'identità del client e del server.
Nota: Il plug-in PowerShell non supporta la delega delle credenziali dell'utente in WinRM e CredSSP non è un metodo di autenticazione supportato.

WinRM tramite HTTP

Il plug-in PowerShell supporta la comunicazione con l'host WinRM tramite il protocollo HTTP. Anche se WinRM esegue l'autenticazione della comunicazione, il trasferimento dei dati non è crittografato e viene inviato come testo normale nella rete. È necessario utilizzare il protocollo HTTP se tra le macchine che comunicano è configurato IPSec.

Per utilizzare l'autenticazione di base, è necessario impostare la proprietà AllowUnencrypted su true nella configurazione WinRM del servizio e del client. Per un esempio di configurazione con HTTP, vedere Configurazione di WinRM per l'utilizzo di HTTP.

WinRM tramite HTTPS

Il plug-in PowerShell supporta la comunicazione con l'host WinRM tramite il protocollo HTTPS. È possibile utilizzare il protocollo HTTPS come metodo di comunicazione più sicuro.

Per utilizzare il protocollo HTTPS, è necessario generare un certificato per l'autenticazione del server e installare il certificato nell'host WinRM. Per un esempio di configurazione con HTTPS, vedere Configurazione di WinRM per l'utilizzo di HTTPS.

autenticazione Kerberos

È possibile utilizzare l'autenticazione Kerberos quando si aggiunge e si gestisce un host PowerShell. Con l'autenticazione Kerberos, gli utenti del dominio possono eseguire comandi in macchine remote abilitate per PowerShell tramite WinRM.

Per configurare WinRM nell'host PowerShell, eseguire il comando seguente.
winrm quickconfig
winrm set winrm/config/service/auth '@{Kerberos="true"}'
winrm set winrm/config/winrs @{MaxMemoryPerShellMB="2048"}

Per ulteriori informazioni, vedere Configurazione dell'autenticazione Kerberos per i plug-in di Automation Orchestrator.

Configurazione di WinRM per l'utilizzo di HTTP

È possibile configurare l'host di WinRM per abilitare la comunicazione con il plug-in PowerShell tramite il protocollo HTTP.

È necessario modificare la configurazione di WinRM eseguendo comandi nella macchina host di WinRM. È possibile utilizzare la stessa macchina come servizio WinRM e come client WinRM.

Importante: Se si ignora uno qualsiasi dei passaggi durante la configurazione di WinRM per l'utilizzo del protocollo HTTP, è possibile che l'host non venga aggiunto e che nei registri venga visualizzato un messaggio di errore come quello seguente:
Caused by: org.dom4j.DocumentException: Error on line -1 of document : Premature end of file. 
Nested exception: Premature end of file.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.dom4j.DocumentHelper.parseText(DocumentHelper.java:278)
at com.xebialabs.overthere.cifs.winrm.connector.JdkHttpConnector.sendMessage(JdkHttpConnector.java:117)

Procedura

  1. Eseguire il comando seguente per impostare i valori di configurazione di WinRM predefiniti.
    c:\> winrm quickconfig
  2. (Facoltativo) Eseguire il comando seguente per verificare che il listener sia in esecuzione e verificare le porte predefinite.
    c:\> winrm e winrm/config/listener

    Le porte predefinite sono 5985 per HTTP e 5986 per HTTPS.

  3. Abilitare l'autenticazione di base nel servizio WinRM.
    1. Eseguire il comando seguente per verificare se l'autenticazione di base è consentita.
      c:\> winrm get winrm/config/service
    2. Eseguire il comando seguente per abilitare l'autenticazione di base.
      c:\> winrm set winrm/config/service/auth '@{Basic="true"}'
  4. Eseguire il comando seguente per consentire il trasferimento dei dati non crittografati al servizio WinRM.
    c:\> winrm set winrm/config/service @{AllowUnencrypted="true"}
  5. Se il livello di protezione avanzata del token di binding del canale del servizio WinRM è impostato su strict, modificare il valore specificando relaxed.
    c:\> winrm set winrm/config/service/auth @{CbtHardeningLevel="relaxed"}
  6. Abilitare l'autenticazione di base nel client WinRM.
    1. Eseguire il comando seguente per verificare se l'autenticazione di base è consentita.
      c:\> winrm get winrm/config/client
    2. Eseguire il comando seguente per abilitare l'autenticazione di base.
      c:\> winrm set winrm/config/client/auth @{Basic="true"}
  7. Eseguire il comando seguente per consentire il trasferimento dei dati non crittografati al client WinRM.
    c:\> winrm set winrm/config/client @{AllowUnencrypted="true"}
  8. Se la macchina host di WinRM si trova in un dominio esterno, eseguire il comando seguente per specificare gli host attendibili.
    c:\> winrm set winrm/config/client @{TrustedHosts="host1, host2, host3"}
  9. Eseguire il comando seguente per provare la connessione al servizio WinRM.
    c:\> winrm identify -r:http://winrm_server:5985 -auth:basic -u:user_name -p:password -encoding:utf-8

Configurazione di WinRM per l'utilizzo di HTTPS

È possibile configurare l'host di WinRM per abilitare la comunicazione con il plug-in PowerShell tramite il protocollo HTTPS.

L'host di WinRM richiede un certificato per poter comunicare tramite il protocollo HTTPS. È possibile ottenere un certificato oppure generarne uno.

Prerequisiti

  • Configurare WinRM in modo che utilizzi il protocollo HTTP. Per ulteriori informazioni, vedere Configurazione di WinRM per l'utilizzo di HTTP.
  • Verificare di poter accedere a Microsoft Management Console (mmc.exe) nell'host di WinRM.

Procedura

  1. Generare un certificato autofirmato.
    La seguente riga di comando contiene una sintassi di esempio per la creazione di un certificato nell'host di WinRM mediante il cmdlet Powershell New-SelfSignedCertificate.
    New-SelfSignedCertificate -CertStoreLocation cert:\localmachine\my -DnsName ("machinename.subdomain.company.com", "machinename") -NotAfter (get-date).AddYears(5) -Provider "Microsoft RSA SChannel Cryptographic Provider" -KeyLength 2048

    In questo esempio, il parametro -NotAfter specifica che il certificato scadrà tra 5 anni. Se questo parametro non viene specificato, il certificato scade dopo 1 anno. Ulteriori informazioni sulla creazione dei certificati autofirmati.

  2. Aggiungere il certificato generato utilizzando Microsoft Management Console.
    1. Eseguire mmc.exe.
    2. Selezionare File > Aggiungi/Rimuovi snap-in.
    3. Nell'elenco di snap-in disponibili, selezionare Certificati e fare clic su Aggiungi.
    4. Selezionare Account del computer e fare clic su Avanti.
    5. Fare clic su Fine.
    6. Verificare che il certificato sia installato in Radice console > Certificati (computer locale) > Personale > Certificati e Radice console > Certificati (computer locale) > Autorità di certificazione radice attendibili > Certificati.
      Se il certificato non è installato nelle cartelle Personale e Autorità di certificazione radice attendibili, è necessario installarlo manualmente.
  3. Creare un listener HTTPS utilizzando l'identificazione personale e il nome host corretti.
    La seguente riga di comando contiene una sintassi di esempio per la creazione di un listener HTTPS.

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

    Nota: Nell'identificazione personale del certificato omettere gli spazi.

    Quando il certificato scade, il listener deve essere eliminato e creato nuovamente con il nuovo certificato valido.

  4. Provare la connessione.
    La seguente riga di comando contiene una sintassi di esempio per provare la connessione.

    winrs -r:https://host_name:port_number -u:user_name -p:password hostname