New-PSSession

Yerel veya uzak bilgisayara kalıcı bir bağlantı oluşturur.

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

Cmdlet, New-PSSession yerel veya uzak bilgisayarda bir PowerShell oturumu (PSSession) oluşturur. PSSession oluşturduğunuzda PowerShell uzak bilgisayara kalıcı bir bağlantı kurar.

İşlev veya değişken değeri gibi verileri paylaşan birden çok komut çalıştırmak için PSSession kullanın. Komutları PSSession'da çalıştırmak için cmdlet'ini Invoke-Command kullanın. PSSession'ı kullanarak doğrudan uzak bir bilgisayarla etkileşime geçmek için cmdlet'ini Enter-PSSession kullanın. Daha fazla bilgi için bkz . about_PSSessions.

veya computerName parametreleriyle Enter-PSSessionPSSession oluşturmadan uzak bir bilgisayarda komut çalıştırabilirsiniz.Invoke-Command ComputerName parametresini kullandığınızda PowerShell, komut için kullanılan geçici bir bağlantı oluşturur ve ardından kapatılır.

PowerShell 6.0'dan başlayarak, yerel bilgisayarda SSH varsa ve uzak bilgisayar bir PowerShell SSH uç noktasıyla yapılandırılmışsa, uzak bilgisayara bağlantı kurmak ve bu bilgisayarda oturum oluşturmak için Secure Shell (SSH) kullanabilirsiniz. SSH tabanlı bir PowerShell uzak oturumunun avantajı, birden çok platformda (Windows, Linux, macOS) çalışabilmesidir. SSH tabanlı oturumlarda, uzak bilgisayarı ve ilgili bağlantı bilgilerini belirtmek için HostName veya SSH Bağlan ion parametresini kullanırsınız. PowerShell SSH uzaktan iletişimini ayarlama hakkında daha fazla bilgi için bkz . SSH Üzerinden PowerShell Uzaktan İletişimi.

Not

Sunucu sertifikasına güvenilmeyen bir HTTPS uç noktası (örneğin, otomatik olarak imzalanan sertifika) olan bir Linux veya macOS istemcisinden WSMan uzaktan iletişimini kullanırken. Bağlantıyı başarıyla kurmak için ayarlanmış SkipCACheck ve SkipCNCheck değerlerini içeren bir PSSessionOption sağlamanız $true gerekir. Bunu yalnızca sunucu sertifikasından ve hedef sisteme ağ bağlantısından emin olabileceğiniz bir ortamdaysanız yapın.

Örnekler

Örnek 1: Yerel bilgisayarda oturum oluşturma

$s = New-PSSession

Bu komut yerel bilgisayarda yeni bir PSSession oluşturur ve PSSession'ı değişkene $s kaydeder.

Artık yerel bilgisayarda komut çalıştırmak için bu PSSession'u kullanabilirsiniz.

Örnek 2: Uzak bilgisayarda oturum oluşturma

$Server01 = New-PSSession -ComputerName Server01

Bu komut, Server01 bilgisayarında yeni bir PSSession oluşturur ve değişkenine $Server01 kaydeder.

Birden çok PSSession nesnesi oluştururken, bunları yararlı adlara sahip değişkenlere atayın. Bu, sonraki komutlarda PSSession nesnelerini yönetmenize yardımcı olur.

Örnek 3: Birden çok bilgisayarda oturum oluşturma

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

Bu komut, ComputerName parametresi tarafından belirtilen bilgisayarların her birinde birer tane olan üç PSSession nesnesi oluşturur.

Komut, yeni PSSession nesnelerini şu değişkenlere atamak için atama işlecini (=) kullanır: $s1, $s2, $s3. Server01 PSSession öğesini, Server02 PSSession'ı $s2 öğesine, Server03 PSSession'ı ise öğesine $s3atar.$s1

Bir dizi değişkene birden çok nesne atadığınızda, PowerShell her nesneyi sırasıyla serideki bir değişkene atar. Değişkenlerden daha fazla nesne varsa, kalan tüm nesneler son değişkene atanır. Nesnelerden daha fazla değişken varsa, kalan değişkenler boş ($null olur).

Örnek 4: Belirtilen bağlantı noktasıyla oturum oluşturma

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

Bu komut, Sunucu01 bilgisayarında sunucu bağlantı noktasına 8081 bağlanan ve SSL protokolunu kullanan yeni bir PSSession oluşturur. Yeni PSSession adlı E12alternatif bir oturum yapılandırması kullanır.

Bağlantı noktasını ayarlamadan önce, uzak bilgisayardaki WinRM dinleyicisini 8081 numaralı bağlantı noktasını dinleyecek şekilde yapılandırmanız gerekir. Daha fazla bilgi için Bağlantı noktası parametresinin açıklamasına bakın.

Örnek 5: Mevcut oturumu temel alan bir oturum oluşturma

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

Bu komut, mevcut pssessionile aynı özelliklere sahip bir PSSession oluşturur. Mevcut pssession kaynakları tükendiğinde ve talebin bir kısmını boşaltmak için yeni bir PSSession gerektiğinde bu komut biçimini kullanabilirsiniz.

komutu, değişkenine kaydedilen PSSession'ı belirtmek için session parametresini New-PSSession$s kullanır. Komutu tamamlamak için kullanıcının kimlik bilgilerini Domain1\Admin01 kullanır.

Örnek 6: Farklı bir etki alanında genel kapsamlı bir oturum oluşturma

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

Bu örnekte, farklı bir etki alanındaki bir bilgisayarda genel kapsamlı pssession oluşturma işlemi gösterilmektedir.

Varsayılan olarak, komut satırında oluşturulan PSSession nesneleri yerel kapsamla oluşturulur ve betikte oluşturulan PSSession nesneleri betik kapsamına sahiptir.

Genel kapsamlı bir PSSession oluşturmak için yeni bir PSSession oluşturun ve ardından PSSession'u genel kapsama atanan bir değişkende depolayın. Bu durumda, $s değişken genel bir kapsama atılır.

komut uzak bilgisayarı belirtmek için ComputerName parametresini kullanır. Bilgisayar kullanıcı hesabından farklı bir etki alanında olduğundan, bilgisayarın tam adı kullanıcının kimlik bilgileriyle birlikte belirtilir.

Örnek 7: Birçok bilgisayar için oturum oluşturma

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

Bu komut, dosyada Servers.txt listelenen 200 bilgisayarın her birinde bir PSSession oluşturur ve sonuçta elde edilen PSSession'ı değişkende $rs depolar. PSSession nesnelerinin azaltma sınırı vardır50.

Bilgisayarların adları bir veritabanında, elektronik tabloda, metin dosyasında veya başka bir metin dönüştürülebilir biçimde depolandığında bu komut biçimini kullanabilirsiniz.

Örnek 8: URI kullanarak oturum oluşturma

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

Bu komut, Server01 bilgisayarında bir PSSession oluşturur ve değişkeninde $s depolar. Aktarım protokollerini , uzak bilgisayarı, bağlantı noktasını ve alternatif bir oturum yapılandırmasını belirtmek için URI parametresini kullanır. Ayrıca, uzak bilgisayarda oturum oluşturma izni olan bir kullanıcı hesabı belirtmek için Credential parametresini kullanır.

Örnek 9: Bir dizi oturumda arka plan işi çalıştırma

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

Bu komutlar bir PSSession nesneleri kümesi oluşturur ve ardından PSSession nesnelerinin her birinde bir arka plan işi çalıştırır.

İlk komut, dosyada Servers.txt listelenen bilgisayarların her birinde yeni bir PSSession oluşturur. PSSession oluşturmak için cmdlet'ini kullanırNew-PSSession. ComputerName parametresinin değeri, dosyaya bilgisayar adlarının listesini almak için cmdlet'ini Servers.txt kullanan Get-Content bir komutdur.

Komut, etki alanı yöneticisinin iznine sahip PSSession nesnelerini oluşturmak için Credential parametresini ve komutu 16 eşzamanlı bağlantılarla sınırlamak için ThrottleLimit parametresini kullanır. komutu PSSession nesnelerini değişkene $s kaydeder.

İkinci komut, cmdlet'in AsJob parametresini kullanarak içindeki PSSession nesnelerinin $sher birinde bir komut çalıştıran bir Get-Process PowerShell arka plan işi başlatır.Invoke-Command

PowerShell arka plan işleri hakkında daha fazla bilgi için bkz . about_Jobs ve about_Remote_Jobs.

Örnek 10: URI'sini kullanarak bir bilgisayar için oturum oluşturma

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

Bu komut, bilgisayar adı yerine URI tarafından belirtilen bir bilgisayara bağlanan bir PSSession nesneleri oluşturur.

Örnek 11: Oturum seçeneği oluşturma

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

Bu örnekte oturum seçeneği nesnesinin nasıl oluşturulacağı ve SessionOption parametresinin nasıl kullanılacağı gösterilmektedir.

İlk komut, oturum seçeneği oluşturmak için cmdlet'ini kullanır New-PSSessionOption . Sonuçta elde edilen SessionOption nesnesini değişkene $so kaydeder.

İkinci komut, yeni bir oturumda seçeneğini kullanır. komutu cmdlet'ini New-PSSession kullanarak yeni bir oturum oluşturur. SessionOption parametresinin değeri değişkendeki $so SessionOption nesnesidir.

Örnek 12: SSH kullanarak oturum oluşturma

New-PSSession -HostName UserA@LinuxServer01

Bu örnekte, Secure Shell (SSH) kullanarak yeni bir PSSession oluşturma işlemi gösterilmektedir. SSH uzak bilgisayarda parola isteyecek şekilde yapılandırılmışsa bir parola istemi alırsınız. Aksi takdirde SSH anahtarı tabanlı kullanıcı kimlik doğrulamasını kullanmanız gerekir.

Örnek 13: SSH kullanarak oturum oluşturma ve bağlantı noktası ile kullanıcı kimlik doğrulama anahtarını belirtme

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

Bu örnekte Secure Shell (SSH) kullanarak PSSession oluşturma işlemi gösterilmektedir. Kullanılacak bağlantı noktasını belirtmek için Bağlantı Noktası parametresini ve uzak bilgisayarda kullanıcıyı tanımlamak ve kimliğini doğrulamak için kullanılan bir RSA anahtarı belirtmek için KeyFilePath parametresini kullanır.

Örnek 14: SSH kullanarak birden çok oturum oluşturma

$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

Bu örnekte Secure Shell (SSH) ve SSH Bağlan ion parametre kümesini kullanarak birden çok oturumun nasıl oluşturulacağı gösterilmektedir. SSH Bağlan ion parametresi, her oturum için bağlantı bilgilerini içeren bir karma tablo dizisi alır. Bu örnekte, hedef uzak bilgisayarların anahtar tabanlı kullanıcı kimlik doğrulamasını destekleyecek şekilde yapılandırılmış SSH'nin olması gerektiğini unutmayın.

Örnek 15: SSH seçeneklerini kullanarak yeni oturum oluşturma

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

Bu örnekte, SSH seçeneklerini kullanarak uzak Linux tabanlı bir makinede yeni bir SSH tabanlı oturumun nasıl oluşturulacağı gösterilmektedir. Options parametresi, uzak sistemle kurulan bağlantıyı temel alınan ssh komuta seçenek olarak geçirilen değerlerin karma tablosu alır.

Parametreler

-AllowRedirection

Bu cmdlet'in bu bağlantının alternatif bir Tekdüzen Kaynak Tanımlayıcısı'na (URI) yeniden yönlendirilmesine izin verdiği gösterir.

Bağlan ionURI parametresini kullandığınızda, uzak hedef farklı bir URI'ye yönlendirme yönergesi döndürebilir. Varsayılan olarak, PowerShell bağlantıları yeniden yönlendirmez, ancak bağlantıyı yeniden yönlendirmesini sağlamak için bu parametreyi kullanabilirsiniz.

Ayrıca Maximum Bağlan ionRedirectionCount oturum seçeneği değerini değiştirerek bağlantının yeniden yönlendirilme sayısını sınırlayabilirsiniz. Cmdlet'in New-PSSessionOption MaximumRedirection parametresini kullanın veya $PSSessionOption tercih değişkeninin Maximum Bağlan ionRedirectionCount özelliğini ayarlayın. Varsayılan değer şudur: 5.

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

-ApplicationName

Bağlantı URI'sinin uygulama adı kesimini belirtir. Komutta Bağlan ionURI parametresini kullanmadığınızda uygulama adını belirtmek için bu parametreyi kullanın.

Varsayılan değer, yerel bilgisayardaki tercih değişkeninin değeridir $PSSessionApplicationName . Bu tercih değişkeni tanımlanmamışsa, varsayılan değer olur WSMAN. Bu değer çoğu kullanım için uygundur. Daha fazla bilgi için bkz . about_Preference_Variables.

WinRM hizmeti, bağlantı isteğine hizmet vermek üzere bir dinleyici seçmek için uygulama adını kullanır. Bu parametrenin değeri, uzak bilgisayardaki dinleyicinin URLPrefix özelliğinin değeriyle eşleşmelidir.

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

-Authentication

Kullanıcının kimlik bilgilerini doğrulamak için kullanılan mekanizmayı belirtir. Bu parametrenin kabul edilebilir değerleri şunlardır:

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

Varsayılan değer şudur: Default.

Bu parametrenin değerleri hakkında daha fazla bilgi için bkz . AuthenticationMechanism Numaralandırması.

Dikkat

Kimlik Bilgileri Güvenlik Desteği Sağlayıcısı (CredSSP) kimlik doğrulaması, kullanıcı kimlik bilgilerinin kimlik doğrulaması için uzak bir bilgisayara geçirildiği, uzak ağ paylaşımına erişme gibi birden fazla kaynakta kimlik doğrulaması gerektiren komutlar için tasarlanmıştır. Bu mekanizma, uzak işlemin güvenlik riskini artırır. Uzak bilgisayarın güvenliği aşılırsa, bu bilgisayara geçirilen kimlik bilgileri ağ oturumunu denetlemek için kullanılabilir.

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

Bu eylemi gerçekleştirme izni olan bir kullanıcı hesabının dijital ortak anahtar sertifikasını (X509) belirtir. Sertifikanın sertifika parmak izini girin.

Sertifikalar, istemci sertifikası tabanlı kimlik doğrulamasında kullanılır. Bunlar yalnızca yerel kullanıcı hesaplarıyla eşlenebilir; etki alanı hesaplarıyla çalışmaz.

Sertifika almak için PowerShell Cert: sürücüsündeki veya Get-ChildItem komutunu kullanınGet-Item.

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

-ComputerName

Bilgisayar adlarının bir dizisini belirtir. Bu cmdlet, belirtilen bilgisayara kalıcı bir bağlantı (PSSession) oluşturur. Birden çok bilgisayar adı girerseniz, New-PSSession her bilgisayar için bir tane olan birden çok PSSession nesnesi oluşturur. Varsayılan, yerel bilgisayardır.

Bir veya daha fazla uzak bilgisayarın NetBIOS adını, IP adresini veya tam etki alanı adını yazın. Yerel bilgisayarı belirtmek için bilgisayar adını, localhostveya bir nokta (. ) yazın. Bilgisayar kullanıcıdan farklı bir etki alanında olduğunda, tam etki alanı adı gereklidir. Ayrıca, tırnak içinde bir bilgisayar adını adresine New-PSSessionde yöneltebilirsiniz.

ComputerName parametresinin değerinde bir IP adresi kullanmak için komutun Credential parametresini içermesi gerekir. Ayrıca, bilgisayar HTTPS aktarımı için yapılandırılmalıdır veya uzak bilgisayarın IP adresi yerel bilgisayardaki WinRM TrustedHosts listesine eklenmelidir. TrustedHosts listesine bilgisayar adı ekleme yönergeleri için, about_Remote_Troubleshooting'de "Güvenilen Ana Bilgisayar Listesine Bilgisayar Ekleme" bölümüne bakın.

Yerel bilgisayarı ComputerName parametresinin değerine eklemek için Yönetici olarak çalıştır seçeneğini kullanarak Windows PowerShell'i başlatın.

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

-ConfigurationName

Yeni PSSession için kullanılan oturum yapılandırmasını belirtir.

Oturum yapılandırması için bir yapılandırma adı veya tam kaynak URI'sini girin. Yalnızca yapılandırma adını belirtirseniz, aşağıdaki şema URI'sinin başına eklenir: http://schemas.microsoft.com/PowerShell.

Oturumun oturum yapılandırması uzak bilgisayarda bulunur. Belirtilen oturum yapılandırması uzak bilgisayarda yoksa, komut başarısız olur.

Varsayılan değer, yerel bilgisayardaki tercih değişkeninin değeridir $PSSessionConfigurationName . Bu tercih değişkeni ayarlanmadıysa, varsayılan değer olur Microsoft.PowerShell. Daha fazla bilgi için bkz . about_Preference_Variables.

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

-ConnectingTimeout

İlk SSH bağlantısının tamamlanması için izin verilen süreyi milisaniye cinsinden belirtir. Bağlantı belirtilen süre içinde tamamlanmazsa bir hata döndürülür.

Bu parametre PowerShell 7.2'de kullanıma sunulmuştur

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

-ConnectionUri

Oturum için bağlantı uç noktasını tanımlayan bir URI belirtir. URI tam olarak nitelenmiş olmalıdır. Bu dizenin biçimi aşağıdaki gibidir:

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

Varsayılan değer aşağıdaki gibidir:

http://localhost:5985/WSMAN

bir Bağlan ionURI belirtmezseniz, Bağlan ionURI değerlerini belirtmek için UseSSL, ComputerName, Bağlantı Noktası ve ApplicationName parametrelerini kullanabilirsiniz.

URI'nin Aktarım kesimi için geçerli değerler HTTP ve HTTPS'dir. Aktarım kesimiyle bir bağlantı URI'sini belirtir, ancak bağlantı noktası belirtmezseniz, oturum standart bağlantı noktalarıyla oluşturulur: 80 HTTP ve 443 HTTPS için. PowerShell uzaktan iletişiminde varsayılan bağlantı noktalarını kullanmak için HTTP veya 5986 HTTPS için bağlantı noktası 5985 belirtin.

Hedef bilgisayar bağlantıyı farklı bir URI'ye yönlendirirse, komutunda AllowRedirection parametresini kullanmadığınız sürece PowerShell yeniden yönlendirmeyi engeller.

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

-ContainerId

Kapsayıcıların kimlik dizisini belirtir. Bu cmdlet, belirtilen kapsayıcıların her biriyle etkileşimli bir oturum başlatır. docker ps Kapsayıcı kimliklerinin listesini almak için komutunu kullanın. Daha fazla bilgi için docker ps komutunun yardımına bakın.

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

-Credential

Bu eylemi yapma izni olan bir kullanıcı hesabı belirtir. Varsayılan, mevcut kullanıcıdır.

veya gibi User01 bir kullanıcı adı yazın veya cmdlet tarafından Get-Credential oluşturulan bir PSCredential nesnesi Domain01\User01girin. Bir kullanıcı adı yazarsanız parolayı girmeniz istenir.

Kimlik bilgileri bir PSCredential nesnesinde depolanır ve parola SecureString olarak depolanır.

Not

SecureString veri koruması hakkında daha fazla bilgi için bkz. SecureString ne kadar güvenli?.

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

-EnableNetworkAccess

Bu cmdlet'in geri döngü oturumlarına etkileşimli bir güvenlik belirteci eklediğini gösterir. Etkileşimli belirteç, geri döngü oturumunda diğer bilgisayarlardan veri alan komutları çalıştırmanıza olanak tanır. Örneğin, oturumda xml dosyalarını uzak bir bilgisayardan yerel bilgisayara kopyalayan bir komut çalıştırabilirsiniz.

Geri döngü oturumu, aynı bilgisayarda kaynaklanıp biten bir PSSession'dır . Geri döngü oturumu oluşturmak için ComputerName parametresini atlar veya değerini nokta (.), localhostveya yerel bilgisayarın adı olarak ayarlayın.

Varsayılan olarak, bu cmdlet uzak bilgisayarlarda kimlik doğrulaması için yeterli izin sağlamayan bir ağ belirteci kullanarak geri döngü oturumları oluşturur.

EnableNetworkAccess parametresi yalnızca geri döngü oturumlarında etkilidir. Uzak bilgisayarda oturum oluştururken EnableNetworkAccess kullanıyorsanız, komut başarılı olur, ancak parametre yoksayılır.

Ayrıca, oturum kimlik bilgilerini diğer bilgisayarlara devreden Authentication parametresinin değerini kullanarak CredSSP bir geri döngü oturumunda uzaktan erişimi etkinleştirebilirsiniz.

Bilgisayarı kötü amaçlı erişimden korumak için, EnableNetworkAccess parametresi kullanılarak oluşturulan etkileşimli belirteçlere sahip bağlantısı kesilmiş geri döngü oturumları yalnızca oturumun oluşturulduğu bilgisayardan yeniden bağlanabilir. CredSSP kimlik doğrulaması kullanan bağlantısız oturumlar diğer bilgisayarlardan yeniden bağlanabilir. Daha fazla bilgi için bkz. Disconnect-PSSession.

Bu parametre PowerShell 3.0'da kullanıma sunulmuştur.

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

-HostName

Secure Shell (SSH) tabanlı bağlantı için bir bilgisayar adları dizisi belirtir. Bu, Uzak bilgisayara bağlantının Windows WinRM yerine SSH kullanılarak yapılması dışında ComputerName parametresine benzer.

Bu parametre PowerShell 6.0'da kullanıma sunulmuştur.

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

-KeyFilePath

Secure Shell (SSH) tarafından uzak bilgisayardaki bir kullanıcının kimliğini doğrulamak için kullanılan anahtar dosya yolunu belirtir.

SSH, kullanıcı kimlik doğrulamasının temel parola kimlik doğrulamasına alternatif olarak özel/ortak anahtarlar aracılığıyla gerçekleştirilmesini sağlar. Uzak bilgisayar anahtar kimlik doğrulaması için yapılandırılmışsa, bu parametre kullanıcıyı tanımlayan anahtarı sağlamak için kullanılabilir.

Bu parametre PowerShell 6.0'da kullanıma sunulmuştur.

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

-Name

PSSession için kolay bir ad belirtir.

ve Enter-PSSessiongibi diğer cmdlet'leri kullanırken PSSession'a başvurmak için Get-PSSession bu adı kullanabilirsiniz. Adın bilgisayara veya geçerli oturuma özgü olması gerekmez.

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

-Options

Uzak SSH tabanlı bir oturuma bağlanırken kullanılan SSH seçeneklerinin karma tablosu belirtir. Olası seçenekler, ssh komutunun Unix tabanlı sürümü tarafından desteklenen tüm değerlerdir.

Parametreler tarafından açıkça geçirilen tüm değerler, Seçenekler karma tablosuna geçirilen değerlerden önceliklidir. Örneğin, Bağlantı noktası parametresini kullanmak, Seçenekler karma tablosuna geçirilen tüm Port anahtar-değer çiftlerini geçersiz kılar.

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

-Port

Bu bağlantı için kullanılan uzak bilgisayardaki ağ bağlantı noktasını belirtir. Uzak bilgisayara bağlanmak için, uzak bilgisayar bağlantının kullandığı bağlantı noktasında dinliyor olmalıdır. Varsayılan bağlantı noktaları, 5985HTTP için WinRM bağlantı noktası olan ve 5986HTTPS için WinRM bağlantı noktası olan bağlantı noktasıdır.

Başka bir bağlantı noktası kullanmadan önce, uzak bilgisayardaki WinRM dinleyicisini bu bağlantı noktasını dinleyecek şekilde yapılandırmanız gerekir. Dinleyiciyi yapılandırmak için aşağıdaki komutları kullanın:

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

Gerekmedikçe Port parametresini kullanmayın. Komuttaki bağlantı noktası ayarı, komutun çalıştığı tüm bilgisayarlar veya oturumlar için geçerlidir. Alternatif bir bağlantı noktası ayarı, komutun tüm bilgisayarlarda çalışmasını engelleyebilir.

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

-RunAsAdministrator

PSSession'un yönetici olarak çalıştığını gösterir.

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

-Session

Bu cmdlet'in yeni PSSession için model olarak kullandığı pssession nesneleri dizisini belirtir. Bu parametre, belirtilen PSSession nesneleriyle aynı özelliklere sahip yeni PSSession nesneleri oluşturur.

PSSession nesnelerini içeren bir değişken veya veya Get-PSSession komutu gibi PSSession nesnelerini oluşturan veya alan bir New-PSSession komut girin.

Sonuçta elde edilen PSSession nesneleri özgünleriyle aynı bilgisayar adına, uygulama adına, bağlantı URI'sine, bağlantı noktasına, yapılandırma adına, kısıtlama sınırına ve Güvenli Yuva Katmanı (SSL) değerine sahiptir, ancak farklı bir görünen ad, kimlik ve örnek kimliğine (GUID) sahiptir.

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

-SessionOption

Oturum için gelişmiş seçenekleri belirtir. Cmdlet'ini kullanarak New-PSSessionOption oluşturduğunuz bir SessionOption nesnesi veya anahtarların oturum seçeneği adları ve değerlerin oturum seçeneği değerleri olduğu bir karma tablo girin.

Seçenekler için varsayılan değerler, ayarlanmışsa tercih değişkeninin $PSSessionOption değerine göre belirlenir. Aksi takdirde, varsayılan değerler oturum yapılandırmasında ayarlanan seçenekler tarafından oluşturulur.

Oturum seçeneği değerleri, tercih değişkeninde ve oturum yapılandırmasında $PSSessionOption ayarlanan oturumlar için varsayılan değerlerden önceliklidir. Ancak, oturum yapılandırmasında ayarlanan maksimum değer, kota veya sınırlardan öncelikli değildir.

Varsayılan değerleri içeren oturum seçeneklerinin açıklaması için bkz New-PSSessionOption. . Tercih değişkeni hakkında $PSSessionOption bilgi için bkz . about_Preference_Variables. Oturum yapılandırmaları hakkında daha fazla bilgi edinmek için bkz. about_Session_Configurations.

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

-SSHConnection

Bu parametre, her hashtable'ın Secure Shell (SSH) bağlantısı (HostName, Port, UserName, KeyFilePath) kurmak için gereken bir veya daha fazla bağlantı parametresi içerdiği bir karma tablo dizisi alır.

Karma tablo bağlantı parametreleri, SSHHost parametre kümesi için tanımlananla aynıdır.

SSH Bağlan ion parametresi, her oturumun farklı bağlantı bilgileri gerektirdiği birden çok oturum oluşturmak için kullanışlıdır.

Bu parametre PowerShell 6.0'da kullanıma sunulmuştur.

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

-SSHTransport

Uzak bağlantının Secure Shell (SSH) kullanılarak kurulduğunu gösterir.

PowerShell varsayılan olarak uzak bir bilgisayara bağlanmak için Windows WinRM kullanır. Bu anahtar, PowerShell'i SSH tabanlı uzak bağlantı kurmak için HostName parametre kümesini kullanmaya zorlar.

Bu parametre PowerShell 6.0'da kullanıma sunulmuştur.

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

-Subsystem

Yeni PSSession için kullanılan SSH alt sistemini belirtir.

Bu, hedefte kullanılacak alt sistemi içinde sshd_configtanımlandığı şekilde belirtir. Alt sistem, önceden tanımlanmış parametrelerle belirli bir PowerShell sürümünü başlatır. Belirtilen alt sistem uzak bilgisayarda yoksa, komut başarısız olur.

Bu parametre kullanılmazsa, varsayılan alt sistemdir powershell .

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

-ThrottleLimit

Bu komutu çalıştırmak için oluşturulabilecek en fazla eşzamanlı bağlantı sayısını belirtir. Bu parametreyi atlar veya (sıfır) değerini 0 girerseniz, varsayılan değer 32olan kullanılır.

Kısıtlama sınırı yalnızca geçerli komut için geçerlidir, oturuma veya bilgisayara uygulanmaz.

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

-UserName

Uzak bilgisayarda oturum oluşturmak için kullanılan hesabın kullanıcı adını belirtir. Kullanıcı kimlik doğrulama yöntemi, Secure Shell'in (SSH) uzak bilgisayarda nasıl yapılandırıldığına bağlıdır.

SSH temel parola kimlik doğrulaması için yapılandırılmışsa kullanıcı parolası girmeniz istenir.

SSH anahtar tabanlı kullanıcı kimlik doğrulaması için yapılandırılmışsa KeyFilePath parametresi aracılığıyla bir anahtar dosyası yolu sağlanabilir ve parola istenmez. İstemci kullanıcı anahtarı dosyası bilinen bir SSH konumunda bulunuyorsa anahtar tabanlı kimlik doğrulaması için KeyFilePath parametresinin gerekli olmadığını ve kullanıcı kimlik doğrulamasının kullanıcı adına göre otomatik olarak gerçekleştiğini unutmayın. Daha fazla bilgi için anahtar tabanlı kullanıcı kimlik doğrulaması hakkında SSH belgelerine bakın.

Bu gerekli bir parametre değildir. UserName parametresi belirtilmezse, bağlantı için geçerli oturum açma kullanıcı adı kullanılır.

Bu parametre PowerShell 6.0'da kullanıma sunulmuştur.

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

-UseSSL

Bu cmdlet'in uzak bilgisayarla bağlantı kurmak için SSL protokolunu kullandığını gösterir. Varsayılan olarak SSL kullanılmaz.

WS-Management, ağ üzerinden iletilen tüm PowerShell içeriğini şifreler. UseSSL parametresi, verileri HTTP bağlantısı yerine HTTPS bağlantısı üzerinden gönderen ek bir koruma sunar.

Bu parametreyi kullanıyorsanız, ancak komut için kullanılan bağlantı noktasında SSL kullanılamıyorsa, komut başarısız olur.

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

-UseWindowsPowerShell

Yerel sistemde yeni bir Windows PowerShell çalışma alanıyla uzak bağlantı oluşturur.

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

-VMId

Bir sanal makine kimlikleri dizisi belirtir. Bu cmdlet, belirtilen sanal makinelerin her biriyle bir PowerShell Doğrudan etkileşimli oturumu başlatır. Daha fazla bilgi için bkz . PowerShell kullanarak Sanal Makine otomasyonu ve yönetimi.

Hyper-V konağınızda kullanılabilen sanal makineleri görmek için kullanın Get-VM .

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

-VMName

Sanal makinelerin ad dizisini belirtir. Bu cmdlet, belirtilen sanal makinelerin her biriyle bir PowerShell Doğrudan etkileşimli oturumu başlatır. Daha fazla bilgi için bkz . PowerShell kullanarak Sanal Makine otomasyonu ve yönetimi.

Hyper-V konağınızda kullanılabilen sanal makineleri görmek için kullanın Get-VM .

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

Girişler

String

Bir dizeyi bu cmdlet'e yöneltebilirsiniz.

System.URI

Bir URI'yi bu cmdlet'e yöneltebilirsiniz.

PSSession

Oturum nesnesini bu cmdlet'e yöneltebilirsiniz.

Çıkışlar

PSSession

Notlar

PowerShell için aşağıdaki diğer adları New-PSSessioniçerir:

  • Tüm platformlar:

    • nsn
  • Bu cmdlet PowerShell uzaktan iletişim altyapısını kullanır. Bu cmdlet'i kullanmak için yerel bilgisayar ve uzak bilgisayarlar PowerShell uzaktan iletişim için yapılandırılmalıdır. Daha fazla bilgi için bkz . about_Remote_Requirements.

  • Yerel bilgisayarda PSSession oluşturmak için Yönetici olarak çalıştır seçeneğiyle PowerShell'i başlatın.

  • PSSession ile işiniz bittiğinde, pssession'ı silmek ve kaynaklarını serbest bırakmak için cmdlet'ini kullanınRemove-PSSession.

  • HostName ve SSH Bağlan ion parametre kümeleri PowerShell 6.0'dan itibaren dahil edildi. Secure Shell(SSH) tabanlı PowerShell uzaktan iletişimini sağlamak için eklendiler. Hem SSH hem de PowerShell birden çok platformda desteklenir (Windows, Linux, macOS) ve PowerShell uzaktan iletişim, PowerShell ve SSH'nin yüklendiği ve yapılandırıldığı bu platformlar üzerinde çalışır. Bu, WinRM'yi temel alan önceki Yalnızca Windows uzaktan iletişiminden ayrıdır ve WinRM'ye özgü özelliklerin ve sınırlamaların çoğu geçerli değildir. Örneğin, WinRM tabanlı kotalar, oturum seçenekleri, özel uç nokta yapılandırması ve bağlantı kesme/yeniden bağlanma özellikleri desteklenmez. PowerShell SSH uzaktan iletişimini ayarlama hakkında daha fazla bilgi için bkz . SSH Üzerinden PowerShell Uzaktan İletişimi.

Yürütülebilir ssh dosya, yapılandırma verilerini aşağıdaki kaynaklardan aşağıdaki sırayla elde eder:

  1. komut satırı seçenekleri
  2. kullanıcının yapılandırma dosyası (~/.ssh/config)
  3. sistem genelinde yapılandırma dosyası (/etc/ssh/ssh_config)

Aşağıdaki cmdlet parametreleri parametrelere ve seçeneklere ssh eşlenir:

Cmdlet parametresi ssh parametresi eşdeğer ssh -o seçeneği
-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>

Parametreler tarafından açıkça geçirilen tüm değerler, Seçenekler karma tablosuna geçirilen değerlerden önceliklidir. Dosyalar hakkında ssh_config daha fazla bilgi için bkz . ssh_config(5).