Sdílet prostřednictvím


New-PSSession

Vytvoří trvalé připojení k místnímu nebo vzdálenému počítači.

Syntaxe

New-PSSession
   [[-ComputerName] <String[]>]
   [-Credential <PSCredential>]
   [-Name <String[]>]
   [-EnableNetworkAccess]
   [-Port <Int32>]
   [-UseSSL]
   [-ConfigurationName <String>]
   [-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
   [[-Session] <PSSession[]>]
   [-Name <String[]>]
   [-EnableNetworkAccess]
   [-ThrottleLimit <Int32>]
   [<CommonParameters>]

Description

Rutina New-PSSession vytvoří relaci prostředí Windows PowerShell (PSSession) na místním nebo vzdáleném počítači. Při vytváření psSession, Windows PowerShell vytvoří trvalé připojení ke vzdálenému počítači.

Pomocí PSSession spusťte více příkazů, které sdílejí data, jako je funkce nebo hodnota proměnné. Pokud chcete spouštět příkazy vPSSession, použijte rutinu Invoke-Command. Pokud chcete použít PSSession k přímé interakci se vzdáleným počítačem, použijte rutinu Enter-PSSession. Další informace naleznete v tématu about_PSSessions (https://go.microsoft.com/fwlink/?LinkID=135181).

Příkazy můžete spustit na vzdáleném počítači bez vytvoření PSSession pomocí parametrů ComputerName Enter-PSSession nebo Invoke-Command. Pokud použijete parametr ComputerName, windows PowerShell vytvoří dočasné připojení, které se použije pro příkaz, a pak se zavře.

Příklady

Příklad 1: Vytvoření relace na místním počítači

PS C:\> $s = New-PSSession

Tento příkaz vytvoří na místním počítači nový PSSession a uloží PSSession do proměnné $s.

Pomocí této PSSession teď můžete spouštět příkazy na místním počítači.

Příklad 2: Vytvoření relace ve vzdáleném počítači

PS C:\> $Server01 = New-PSSession -ComputerName Server01

Tento příkaz vytvoří nový PSSession na počítači Server01 a uloží ho do proměnné $Server 01.

Při vytváření více PSSession objekty, přiřaďte je proměnným s užitečnými názvy. To vám pomůže spravovat PSSession objekty v dalších příkazech.

Příklad 3: Vytvoření relací na více počítačích

PS C:\> $s1, $s2, $s3 = New-PSSession -ComputerName Server01,Server02,Server03

Tento příkaz vytvoří tři psSession objekty, jeden na každém počítači určeném parametrem ComputerName.

Příkaz pomocí operátoru přiřazení (=) přiřadí nové objekty PSSession proměnným: $s 1, $s 2 $s 3. Přiřadí PSSession server01 $s 1, PSSession Server02 $s 2 a PSSession Server03 $s 3.

Když přiřadíte více objektů k řadě proměnných, Windows PowerShell přiřadí každý objekt proměnné v řadě. Pokud existuje více objektů než proměnných, všechny zbývající objekty se přiřadí poslední proměnné. Pokud existuje více proměnných než objekty, zbývající proměnné jsou prázdné (null).

Příklad 4: Vytvoření relace se zadaným portem

PS C:\> New-PSSession -ComputerName Server01 -Port 8081 -UseSSL -ConfigurationName E12

Tento příkaz vytvoří nový PSSession na počítači Server01, který se připojí k portu 8081 serveru a používá protokol SSL. Nová PSSession používá alternativní konfiguraci relace s názvem E12.

Před nastavením portu musíte na vzdáleném počítači nakonfigurovat naslouchací proces WinRM tak, aby naslouchal na portu 8081. Další informace najdete v popisu parametru Port.

Příklad 5: Vytvoření relace na základě existující relace

PS C:\> New-PSSession -Session $s -Credential Domain01\User01

Tento příkaz vytvoří PSSession se stejnými vlastnostmi jako existující PSSession . Tento formát příkazu můžete použít, když dojde k vyčerpání prostředků existujícího PSSession a k přesměrování některých požadavků je potřeba nová PSSession.

Příkaz používá parametr SessionNew-PSSession k určení PSSession uložené v proměnné $s. K dokončení příkazu používá přihlašovací údaje uživatele Domain1\Admin01.

Příklad 6: Vytvoření relace s globálním oborem v jiné doméně

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

Tento příklad ukazuje, jak vytvořit PSSession s globálním oborem na počítači v jiné doméně.

Ve výchozím nastavení se PSSession objekty vytvořené na příkazovém řádku vytvoří s místním oborem a psSession objekty vytvořené ve skriptu mají obor skriptu.

Pokud chcete vytvořit PSSession s globálním oborem, vytvořte nový PSSession a uložte PSSession do proměnné, která se přetypuje do globálního oboru. V tomto případě se proměnná $s přetypuje do globálního oboru.

Příkaz k zadání vzdáleného počítače používá parametr ComputerName. Vzhledem k tomu, že počítač je v jiné doméně než uživatelský účet, je zadán úplný název počítače spolu s přihlašovacími údaji uživatele.

Příklad 7: Vytvoření relací pro mnoho počítačů

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

Tento příkaz vytvoří PSSession na všech 200 počítačích uvedených v souboru Servers.txt a uloží výslednou PSSession do proměnné $rs. Objekty PSSession mají limit omezení 50.

Tento formát příkazu můžete použít v případě, že jsou názvy počítačů uložené v databázi, tabulce, textovém souboru nebo jiném převoditelném formátu.

Příklad 8: Vytvoření relace pomocí identifikátoru URI

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

Tento příkaz vytvoří PSSession na počítači Server01 a uloží ho do proměnné $s. Používá identifikátor URI parametr k určení přenosového protokolu, vzdáleného počítače, portu a alternativní konfigurace relace. Používá také parametr credential k určení uživatelského účtu, který má oprávnění k vytvoření relace ve vzdáleném počítači.

Příklad 9: Spuštění úlohy na pozadí v sadě relací

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

Tyto příkazy vytvoří sadu psSession objekty a potom spustí úlohu na pozadí v každém objektu PSSession objekty.

První příkaz vytvoří novou PSSession na každém počítači uvedeném v souboru Servers.txt. Pomocí rutiny New-PSSession vytvoříPSSession . Hodnota parametru ComputerName je příkaz, který pomocí rutiny Get-Content získá seznam názvů počítačů Servers.txt souboru.

Příkaz pomocí parametru Credential vytvoří objekty PSSession, které mají oprávnění správce domény, a pomocí parametru ThrottleLimit omezí příkaz na 16 souběžných připojení. Příkaz uloží PSSession objekty do proměnné $s.

Druhý příkaz pomocí parametru AsJob rutiny Invoke-Command spustí úlohu na pozadí, která spustí příkaz Get-Process PowerShell v každém objektu PSSession objekty v $s.

Další informace o úlohách prostředí Windows PowerShell na pozadí najdete v tématu about_Jobs a about_Remote_Jobs.

Příklad 10: Vytvoření relace pro počítač pomocí jeho identifikátoru URI

PS C:\> New-PSSession -ConnectionURI https://management.exchangelabs.com/Management

Tento příkaz vytvoří PSSession objekty, které se připojí k počítači určenému identifikátorem URI místo názvu počítače.

Příklad 11: Vytvoření možnosti relace

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

Tento příklad ukazuje, jak vytvořit objekt možnosti relace a použít parametr SessionOption.

První příkaz použije rutinu New-PSSessionOption k vytvoření možnosti relace. Uloží výsledný objekt SessionOption do proměnné $so.

Druhý příkaz používá možnost v nové relaci. Příkaz k vytvoření nové relace používá rutinu New-PSSession. Hodnota Parametr SessionOption je SessionOption objekt v proměnné $so.

Parametry

-AllowRedirection

Označuje, že tato rutina umožňuje přesměrování tohoto připojení na alternativní identifikátor URI (Uniform Resource Identifier).

Pokud použijete parametr ConnectionURI, vzdálený cíl může vrátit pokyn k přesměrování na jiný identifikátor URI. Ve výchozím nastavení Windows PowerShell přesměrovává připojení, ale pomocí tohoto parametru ho můžete přesměrovat.

Můžete také omezit počet přesměrování připojení změnou hodnoty možnosti MaximumConnectionRedirectionCount relace. Použijte parametr MaximumRedirection rutiny New-PSSessionOption nebo nastavte vlastnost MaximumConnectionRedirectionCount proměnné předvolby $PSSessionOption. Výchozí hodnota je 5.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-ApplicationName

Určuje segment názvu aplikace identifikátoru URI připojení. Tento parametr použijte k určení názvu aplikace, pokud nepoužíváte ConnectionURI parametr v příkazu.

Výchozí hodnota je hodnota proměnné předvoleb $PSSessionApplicationName v místním počítači. Pokud tato proměnná předvoleb není definována, výchozí hodnota je WSMAN. Tato hodnota je vhodná pro většinu použití. Další informace naleznete v tématu about_Preference_Variables.

Služba WinRM používá název aplikace k výběru naslouchacího procesu pro službu žádosti o připojení. Hodnota tohoto parametru by měla odpovídat hodnotě URLPrefix vlastnosti naslouchacího procesu ve vzdáleném počítači.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Authentication

Určuje mechanismus, který se používá k ověření přihlašovacích údajů uživatele. Přijatelné hodnoty pro tento parametr jsou:

  • Výchozí
  • Základní
  • Credssp
  • Trávit
  • Kerberos
  • Vyjednávat
  • NegotiateWithImplicitCredential

Výchozí hodnota je Default.

Další informace o hodnotách tohoto parametru najdete v tématu AuthenticationMechanism – výčet v knihovně MSDN.

Upozornění: Ověřování zprostředkovatele podpory zabezpečení přihlašovacích údajů (CredSSP), ve kterém jsou přihlašovací údaje uživatele předány vzdálenému počítači, který se má ověřit, je určený pro příkazy, které vyžadují ověření u více než jednoho prostředku, jako je například přístup ke vzdálené síťové sdílené složce. Tento mechanismus zvyšuje riziko zabezpečení vzdálené operace. Pokud dojde k ohrožení zabezpečení vzdáleného počítače, dají se k řízení síťové relace použít přihlašovací údaje, které jsou mu předány.

Typ:AuthenticationMechanism
Přípustné hodnoty:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CertificateThumbprint

Určuje certifikát digitálního veřejného klíče (X509) uživatelského účtu, který má oprávnění k provedení této akce. Zadejte kryptografický otisk certifikátu.

Certifikáty se používají při ověřování na základě klientských certifikátů. Mohou být mapovány pouze na místní uživatelské účty; nefungují s doménovými účty.

Pokud chcete získat certifikát, použijte Get-Item nebo Get-ChildItem příkaz v jednotce Windows PowerShell Cert:

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-ComputerName

Určuje pole názvů počítačů. Tato rutina vytvoří trvalé připojení (PSSession) k zadanému počítači. Pokud zadáte více názvů počítačů, New-PSSession vytvoří více psSession objekty, jeden pro každý počítač. Výchozí hodnota je místní počítač.

Zadejte název NetBIOS, IP adresu nebo plně kvalifikovaný název domény jednoho nebo více vzdálených počítačů. Chcete-li zadat místní počítač, zadejte název počítače, localhost nebo tečku (.). Pokud je počítač v jiné doméně než uživatel, vyžaduje se plně kvalifikovaný název domény. Název počítače můžete také převést do uvozovek New-PSSession.

Pokud chcete použít IP adresu v hodnotě parametru ComputerName, musí příkaz obsahovat parametr credential. Počítač musí být také nakonfigurovaný pro přenos HTTPS nebo musí být IP adresa vzdáleného počítače zahrnuta do seznamu Důvěryhodných hostitelů WinRM na místním počítači. Pokyny pro přidání názvu počítače do seznamu TrustedHosts naleznete v části Postup přidání počítače do seznamu důvěryhodných hostitelů v about_Remote_Troubleshooting (https://go.microsoft.com/fwlink/?LinkID=135188).

Pokud chcete zahrnout místní počítač do hodnoty parametru ComputerName, spusťte Windows PowerShell pomocí možnosti Spustit jako správce.

Typ:String[]
Aliasy:Cn
Position:0
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-ConfigurationName

Určuje konfiguraci relace, která se používá pro novou PSSession .

Zadejte název konfigurace nebo plně kvalifikovaný identifikátor URI prostředku pro konfiguraci relace. Pokud zadáte pouze název konfigurace, předzálohuje se následující identifikátor URI schématu: https://schemas.microsoft.com/PowerShell.

Konfigurace relace relace se nachází ve vzdáleném počítači. Pokud zadaná konfigurace relace ve vzdáleném počítači neexistuje, příkaz selže.

Výchozí hodnota je hodnota proměnné předvoleb $PSSessionConfigurationName v místním počítači. Pokud tato proměnná předvoleb není nastavená, výchozí hodnota je Microsoft.PowerShell. Další informace naleznete v tématu about_Preference_Variables.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-ConnectionUri

Určuje identifikátor URI, který definuje koncový bod připojení pro relaci. Identifikátor URI musí být plně kvalifikovaný. Formát tohoto řetězce je následující:

< > >://<ComputerName>:<port>/<ApplicationName>

Výchozí hodnota je následující:

https://localhost:5985/WSMAN

Pokud nezadáteConnectionURI, můžete použít parametry UseSSL, ComputerName, Porta ApplicationName parametry ConnectionURI.

Platné hodnoty pro segment přenosu identifikátoru URI jsou HTTP a HTTPS. Pokud zadáte identifikátor URI připojení s přenosovým segmentem, ale nezadáte port, relace se vytvoří s porty standardů: 80 pro HTTP a 443 pro HTTPS. Pokud chcete použít výchozí porty pro vzdálené komunikace Prostředí Windows PowerShell, zadejte port 5985 pro HTTP nebo 5986 pro HTTPS.

Pokud cílový počítač přesměruje připojení na jiný identifikátor URI, windows PowerShell zabrání přesměrování, pokud v příkazu nepoužijete parametr AllowRedirect ion.

Typ:Uri[]
Aliasy:URI, CU
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Credential

Určuje uživatelský účet, který má oprávnění k provedení této akce. Výchozí hodnota je aktuální uživatel.

Zadejte uživatelské jméno, například User01, Domain01\User01 nebo User@Domain.com, nebo zadejte objekt PSCredential, například objekt vrácený rutinou Get-Credential.

Když zadáte uživatelské jméno, tato rutina vás vyzve k zadání hesla.

Typ:PSCredential
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-EnableNetworkAccess

Označuje, že tato rutina přidá interaktivní token zabezpečení do relací zpětné smyčky. Interaktivní token umožňuje spouštět příkazy v relaci zpětné smyčky, které získávají data z jiných počítačů. Můžete například spustit příkaz v relaci, která kopíruje soubory XML ze vzdáleného počítače do místního počítače.

Relace zpětné smyčky je PSSession, která pochází a končí na stejném počítači. Pokud chcete vytvořit relaci zpětné smyčky, vynecháte parametr ComputerName nebo nastavte jeho hodnotu na tečku (.), localhost nebo název místního počítače.

Ve výchozím nastavení tato rutina vytváří relace zpětné smyčky pomocí síťového tokenu, který nemusí poskytovat dostatečná oprávnění k ověření ve vzdálených počítačích.

Parametr EnableNetworkAccess je efektivní pouze v relacích zpětné smyčky. Pokud při vytváření relace na vzdáleném počítači používáte EnableNetworkAccess, příkaz bude úspěšný, ale parametr bude ignorován.

Vzdálený přístup můžete také povolit v relaci zpětné smyčky pomocí hodnoty CredSSP parametru Authentication, který deleguje přihlašovací údaje relace do jiných počítačů.

Pokud chcete chránit počítač před škodlivým přístupem, lze odpojené relace zpětné smyčky, které mají interaktivní tokeny vytvořené pomocí parametru EnableNetworkAccess, znovu připojit pouze z počítače, na kterém byla relace vytvořena. Odpojené relace, které používají ověřování CredSSP, je možné znovu připojit z jiných počítačů. Další informace naleznete v tématu Disconnect-PSSession.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Name

Určuje popisný názevPSSession .

Název můžete použít k odkazování na PSSession, pokud používáte jiné rutiny, například Get-PSSession a Enter-PSSession. Název nemusí být jedinečný pro počítač nebo aktuální relaci.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Port

Určuje síťový port na vzdáleném počítači, který se používá pro toto připojení. Pokud se chcete připojit ke vzdálenému počítači, musí vzdálený počítač naslouchat na portu, který připojení používá. Výchozí porty jsou 5985, což je port WinRM pro HTTP a 5986, což je port WinRM pro HTTPS.

Před použitím jiného portu musíte nakonfigurovat naslouchací proces WinRM na vzdáleném počítači tak, aby naslouchal na tomto portu. Ke konfiguraci naslouchacího procesu použijte následující příkazy:

1. winrm delete winrm/config/listener?Address=*+Transport=HTTP

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

Nepoužívejte parametr Port, pokud není nutné. Nastavení portu v příkazu platí pro všechny počítače nebo relace, na kterých se příkaz spouští. Alternativní nastavení portu může zabránit spuštění příkazu na všech počítačích.

Typ:Int32
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Session

Určuje pole psSession objekty, které tato rutina používá jako model pro nový PSSession. Tento parametr vytvoří nové PSSession objekty, které mají stejné vlastnosti jako zadané PSSession objekty.

Zadejte proměnnou, která obsahuje psSession objekty nebo příkaz, který vytvoří nebo získá PSSession objekty, například New-PSSession nebo Get-PSSession příkaz.

Výsledné PSSession objekty mají stejný název počítače, název aplikace, identifikátor URI připojení, port, název konfigurace, omezení a hodnotu SSL (Secure Sockets Layer), ale mají jiný zobrazovaný název, ID a ID instance (GUID).

Typ:PSSession[]
Position:0
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-SessionOption

Určuje upřesňující možnosti relace. Zadejte objekt SessionOption, například objekt, který vytvoříte pomocí rutiny New-PSSessionOption, nebo tabulku hash, ve které jsou klíče názvy možností relace a hodnoty jsou hodnoty možností relace.

Výchozí hodnoty pro možnosti jsou určeny hodnotou proměnné předvoleb $PSSessionOption, pokud je nastavena. V opačném případě se výchozí hodnoty vytvoří pomocí možností nastavených v konfiguraci relace.

Hodnoty možností relace mají přednost před výchozími hodnotami pro relace nastavené v proměnné předvoleb $PSSessionOption a v konfiguraci relace. Nemají však přednost před maximálními hodnotami, kvótami nebo limity nastavenými v konfiguraci relace.

Popis možností relace, které obsahují výchozí hodnoty, naleznete v tématu New-PSSessionOption. Informace o proměnné předvoleb $PSSessionOption naleznete v tématu about_Preference_Variables. Další informace o konfiguracích relací najdete v tématu about_Session_Configurations.

Typ:PSSessionOption
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-ThrottleLimit

Určuje maximální počet souběžných připojení, která lze navázat pro spuštění tohoto příkazu. Pokud tento parametr vynecháte nebo zadáte hodnotu 0 (nula), použije se výchozí hodnota 32.

Omezení se vztahuje pouze na aktuální příkaz, ne na relaci nebo na počítač.

Typ:Int32
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-UseSSL

Označuje, že tato rutina používá protokol SSL k navázání připojení ke vzdálenému počítači. Ve výchozím nastavení se ssl nepoužívá.

WS-Management šifruje veškerý obsah Windows PowerShellu přenášený přes síť. Parametr UseSSL nabízí dodatečnou ochranu, která odesílá data přes připojení HTTPS místo připojení HTTP.

Pokud použijete tento parametr, ale protokol SSL není k dispozici na portu použitém pro příkaz, příkaz selže.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

Vstupy

System.String, System.URI, System.Management.Automation.Runspaces.PSSession

Do této rutiny můžete převést řetězec, identifikátor URI nebo objekt relace.

Výstupy

PSSession

Poznámky

  • Tato rutina používá infrastrukturu vzdálené komunikace Prostředí Windows PowerShell. Chcete-li použít tuto rutinu, musí být místní počítač a všechny vzdálené počítače nakonfigurovány pro vzdálenou vzdálenou komunikace prostředí Windows PowerShell. Další informace naleznete v tématu about_Remote_Requirements.

  • Pokud chcete vytvořit PSSession na místním počítači, spusťte Windows PowerShell s možností Spustit jako správce.

  • Po dokončeníPSSession pomocí rutiny Remove-PSSession odstraňte PSSession a uvolněte jeho prostředky.