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 v
Příkazy můžete spustit na vzdáleném počítači bez vytvoření
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ý
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í
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ří
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
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ří
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
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áte
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ázev
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
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.