New-PSSession
Skapar en beständig anslutning till en lokal dator eller fjärrdator.
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
-UseWindowsPowerShell
[-Name <string[]>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
[-Port <Int32>]
[-HostName] <String[]>
[-UserName <String>]
[-KeyFilePath <String>]
[-SSHTransport]
[-Subsystem <String>]
[<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
. Om du vill använda PSSession för att interagera direkt med en fjärrdator använder du cmdleten Enter-PSSession
. Mer information finns i about_PSSessions.
Du kan köra kommandon på en fjärrdator utan att skapa en PSSession med parametrarna ComputerName för Enter-PSSession
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 SSHConnection inställd 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.
Anteckning
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 $true
på 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
.
Nu kan du använda den här PSSessionen 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. På så sätt kan du 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 $s1
, Server02 PSSession till $s2
och Server03 PSSession till $s3
.
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 senaste 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 PSSessionen 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 parametern Port .
Exempel 5: Skapa en session baserad 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 slut och en ny PSSession behövs för att avlasta en del av efterfrågan.
Kommandot använder parameternNew-PSSession
Session för för att ange pssessionen 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 skapats 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 omvandlas 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 textkonverteringsformat.
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 en domänadministratörs behörighet 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 asjob-parametern 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 hjälp av 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 parametern Port 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 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 SSHConnection . Parametern SSHConnection 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.
Parametrar
-AllowRedirection
Anger att denna cmdlet tillåter omdirigering av den här anslutningen till en alternativ URI (Uniform Resource Identifier).
När du använder parametern ConnectionURI kan fjärrmålet returnera en instruktion för att omdirigera till en annan URI. Som standard omdirigerar PowerShell inte 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 som anslutningen omdirigeras genom att ändra sessionsalternativvärdet MaximumConnectionRedirectionCount . Använd parametern MaximumRedirection för cmdleten New-PSSessionOption
eller ange egenskapen MaximumConnectionRedirectionCountför $PSSessionOption-inställningsvariabeln . Standardvärdet är 5
.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
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 ConnectionURI 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 WSMAN
standardvä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 (Credential Security Support Provider), där autentiseringsuppgifterna 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 certifikatet för den digitala offentliga nyckeln (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. Denna cmdlet 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, localhost
eller en punkt (.
). När datorn finns i en annan domän än användaren krävs det fullständiga 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 finnas med i listan WinRM TrustedHosts 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 börjar 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 en fullständigt kvalificerad resurs-URI för en sessionskonfiguration. Om du bara anger konfigurationsnamnet läggs följande schema-URI till: 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.PowerShell
standardvä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 |
-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 ConnectionURI kan du använda parametrarna UseSSL, ComputerName, Port och ApplicationName för att ange ConnectionURI-värdena .
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 en 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 porten 5985
för HTTP eller 5986
för HTTPS.
Om måldatorn omdirigerar anslutningen till en annan URI förhindrar PowerShell omdirigeringen såvida 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:t 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 cmdleten Get-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.
Anteckning
Mer information om SecureString-dataskydd finns i Hur säkert är SecureString?.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-EnableNetworkAccess
Anger att denna cmdlet 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 (.
), localhost
, eller namnet på den lokala datorn.
Som standard skapar denna cmdlet 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: | None |
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 nyckeln 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 behöver 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 |
-Port
Anger nätverksporten på fjärrdatorn som används för den här anslutningen. För att 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 för att lyssna på den porten. Använd följande kommandon för att konfigurera lyssnaren:
winrm delete winrm/config/listener?Address=*+Transport=HTTP
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: | None |
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-objekt eller ett kommando som skapar eller hämtar PSSession-objekt , 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 maximala värden, kvoter eller gränser som angetts i sessionskonfigurationen.
En beskrivning av sessionsalternativen som innehåller standardvärdena finns i New-PSSessionOption
. Information om inställningsvariabeln $PSSessionOption
finns i 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).
Anslutningsparametrarna för hashtabellen är desamma som de som definierats för parameteruppsättningen SSHHost .
Parametern SSHConnection ä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 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: | None |
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 datorn.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UserName
Anger användarnamnet för kontot 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 tillhandahållas 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: | None |
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: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VMId
Anger en matris med ID:t för virtuella datorer. Den här cmdleten startar en interaktiv session med var och en av de angivna virtuella datorerna. Om du vill se de virtuella datorer som är tillgängliga för dig använder du följande kommando:
Get-VM | Select-Object -Property Name, ID
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 session med var och en av de angivna virtuella datorerna. Om du vill se de virtuella datorer som är tillgängliga för dig använder du cmdleten Get-VM
.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Indata
System.String, System.URI, System.Management.Automation.Runspaces.PSSession
Du kan skicka ett sträng-, URI- eller sessionsobjekt till den här cmdleten.
Utdata
Kommentarer
- Den här cmdleten använder PowerShell-fjärrkommunikationsinfrastrukturen. Om du vill använda denna cmdlet 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 PSSessionen använder du cmdleten
Remove-PSSession
för att ta bort PSSessionen och frigöra dess resurser. - Parameteruppsättningarna HostName och SSHConnection inkluderades från och med PowerShell 6.0. De har lagts 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 på dessa plattformar där PowerShell och SSH installeras och konfigureras. Detta är skilt från den tidigare fjärrkommunikationen endast för Windows som baseras på WinRM och många av WinRM-specifika funktioner och begränsningar gäller inte. WinRM-baserade kvoter, sessionsalternativ, konfiguration av anpassad slutpunkt och funktioner för frånkoppling/återanslutning stöds till exempel inte. 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:
- kommandoradsalternativ
- användarens konfigurationsfil (~/.ssh/config)
- 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> |
Mer information om ssh_config
filer finns i ssh_config(5).