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 eller fjärransluten dator. 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 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-.
Not
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 en PSSessionOption- som innehåller värdena SkipCACheck och SkipCNCheck som är 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
.
Nu kan du 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. På så sätt kan du hantera PSSession- objekt 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
. Server01
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 parametern Port.
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 parametern Session för New-PSSession
för att ange PSSession som sparats i variabeln $s
. Den använder autentiseringsuppgifterna för den Domain1\Admin01
användaren 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.
Skapa en PSSession- med globalt omfång genom att skapa en ny PSSession- och sedan lagra PSSession- i en variabel som är kopplad 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 PSSession- i variabeln $rs
.
PSSession- objekt 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 parametern URI 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- objekt.
Det första kommandot skapar en ny PSSession- på var och en av datorerna som anges i filen Servers.txt
. 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 Servers.txt
filen.
Kommandot använder parametern Credential för att skapa PSSession objekt som har behörighet av en domänadministratör och använder parametern ThrottleLimit för att begränsa kommandot till att 16
samtidiga anslutningar. Kommandot sparar PSSession- objekt i variabeln $s
.
Det andra kommandot använder parametern AsJob i cmdleten Invoke-Command
för att starta ett bakgrundsjobb som kör ett Get-Process PowerShell
-kommando i vart och ett av PSSession- objekt 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 en 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 hjälp av 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 hjälp av 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 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 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.
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 kommandot ssh
den upprättade 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 ConnectionURI 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 MaximumConnectionRedirectionCount sessionsalternativvärde. Använd parametern MaximumRedirection för cmdleten New-PSSessionOption
eller ange egenskapen MaximumConnectionRedirectionCount för $PSSessionOption inställningsvariabeln. Standardvärdet är 5
.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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 standardvärdet WSMAN
. 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 URLPrefix egenskap för en lyssnare på fjärrdatorn.
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-Authentication
Anger den mekanism som används för att autentisera användarens autentiseringsuppgifter. De godtagbara 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.
Försiktighet
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.
Typ: | AuthenticationMechanism |
Godkända värden: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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 kommandot Get-Item
eller Get-ChildItem
i PowerShell Cert:
-enheten.
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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 skapar New-PSSession
flera PSSession- objekt, ett för varje dator. Standardvärdet ä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ä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.
Typ: | String[] |
Alias: | Cn |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-ConfigurationName
Anger sessionskonfigurationen som används för den nya PSSession-.
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 standardvärdet Microsoft.PowerShell
. Mer information finns i about_Preference_Variables.
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | 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
Typ: | Int32 |
Position: | Named |
Standardvärde: | unlimited |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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 någon ConnectionURI-kan du använda parametrarna UseSSL, ComputerName, Portoch ApplicationName för att ange värdena för ConnectionURI.
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
för HTTPS.
Om måldatorn omdirigerar anslutningen till en annan URI förhindrar PowerShell omdirigeringen om du inte använder parametern AllowRedirection i kommandot.
Typ: | Uri[] |
Alias: | URI, CU |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | 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. Använd kommandot docker ps
för att hämta en lista över container-ID:t. Mer information finns i hjälpen för kommandot docker ps.
Typ: | String[] |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-Credential
Anger ett användarkonto som har behörighet att utföra den här åtgärden. Standardvärdet är den aktuella användaren.
Ange ett användarnamn, till exempel User01
eller Domain01\User01
, eller ange ett PSCredential- objekt som 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-.
Not
Mer information om SecureString dataskydd finns i Hur säker är SecureString?.
Typ: | PSCredential |
Position: | Named |
Standardvärde: | Current user |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | 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 dot (.
), localhost
eller 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 av värdet CredSSP
för parametern Authentication, 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.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | String[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | String |
Alias: | IdentityFilePath |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | String[] |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Options
Anger en hashtabell med SSH-alternativ som används vid anslutning till en fjärr-SSH-baserad session. Möjliga alternativ är alla värden som stöds av den Unix-baserade versionen av kommandot ssh.
Alla värden som uttryckligen skickas av parametrar har företräde framför värden som skickas i Alternativ hashtable. Om du till exempel använder parametern Port åsidosätter alla Port
nyckel/värde-par som skickas i Alternativ hashtable.
Typ: | Hashtable |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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:
winrm delete winrm/config/listener?Address=*+Transport=HTTP
winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}
Använd inte parametern Port om du inte måste göra det. 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.
Typ: | Int32 |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-RunAsAdministrator
Anger att PSSession körs som administratör.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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- objekt.
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
-kommando.
Den resulterande PSSession- objekt 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).
Typ: | PSSession[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | 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 den $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 $PSSessionOption
-inställningsvariabeln 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 $PSSessionOption
-inställningsvariabeln finns i about_Preference_Variables. Mer information om sessionskonfigurationer finns i about_Session_Configurations.
Typ: | PSSessionOption |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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 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.
Typ: | Hashtable[] |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | SwitchParameter |
Godkända värden: | true |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Subsystem
Anger det SSH-undersystem som används för den nya PSSession-.
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 standardvärdet powershell
undersystem.
Typ: | String |
Position: | Named |
Standardvärde: | powershell |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | 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.
Typ: | Int32 |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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 du ange en sökväg för nyckelfiler 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 parametern KeyFilePath 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.
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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 ytterligare ett 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.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-UseWindowsPowerShell
Skapar en fjärranslutning till en ny Windows PowerShell-runspace i det lokala systemet.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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 PowerShell.
Använd Get-VM
för att se de virtuella datorer som är tillgängliga på din Hyper-V värd.
Typ: | Guid[] |
Alias: | VMGuid |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | 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 PowerShell.
Använd Get-VM
för att se de virtuella datorer som är tillgängliga på din Hyper-V värd.
Typ: | String[] |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
Indata
Du kan skicka en sträng till den här cmdleten.
System.URI
Du kan skicka en URI till den här cmdleten.
Du kan skicka ett sessionsobjekt till den här cmdleten.
Utdata
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 PSSessionanvänder du cmdleten
Remove-PSSession
för att ta bort PSSession- och frigöra dess resurser.Parameteruppsättningarna HostName och SSHConnection inkluderades 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 körbara ssh
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 cmdletparametrar mappas till ssh
parametrar och alternativ:
Cmdlet-parameter | ssh-parameter | motsvarande alternativ för ssh -o |
---|---|---|
-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 Alternativ hashtable. Mer information om ssh_config
filer finns i ssh_config(5).