Om een verbinding tussen de PowerShell-invoegtoepassing en Windows PowerShell te maken, moet u WinRM configureren om een van de ondersteunde communicatieprotocollen te gebruiken.

De PowerShell-invoegtoepassing ondersteunt Windows Remote Management (WinRM) 2.0 als beheerprotocol.

De volgende verificatiemethoden worden ondersteund.
Verificatiemethode Details
Basis Niet-beveiligd verificatiemechanisme waarvoor een gebruikersnaam en wachtwoord zijn vereist.
Kerberos Beveiligd verificatieprotocol dat tickets gebruikt om de identiteit van de client en de server te controleren.
Opmerking: De PowerShell-invoegtoepassing biedt geen ondersteuning voor de overdracht van gebruikersverificatiegegevens in WinRM, en CredSSP is geen ondersteunde verificatiemethode.

WinRM via HTTP

De PowerShell-invoegtoepassing ondersteunt communicatie met de WinRM-host via het HTTP-protocol. Hoewel WinRM de communicatie verifieert, wordt de gegevensoverdracht niet versleuteld en wordt gegevens als platte tekst via het netwerk verzonden. U moet het HTTP-protocol gebruiken als IPSec is geconfigureerd tussen de machines die communiceren.

Als u basisverificatie wilt gebruiken, moet u de eigenschap AllowUnencrypted instellen op true in de WinRM-configuratie van zowel de service als de client. Zie WinRM configureren voor gebruik van HTTP voor een voorbeeld van de HTTP-configuratie.

WinRM via HTTPS

De PowerShell-invoegtoepassing ondersteunt communicatie met de WinRM-host via het HTTPS-protocol. U kunt het HTTPS-protocol gebruiken als een veiligere communicatiemethode.

Om het HTTPS-protocol te gebruiken, moet u voor serververificatie een certificaat genereren en het certificaat op de WinRM-host installeren. Zie WinRM configureren voor gebruik van HTTPS voor een voorbeeld van de HTTPS-configuratie.

Kerberos-verificatie

U kunt Kerberos-verificatie gebruiken wanneer u een PowerShell-host toevoegt en beheert. Met Kerberos-verificatie kunnen domeingebruikers opdrachten op externe voor PowerShell ingeschakelde machines via WinRM uitvoeren.

Voer de volgende opdracht uit om WinRM op de PowerShell-host te configureren.
winrm quickconfig
winrm set winrm/config/service/auth '@{Kerberos="true"}'
winrm set winrm/config/winrs @{MaxMemoryPerShellMB="2048"}

Zie Kerberos-verificatie voor Automation Orchestrator-invoegtoepassingen configureren voor meer informatie.

WinRM configureren voor gebruik van HTTP

U kunt de WinRM-host configureren om communicatie met de PowerShell-invoegtoepassing via het HTTP-protocol in te schakelen.

U past de WinRM-configuratie aan door opdrachten op de WinRM-hostmachine uit te voeren. U kunt dezelfde machine gebruiken als de WinRM-service en de WinRM-client.

Belangrijk: Als u een van de stappen overslaat tijdens het configureren van WinRM om HTTP te gebruiken, kan de host niet worden toegevoegd en kunt u een foutbericht ophalen in de logboeken zoals:
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)

Procedure

  1. Voer de volgende opdracht uit om de standaard WinRM-configuratiewaarden in te stellen.
    c:\> winrm quickconfig
  2. (Optioneel) Voer de volgende opdracht uit om te controleren of een listener wordt uitgevoerd en controleer de standaardpoorten.
    c:\> winrm e winrm/config/listener

    De standaardpoorten zijn 5985 voor HTTP en 5986 voor HTTPS.

  3. Schakel basisverificatie in op de WinRM-service.
    1. Voer de volgende opdracht uit om te controleren of de basisverificatie is toegestaan.
      c:\> winrm get winrm/config/service
    2. Voer de volgende opdracht uit om basisverificatie in te schakelen.
      c:\> winrm set winrm/config/service/auth '@{Basic="true"}'
  4. Voer de volgende opdracht uit om overdracht van niet-versleutelde gegevens voor de WinRM-service toe te staan.
    c:\> winrm set winrm/config/service @{AllowUnencrypted="true"}
  5. Als het hardingsniveau voor token voor kanaalbinding van de WinRM-service is ingesteld op Strikt, wijzigt u de waarde in Minder precies.
    c:\> winrm set winrm/config/service/auth @{CbtHardeningLevel="relaxed"}
  6. Schakel basisverificatie in op de WinRM-client.
    1. Voer de volgende opdracht uit om te controleren of de basisverificatie is toegestaan.
      c:\> winrm get winrm/config/client
    2. Voer de volgende opdracht uit om basisverificatie in te schakelen.
      c:\> winrm set winrm/config/client/auth @{Basic="true"}
  7. Voer de volgende opdracht uit om overdracht van niet-versleutelde gegevens voor de WinRM-client toe te staan.
    c:\> winrm set winrm/config/client @{AllowUnencrypted="true"}
  8. Als de WinRM-hostmachine zich in een extern domein bevindt, voert u de volgende opdracht uit om de vertrouwde hosts op te geven.
    c:\> winrm set winrm/config/client @{TrustedHosts="host1, host2, host3"}
  9. Voer de volgende opdracht uit om de verbinding met de WinRM-service te testen.
    c:\> winrm identify -r:http://winrm_server:5985 -auth:basic -u:gebruikersnaam -p:wachtwoord -encoding:utf-8

WinRM configureren voor gebruik van HTTPS

U kunt de WinRM-host configureren om communicatie met de PowerShell-invoegtoepassing via het HTTPS-protocol in te schakelen.

De WinRM-host vereist een certificaat, zodat deze via het HTTPS-protocol kan communiceren. U kunt een certificaat verkrijgen of genereren.

Voorwaarden

  • Configureer WinRM om het HTTP-protocol te gebruiken. Zie WinRM configureren voor gebruik van HTTP voor meer informatie.
  • Controleer of u toegang hebt tot de Microsoft Management Console (mmc.exe) op de WinRM-host.

Procedure

  1. Genereer een automatisch ondertekend certificaat.
    De volgende opdrachtregel bevat voorbeeldsyntaxis voor het maken van een certificaat op de WinRM-host door gebruik te maken van de Powershell Cmdlet 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 dit voorbeeld geeft de parameter -NotAfter aan dat het certificaat over 5 jaar verloopt. Als deze parameter niet is opgegeven, verloopt het certificaat over 1 jaar. Meer informatie over het maken van zelfondertekende certificaten.

  2. Voeg het gegenereerde certificaat toe met de Microsoft Management Console.
    1. Voer mmc.exe uit.
    2. Selecteer Bestand > Module toevoegen/verwijderen.
    3. Selecteer Certificaten uit de lijst met beschikbare modules en klik op Toevoegen.
    4. Selecteer Computeraccount en klik op Volgende.
    5. Klik op Voltooien.
    6. Controleer of het certificaat is geïnstalleerd in Consolebasis > Certificaten (lokale computer) > Persoonlijke > certificaten en Consolebasis > Certificaten (lokale computer) > Vertrouwde basiscertificeringsinstanties > Certificaten.
      Als het certificaat niet is geïnstalleerd in de mappen Vertrouwde basiscertificeringsinstanties en Persoonlijk, moet u deze handmatig installeren.
  3. Maak een HTTPS-listener door de vingerafdruk en hostnaam te gebruiken.
    De volgende opdrachtregel bevat voorbeeldsyntaxis voor het maken van een HTTPS-listener.

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

    Opmerking: Laat de spaties in de vingerafdruk van het certificaat weg.

    Wanneer het certificaat verloopt, moet de listener worden verwijderd en opnieuw worden gemaakt met het nieuwe geldige certificaat.

  4. Test de verbinding.
    De volgende opdrachtregel bevat voorbeeldsyntaxis voor het testen van de verbinding.

    winrs -r:https://hostnaam:poortnummer -u:gebruikersnaam -p:wachtwoord hostnaam