New-PSSession

Skapar en beständig anslutning till en lokal eller fjärransluten dator.

Syntax

New-PSSession
   [[-ComputerName] <String[]>]
   [-Credential <PSCredential>]
   [-Name <String[]>]
   [-EnableNetworkAccess]
   [-ConfigurationName <String>]
   [-Port <Int32>]
   [-UseSSL]
   [-ApplicationName <String>]
   [-ThrottleLimit <Int32>]
   [-SessionOption <PSSessionOption>]
   [-Authentication <AuthenticationMechanism>]
   [-CertificateThumbprint <String>]
   [<CommonParameters>]
New-PSSession
   [-Credential <PSCredential>]
   [-Name <String[]>]
   [-EnableNetworkAccess]
   [-ConfigurationName <String>]
   [-ThrottleLimit <Int32>]
   [-ConnectionUri] <Uri[]>
   [-AllowRedirection]
   [-SessionOption <PSSessionOption>]
   [-Authentication <AuthenticationMechanism>]
   [-CertificateThumbprint <String>]
   [<CommonParameters>]
New-PSSession
   -Credential <PSCredential>
   [-Name <String[]>]
   [-ConfigurationName <String>]
   [-VMId] <Guid[]>
   [-ThrottleLimit <Int32>]
   [<CommonParameters>]
New-PSSession
   -Credential <PSCredential>
   [-Name <String[]>]
   [-ConfigurationName <String>]
   -VMName <String[]>
   [-ThrottleLimit <Int32>]
   [<CommonParameters>]
New-PSSession
   [[-Session] <PSSession[]>]
   [-Name <String[]>]
   [-EnableNetworkAccess]
   [-ThrottleLimit <Int32>]
   [<CommonParameters>]
New-PSSession
   [-Name <String[]>]
   [-ConfigurationName <String>]
   -ContainerId <String[]>
   [-RunAsAdministrator]
   [-ThrottleLimit <Int32>]
   [<CommonParameters>]
New-PSSession
   [-Name <String[]>]
   [-UseWindowsPowerShell]
   [<CommonParameters>]
New-PSSession
   [-Name <String[]>]
   [-Port <Int32>]
   [-HostName] <String[]>
   [-UserName <String>]
   [-KeyFilePath <String>]
   [-Subsystem <String>]
   [-ConnectingTimeout <Int32>]
   [-SSHTransport]
   [-Options <Hashtable>]
   [<CommonParameters>]
New-PSSession
   [-Name <String[]>]
   -SSHConnection <Hashtable[]>
   [<CommonParameters>]

Description

Cmdleten New-PSSession skapar en PowerShell-session (PSSession) på en lokal dator eller fjärrdator. När du skapar en PSSession upprättar PowerShell en beständig anslutning till fjärrdatorn.

Använd en PSSession för att köra flera kommandon som delar data, till exempel en funktion eller värdet för en variabel. Om du vill köra kommandon i en PSSession använder du cmdleten Invoke-Command . Använd cmdleten Enter-PSSession om du vill använda PSSession för att interagera direkt med en fjärrdator. Mer information finns i about_PSSessions.

Du kan köra kommandon på en fjärrdator utan att skapa en PSSession med parametrarna Enter-PSSession ComputerName eller Invoke-Command. När du använder parametern ComputerName skapar PowerShell en tillfällig anslutning som används för kommandot och stängs sedan.

Från och med PowerShell 6.0 kan du använda Secure Shell (SSH) för att upprätta en anslutning till och skapa en session på en fjärrdator, om SSH är tillgängligt på den lokala datorn och fjärrdatorn har konfigurerats med en PowerShell SSH-slutpunkt. Fördelen med en SSH-baserad PowerShell-fjärrsession är att den kan fungera på flera plattformar (Windows, Linux, macOS). För SSH-baserade sessioner använder du parametern HostName eller SSH Anslut ion för att ange fjärrdatorn och relevant anslutningsinformation. Mer information om hur du konfigurerar PowerShell SSH-fjärrkommunikation finns i PowerShell-fjärrkommunikation via SSH.

Kommentar

När du använder WSMan-fjärrkommunikation från en Linux- eller macOS-klient med en HTTPS-slutpunkt där servercertifikatet inte är betrott (t.ex. ett självsignerat certifikat). Du måste ange ett PSSessionOption som innehåller värdena SkipCACheck och SkipCNCheck inställda på $true för att upprätta anslutningen. Gör bara detta om du befinner dig i en miljö där du kan vara säker på servercertifikatet och nätverksanslutningen till målsystemet.

Exempel

Exempel 1: Skapa en session på den lokala datorn

$s = New-PSSession

Det här kommandot skapar en ny PSSession på den lokala datorn och sparar PSSession i variabeln$s.

Du kan nu använda den här PSSession för att köra kommandon på den lokala datorn.

Exempel 2: Skapa en session på en fjärrdator

$Server01 = New-PSSession -ComputerName Server01

Det här kommandot skapar en ny PSSession på Server01-datorn och sparar den i variabeln $Server01 .

När du skapar flera PSSession-objekt tilldelar du dem till variabler med användbara namn. Detta hjälper dig att hantera PSSession-objekten i efterföljande kommandon.

Exempel 3: Skapa sessioner på flera datorer

$s1, $s2, $s3 = New-PSSession -ComputerName Server01,Server02,Server03

Det här kommandot skapar tre PSSession-objekt , ett på var och en av de datorer som anges av parametern ComputerName .

Kommandot använder tilldelningsoperatorn (=) för att tilldela de nya PSSession-objekten till variabler: $s1, $s2, $s3. Den tilldelar Server01 PSSession till , Server02 PSSession till $s2och Server03 PSSession till $s3.$s1

När du tilldelar flera objekt till en serie variabler tilldelar PowerShell varje objekt till en variabel i serien. Om det finns fler objekt än variabler tilldelas alla återstående objekt till den sista variabeln. Om det finns fler variabler än objekt är de återstående variablerna tomma ($null).

Exempel 4: Skapa en session med en angiven port

New-PSSession -ComputerName Server01 -Port 8081 -UseSSL -ConfigurationName E12

Det här kommandot skapar en ny PSSession på server01-datorn som ansluter till serverporten 8081 och använder SSL-protokollet. Den nya PSSession använder en alternativ sessionskonfiguration med namnet E12.

Innan du ställer in porten måste du konfigurera WinRM-lyssnaren på fjärrdatorn så att den lyssnar på port 8081. Mer information finns i beskrivningen av portparametern.

Exempel 5: Skapa en session baserat på en befintlig session

New-PSSession -Session $s -Credential Domain01\User01

Det här kommandot skapar en PSSession med samma egenskaper som en befintlig PSSession. Du kan använda det här kommandoformatet när resurserna i en befintlig PSSession är uttömda och en ny PSSession behövs för att avlasta en del av efterfrågan.

Kommandot använder sessionsparametern New-PSSession för för att ange PSSession som sparats i variabeln$s. Den använder användarens Domain1\Admin01 autentiseringsuppgifter för att slutföra kommandot.

Exempel 6: Skapa en session med ett globalt omfång i en annan domän

$global:s = New-PSSession -ComputerName Server1.Domain44.Corpnet.Fabrikam.com -Credential Domain01\Admin01

Det här exemplet visar hur du skapar en PSSession med ett globalt omfång på en dator i en annan domän.

Som standard skapas PSSession-objekt som skapas på kommandoraden med lokalt omfång och PSSession-objekt som skapats i ett skript har skriptomfång.

Om du vill skapa en PSSession med globalt omfång skapar du en ny PSSession och lagrar sedan PSSession i en variabel som skickas till ett globalt omfång. I det här fallet omvandlas variabeln $s till ett globalt omfång.

Kommandot använder parametern ComputerName för att ange fjärrdatorn. Eftersom datorn finns i en annan domän än användarkontot anges datorns fullständiga namn tillsammans med användarens autentiseringsuppgifter.

Exempel 7: Skapa sessioner för många datorer

$rs = Get-Content C:\Test\Servers.txt | New-PSSession -ThrottleLimit 50

Det här kommandot skapar en PSSession på var och en av de 200 datorer som anges i Servers.txt filen och lagrar den resulterande PSSessionen i variabeln$rs. PSSession-objekten har en begränsningsgräns på 50.

Du kan använda det här kommandoformatet när namnen på datorer lagras i en databas, ett kalkylblad, en textfil eller ett annat textkonvertert format.

Exempel 8: Skapa en session med hjälp av en URI

$s = New-PSSession -URI http://Server01:91/NewSession -Credential Domain01\User01

Det här kommandot skapar en PSSession på Server01-datorn och lagrar den i variabeln $s . Den använder URI-parametern för att ange transportprotokollet, fjärrdatorn, porten och en alternativ sessionskonfiguration. Den använder också parametern Credential för att ange ett användarkonto som har behörighet att skapa en session på fjärrdatorn.

Exempel 9: Kör ett bakgrundsjobb i en uppsättning sessioner

$s = New-PSSession -ComputerName (Get-Content Servers.txt) -Credential Domain01\Admin01 -ThrottleLimit 16
Invoke-Command -Session $s -ScriptBlock {Get-Process PowerShell} -AsJob

Dessa kommandon skapar en uppsättning PSSession-objekt och kör sedan ett bakgrundsjobb i vart och ett av PSSession-objekten.

Det första kommandot skapar en ny PSSession på var och en av datorerna Servers.txt som anges i filen. Den använder cmdleten New-PSSession för att skapa PSSession. Värdet för parametern ComputerName är ett kommando som använder cmdleten Get-Content för att hämta listan över datornamn för Servers.txt filen.

Kommandot använder parametern Credential för att skapa PSSession-objekt som har behörighet som domänadministratör och använder parametern ThrottleLimit för att begränsa kommandot till 16 samtidiga anslutningar. Kommandot sparar PSSession-objekten i variabeln$s.

Det andra kommandot använder parametern AsJob för cmdleten Invoke-Command för att starta ett bakgrundsjobb som kör ett kommando i vart och ett Get-Process PowerShell av PSSession-objekten i $s.

Mer information om PowerShell-bakgrundsjobb finns i about_Jobs och about_Remote_Jobs.

Exempel 10: Skapa en session för en dator med hjälp av dess URI

New-PSSession -ConnectionURI https://management.exchangelabs.com/Management

Det här kommandot skapar ett PSSession-objekt som ansluter till en dator som anges av en URI i stället för ett datornamn.

Exempel 11: Skapa ett sessionsalternativ

$so = New-PSSessionOption -SkipCACheck
New-PSSession -ConnectionUri https://management.exchangelabs.com/Management -SessionOption $so -Credential Server01\Admin01

Det här exemplet visar hur du skapar ett sessionsalternativobjekt och använder parametern SessionOption .

Det första kommandot använder cmdleten New-PSSessionOption för att skapa ett sessionsalternativ. Det sparar det resulterande SessionOption-objektet i variabeln $so .

Det andra kommandot använder alternativet i en ny session. Kommandot använder cmdleten New-PSSession för att skapa en ny session. Värdet för parametern SessionOption är Objektet SessionOption i variabeln $so .

Exempel 12: Skapa en session med SSH

New-PSSession -HostName UserA@LinuxServer01

Det här exemplet visar hur du skapar en ny PSSession med secure shell (SSH). Om SSH har konfigurerats på fjärrdatorn för att fråga efter lösenord får du en lösenordsprompt. Annars måste du använda SSH-nyckelbaserad användarautentisering.

Exempel 13: Skapa en session med SSH och ange porten och användarautentiseringsnyckeln

New-PSSession -HostName UserA@LinuxServer01:22 -KeyFilePath c:\<path>\userAKey_rsa

Det här exemplet visar hur du skapar en PSSession med secure shell (SSH). Den använder portparametern för att ange den port som ska användas och parametern KeyFilePath för att ange en RSA-nyckel som används för att identifiera och autentisera användaren på fjärrdatorn.

Exempel 14: Skapa flera sessioner med hjälp av SSH

$sshConnections = @(
    @{
          HostName    = 'WinServer1'
          UserName    = 'domain\userA'
          KeyFilePath = 'c:\users\UserA\id_rsa'
    }
    @{
        HostName    = 'UserB@LinuxServer5'
        KeyFilePath = 'c:\UserB\<path>\id_rsa'
    }
)
New-PSSession -SSHConnection $sshConnections

Det här exemplet visar hur du skapar flera sessioner med hjälp av Secure Shell (SSH) och parameteruppsättningen SSH Anslut ion. Parametern SSH Anslut ion tar en matris med hash-tabeller som innehåller anslutningsinformation för varje session. Observera att det här exemplet kräver att mål-fjärrdatorerna har SSH konfigurerat för att stödja nyckelbaserad användarautentisering.

Exempel 15: Skapa en ny session med SSH-alternativ

$options = @{
    Port=22
    User = 'UserB'
    Host = 'LinuxServer5'
}
New-PSSession -KeyFilePath '/Users/UserB/id_rsa' -Options $options

Det här exemplet visar hur du skapar en ny SSH-baserad session med en fjärransluten Linux-baserad dator med hjälp av SSH-alternativ. Parametern Alternativ tar en hashtabell med värden som skickas som alternativ till det underliggande ssh kommandot den etablerade anslutningen till fjärrsystemet.

Parametrar

-AllowRedirection

Anger att den här cmdleten tillåter omdirigering av den här anslutningen till en alternativ URI (Uniform Resource Identifier).

När du använder parametern Anslut ionURI kan fjärrmålet returnera en instruktion för att omdirigera till en annan URI. Som standard omdirigerar Inte PowerShell anslutningar, men du kan använda den här parametern för att göra det möjligt för den att omdirigera anslutningen.

Du kan också begränsa antalet gånger anslutningen omdirigeras genom att ändra sessionsalternativvärdet Maximum Anslut ionRedirectionCount. Använd parametern MaximumRedirection för cmdleten New-PSSessionOption eller ange egenskapen Maximum Anslut ionRedirectionCount för $PSSessionOption inställningsvariabeln. Standardvärdet är 5.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationName

Anger programnamnssegmentet för anslutnings-URI:n. Använd den här parametern för att ange programnamnet när du inte använder parametern Anslut ionURI i kommandot .

Standardvärdet är värdet för $PSSessionApplicationName inställningsvariabeln på den lokala datorn. Om den här inställningsvariabeln inte har definierats är WSMANstandardvärdet . Det här värdet är lämpligt för de flesta användningsområden. Mer information finns i about_Preference_Variables.

WinRM-tjänsten använder programnamnet för att välja en lyssnare som ska betjäna anslutningsbegäran. Värdet för den här parametern ska matcha värdet för egenskapen URLPrefix för en lyssnare på fjärrdatorn.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Authentication

Anger den mekanism som används för att autentisera användarens autentiseringsuppgifter. De acceptabla värdena för den här parametern är:

  • Default
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

Standardvärdet är Default.

Mer information om värdena för den här parametern finns i AuthenticationMechanism Enumeration.

Varning

CredSSP-autentisering (CredSSP), där användarautentiseringsuppgifterna skickas till en fjärrdator som ska autentiseras, är utformad för kommandon som kräver autentisering på mer än en resurs, till exempel åtkomst till en fjärrnätverksresurs. Den här mekanismen ökar säkerhetsrisken för fjärråtgärden. Om fjärrdatorn komprometteras kan de autentiseringsuppgifter som skickas till den användas för att styra nätverkssessionen.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CertificateThumbprint

Anger det digitala offentliga nyckelcertifikatet (X509) för ett användarkonto som har behörighet att utföra den här åtgärden. Ange certifikatets tumavtryck.

Certifikat används i klientcertifikatbaserad autentisering. De kan endast mappas till lokala användarkonton. de fungerar inte med domänkonton.

Om du vill hämta ett certifikat använder du Get-Item kommandot eller Get-ChildItem på PowerShell-enheten Cert: .

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

Anger en matris med namn på datorer. Den här cmdleten skapar en beständig anslutning (PSSession) till den angivna datorn. Om du anger flera datornamn New-PSSession skapar du flera PSSession-objekt , ett för varje dator. Standard är den lokala datorn.

Ange NetBIOS-namnet, en IP-adress eller ett fullständigt domännamn för en eller flera fjärrdatorer. Om du vill ange den lokala datorn skriver du datornamnet, localhosteller en punkt (.). När datorn finns i en annan domän än användaren krävs det fullständigt kvalificerade domännamnet. Du kan också skicka ett datornamn, inom citattecken, till New-PSSession.

Om du vill använda en IP-adress i värdet för parametern ComputerName måste kommandot innehålla parametern Credential . Dessutom måste datorn konfigureras för HTTPS-transport, annars måste IP-adressen för fjärrdatorn ingå i WinRM TrustedHosts-listan på den lokala datorn. Anvisningar för hur du lägger till ett datornamn i listan TrustedHosts finns i "Så här lägger du till en dator i listan över betrodda värdar" i about_Remote_Troubleshooting.

Om du vill inkludera den lokala datorn i värdet för parametern ComputerName startar du Windows PowerShell med alternativet Kör som administratör.

Type:String[]
Aliases:Cn
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ConfigurationName

Anger sessionskonfigurationen som används för den nya PSSessionen.

Ange ett konfigurationsnamn eller den fullständigt kvalificerade resurs-URI:n för en sessionskonfiguration. Om du bara anger konfigurationsnamnet förbereds följande schema-URI: http://schemas.microsoft.com/PowerShell.

Sessionskonfigurationen för en session finns på fjärrdatorn. Om den angivna sessionskonfigurationen inte finns på fjärrdatorn misslyckas kommandot.

Standardvärdet är värdet för $PSSessionConfigurationName inställningsvariabeln på den lokala datorn. Om den här inställningsvariabeln inte har angetts är Microsoft.PowerShellstandardvärdet . Mer information finns i about_Preference_Variables.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ConnectingTimeout

Anger hur lång tid i millisekunder som tillåts för den första SSH-anslutningen att slutföras. Om anslutningen inte slutförs inom den angivna tiden returneras ett fel.

Den här parametern introducerades i PowerShell 7.2

Type:Int32
Position:Named
Default value:unlimited
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionUri

Anger en URI som definierar anslutningsslutpunkten för sessionen. URI:n måste vara fullständigt kvalificerad. Formatet för den här strängen är följande:

<Transport>://<ComputerName>:<Port>/<ApplicationName>

Standardvärdet är följande:

http://localhost:5985/WSMAN

Om du inte anger en Anslut ionURI kan du använda parametrarna UseSSL, ComputerName, Port och ApplicationName för att ange Anslut ionURI-värden.

Giltiga värden för transportsegmentet för URI:n är HTTP och HTTPS. Om du anger en anslutnings-URI med ett transportsegment, men inte anger någon port, skapas sessionen med standardportar: 80 för HTTP och 443 för HTTPS. Om du vill använda standardportarna för PowerShell-fjärrkommunikation anger du port 5985 för HTTP eller 5986 HTTPS.

Om måldatorn omdirigerar anslutningen till en annan URI förhindrar PowerShell omdirigeringen om du inte använder parametern AllowRedirection i kommandot.

Type:Uri[]
Aliases:URI, CU
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ContainerId

Anger en matris med ID:er för containrar. Den här cmdleten startar en interaktiv session med var och en av de angivna containrarna. docker ps Använd kommandot för att hämta en lista över container-ID:t. Mer information finns i hjälpen för kommandot docker ps .

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Credential

Anger ett användarkonto som har behörighet att utföra den här åtgärden. Standard är den aktuella användaren.

Ange ett användarnamn, till exempel eller Domain01\User01, eller ange ett PSCredential-objekt som User01 genereras av cmdletenGet-Credential. Om du skriver ett användarnamn uppmanas du att ange lösenordet.

Autentiseringsuppgifter lagras i ett PSCredential-objekt och lösenordet lagras som en SecureString.

Kommentar

Mer information om SecureString-dataskydd finns i Hur säker är SecureString?.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-EnableNetworkAccess

Anger att den här cmdleten lägger till en interaktiv säkerhetstoken till loopback-sessioner. Med den interaktiva token kan du köra kommandon i loopback-sessionen som hämtar data från andra datorer. Du kan till exempel köra ett kommando i sessionen som kopierar XML-filer från en fjärrdator till den lokala datorn.

En loopback-session är en PSSession som kommer från och slutar på samma dator. Om du vill skapa en loopback-session utelämnar du parametern ComputerName eller anger dess värde till punkt (.), localhosteller namnet på den lokala datorn.

Som standard skapar den här cmdleten loopback-sessioner med hjälp av en nätverkstoken, vilket kanske inte ger tillräcklig behörighet för att autentisera till fjärrdatorer.

Parametern EnableNetworkAccess gäller endast i loopback-sessioner. Om du använder EnableNetworkAccess när du skapar en session på en fjärrdator lyckas kommandot, men parametern ignoreras.

Du kan också aktivera fjärråtkomst i en loopback-session med hjälp CredSSP av värdet för parametern Autentisering , som delegerar sessionsautentiseringsuppgifterna till andra datorer.

För att skydda datorn från skadlig åtkomst kan frånkopplade loopback-sessioner som har interaktiva token, som skapas med hjälp av parametern EnableNetworkAccess , endast återanslutas från den dator där sessionen skapades. Frånkopplade sessioner som använder CredSSP-autentisering kan återanslutas från andra datorer. Mer information finns i Disconnect-PSSession.

Den här parametern introducerades i PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HostName

Anger en matris med datornamn för en SSH-baserad anslutning (Secure Shell). Detta liknar parametern ComputerName förutom att anslutningen till fjärrdatorn görs med hjälp av SSH i stället för Windows WinRM.

Den här parametern introducerades i PowerShell 6.0.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-KeyFilePath

Anger en nyckelfilsökväg som används av Secure Shell (SSH) för att autentisera en användare på en fjärrdator.

Med SSH kan användarautentisering utföras via privata/offentliga nycklar som ett alternativ till grundläggande lösenordsautentisering. Om fjärrdatorn har konfigurerats för nyckelautentisering kan den här parametern användas för att ange den nyckel som identifierar användaren.

Den här parametern introducerades i PowerShell 6.0.

Type:String
Aliases:IdentityFilePath
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Anger ett eget namn för PSSession.

Du kan använda namnet för att referera till PSSession när du använder andra cmdletar, till exempel Get-PSSession och Enter-PSSession. Namnet måste inte vara unikt för datorn eller den aktuella sessionen.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Options

Anger en hashtabell med SSH-alternativ som används vid anslutning till en fjärr-SSH-baserad session. De möjliga alternativen är alla värden som stöds av den Unix-baserade versionen av ssh-kommandot .

Alla värden som uttryckligen skickas av parametrar har företräde framför värden som skickas i hashtabellen Alternativ . Om du till exempel använder portparametern åsidosätts alla Port nyckel/värde-par som skickas i hashtabellen Alternativ .

Type:Hashtable
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Port

Anger nätverksporten på fjärrdatorn som används för den här anslutningen. Om du vill ansluta till en fjärrdator måste fjärrdatorn lyssna på porten som anslutningen använder. Standardportarna är 5985, som är WinRM-porten för HTTP och 5986, som är WinRM-porten för HTTPS.

Innan du använder en annan port måste du konfigurera WinRM-lyssnaren på fjärrdatorn så att den lyssnar på den porten. Använd följande kommandon för att konfigurera lyssnaren:

  1. winrm delete winrm/config/listener?Address=*+Transport=HTTP
  2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}

Använd inte portparametern om du inte måste. Portinställningen i kommandot gäller för alla datorer eller sessioner där kommandot körs. En alternativ portinställning kan förhindra att kommandot körs på alla datorer.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAsAdministrator

Anger att PSSession körs som administratör.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Session

Anger en matris med PSSession-objekt som den här cmdleten använder som modell för den nya PSSession. Den här parametern skapar nya PSSession-objekt som har samma egenskaper som de angivna PSSession-objekten .

Ange en variabel som innehåller PSSession-objekten eller ett kommando som skapar eller hämtar PSSession-objekten, till exempel ett New-PSSession eller Get-PSSession ett kommando.

De resulterande PSSession-objekten har samma datornamn, programnamn, anslutnings-URI, port, konfigurationsnamn, begränsningsgräns och SSL-värde (Secure Sockets Layer) som originalen, men de har ett annat visningsnamn, ID och instans-ID (GUID).

Type:PSSession[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SessionOption

Anger avancerade alternativ för sessionen. Ange ett SessionOption-objekt , till exempel ett objekt som du skapar med hjälp av cmdleten New-PSSessionOption eller en hash-tabell där nycklarna är sessionsalternativnamn och värdena är sessionsalternativvärden.

Standardvärdena för alternativen bestäms av värdet för $PSSessionOption inställningsvariabeln, om den har angetts. Annars upprättas standardvärdena av de alternativ som anges i sessionskonfigurationen.

Sessionsalternativvärdena har företräde framför standardvärden för sessioner som anges i inställningsvariabeln $PSSessionOption och i sessionskonfigurationen. De har dock inte företräde framför de högsta värden, kvoter eller gränser som anges i sessionskonfigurationen.

En beskrivning av sessionsalternativen som innehåller standardvärdena finns i New-PSSessionOption. Information om inställningsvariabeln finns i $PSSessionOption about_Preference_Variables. För ytterligare information om sessionskonfigurationer, se about_Session_Configurations.

Type:PSSessionOption
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SSHConnection

Den här parametern tar en matris med hashtables där varje hashtable innehåller en eller flera anslutningsparametrar som behövs för att upprätta en SSH-anslutning (Secure Shell) (HostName, Port, UserName, KeyFilePath).

Parametrarna för hashtable-anslutning är desamma som definierade för parameteruppsättningen SSHHost .

Parametern SSH Anslut ion är användbar för att skapa flera sessioner där varje session kräver olika anslutningsinformation.

Den här parametern introducerades i PowerShell 6.0.

Type:Hashtable[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SSHTransport

Anger att fjärranslutningen upprättas med hjälp av Secure Shell (SSH).

Som standard använder PowerShell Windows WinRM för att ansluta till en fjärrdator. Den här växeln tvingar PowerShell att använda parameteruppsättningen HostName för att upprätta en SSH-baserad fjärranslutning.

Den här parametern introducerades i PowerShell 6.0.

Type:SwitchParameter
Accepted values:true
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Subsystem

Anger det SSH-undersystem som används för den nya PSSessionen.

Detta anger det undersystem som ska användas på målet enligt definitionen i sshd_config. Undersystemet startar en specifik version av PowerShell med fördefinierade parametrar. Om det angivna undersystemet inte finns på fjärrdatorn misslyckas kommandot.

Om den här parametern inte används är powershell standardvärdet undersystemet.

Type:String
Position:Named
Default value:powershell
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ThrottleLimit

Anger det maximala antalet samtidiga anslutningar som kan upprättas för att köra det här kommandot. Om du utelämnar den här parametern eller anger värdet 0 (noll) används standardvärdet , 32.

Begränsningsgränsen gäller endast för det aktuella kommandot, inte för sessionen eller på datorn.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UserName

Anger användarnamnet för det konto som används för att skapa en session på fjärrdatorn. Användarautentiseringsmetoden beror på hur Secure Shell (SSH) konfigureras på fjärrdatorn.

Om SSH har konfigurerats för grundläggande lösenordsautentisering uppmanas du att ange användarlösenordet.

Om SSH har konfigurerats för nyckelbaserad användarautentisering kan en nyckelfilsökväg anges via parametern KeyFilePath och du uppmanas inte att ange något lösenord. Observera att om klientanvändarnyckelfilen finns på en känd SSH-plats behövs inte KeyFilePath-parametern för nyckelbaserad autentisering, och användarautentisering sker automatiskt baserat på användarnamnet. Mer information finns i SSH-dokumentationen om nyckelbaserad användarautentisering.

Det här är inte en obligatorisk parameter. Om ingen UserName-parameter anges används det aktuella inloggningsanvändarnamnet för anslutningen.

Den här parametern introducerades i PowerShell 6.0.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseSSL

Anger att den här cmdleten använder SSL-protokollet för att upprätta en anslutning till fjärrdatorn. Som standard används inte SSL.

WS-Management krypterar allt PowerShell-innehåll som överförs via nätverket. Parametern UseSSL ger ett ytterligare skydd som skickar data över en HTTPS-anslutning i stället för en HTTP-anslutning.

Om du använder den här parametern, men SSL inte är tillgängligt på porten som används för kommandot, misslyckas kommandot.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseWindowsPowerShell

Skapar en fjärranslutning till en ny Windows PowerShell-runspace i det lokala systemet.

Type:SwitchParameter
Position:Named
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-VMId

Anger en matris med virtuella dator-ID:t. Den här cmdleten startar en interaktiv PowerShell Direct-session med var och en av de angivna virtuella datorerna. Mer information finns i Automatisering och hantering av virtuella datorer med Hjälp av PowerShell.

Använd Get-VM för att se de virtuella datorer som är tillgängliga på Hyper-V-värden.

Type:Guid[]
Aliases:VMGuid
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMName

Anger en matris med namn på virtuella datorer. Den här cmdleten startar en interaktiv PowerShell Direct-session med var och en av de angivna virtuella datorerna. Mer information finns i Automatisering och hantering av virtuella datorer med Hjälp av PowerShell.

Använd Get-VM för att se de virtuella datorer som är tillgängliga på Hyper-V-värden.

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

Indata

String

Du kan skicka en sträng till den här cmdleten.

System.URI

Du kan skicka en URI till den här cmdleten.

PSSession

Du kan skicka ett sessionsobjekt till den här cmdleten.

Utdata

PSSession

Kommentarer

PowerShell innehåller följande alias för New-PSSession:

  • Alla plattformar:

    • nsn
  • Den här cmdleten använder PowerShell-fjärrkommunikationsinfrastrukturen. Om du vill använda den här cmdleten måste den lokala datorn och alla fjärrdatorer konfigureras för PowerShell-fjärrkommunikation. Mer information finns i about_Remote_Requirements.

  • Om du vill skapa en PSSession på den lokala datorn startar du PowerShell med alternativet Kör som administratör .

  • När du är klar med PSSession använder du cmdleten Remove-PSSession för att ta bort PSSession och släppa dess resurser.

  • Parameteruppsättningarna HostName och SSH Anslut ion ingick från och med PowerShell 6.0. De lades till för att tillhandahålla PowerShell-fjärrkommunikation baserat på Secure Shell (SSH). Både SSH och PowerShell stöds på flera plattformar (Windows, Linux, macOS) och PowerShell-fjärrkommunikation fungerar över dessa plattformar där PowerShell och SSH installeras och konfigureras. Detta är skilt från den tidigare windowsbaserade fjärrkommunikationen som baseras på WinRM och många av WinRM-specifika funktioner och begränsningar gäller inte. Till exempel stöds inte WinRM-baserade kvoter, sessionsalternativ, anpassad slutpunktskonfiguration och funktioner för frånkoppling/återanslutning. Mer information om hur du konfigurerar PowerShell SSH-fjärrkommunikation finns i PowerShell-fjärrkommunikation via SSH.

Den ssh körbara filen hämtar konfigurationsdata från följande källor i följande ordning:

  1. kommandoradsalternativ
  2. användarens konfigurationsfil (~/.ssh/config)
  3. systemomfattande konfigurationsfil (/etc/ssh/ssh_config)

Följande cmdlet-parametrar mappas till ssh parametrar och alternativ:

Cmdlet-parameter ssh-parameter motsvarande ssh -o-alternativ
-KeyFilePath -i <KeyFilePath> -o IdentityFile=<KeyFilePath>
-UserName -l <UserName> -o User=<UserName>
-Port -p <Port> -o Port=<Port>
-ComputerName -Subsystem -s <ComputerName> <Subsystem> -o Host=<ComputerName>

Alla värden som uttryckligen skickas av parametrar har företräde framför värden som skickas i hashtabellen Alternativ . Mer information om ssh_config filer finns i ssh_config(5).