New-PSSession
Yerel veya uzak bir 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[]>]
[-ConfigurationName <String>]
[-VMId] <Guid[]>
[-ThrottleLimit <Int32>]
[<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>]
-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[]>]
[-Port <Int32>]
[-HostName] <String[]>
[-UserName <String>]
[-KeyFilePath <String>]
[-SSHTransport]
[-Subsystem <String>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
-SSHConnection <Hashtable[]>
[<CommonParameters>]
Description
Cmdlet, New-PSSession
yerel veya uzak bir bilgisayarda bir PowerShell oturumu (PSSession) oluşturur. PsSession oluşturduğunuzda PowerShell uzak bilgisayara kalıcı bir bağlantı kurar.
İşlev veya değişkenin değeri gibi verileri paylaşan birden çok komut çalıştırmak için PSSession kullanın. PsSession'da komut ç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 Invoke-Command
'nin ComputerName parametrelerini Enter-PSSession
kullanarak PSSession oluşturmadan uzak bir bilgisayarda komut çalıştırabilirsiniz. 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 bir bilgisayara bağlantı kurmak ve bir 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 SSHConnection parametresini kullanırsınız. PowerShell SSH uzaktan iletişimini ayarlama hakkında daha fazla bilgi için bkz. SSH Üzerinden PowerShell uzaktan iletişim.
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 ve -SkipCNCheck
içeren -SkipCACheck
bir PSSessionOption
sağlamanız 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şkenini $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 biri olan üç PSSession nesnesi oluşturur.
Komut, yeni PSSession nesnelerini değişkenlere atamak için atama işlecini (=) kullanır: $s1
, , $s2
$s3
. Server01 PSSession öğesini öğesine $s1
, Server02 PSSession$s2
öğesini ve Server03 PSSession'ını öğesine $s3
atar.
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ştur (null).
Örnek 4: Belirtilen bağlantı noktasıyla oturum oluşturma
New-PSSession -ComputerName Server01 -Port 8081 -UseSSL -ConfigurationName E12
Bu komut, Server01 bilgisayarında sunucu bağlantı noktası 8081'e bağlanan ve SSL protokolunu kullanan yeni bir PSSession oluşturur. Yeni PSSession , E12 adlı alternatif 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 oturum oluşturma
New-PSSession -Session $s -Credential Domain01\User01
Bu komut, mevcut pssession ile 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 Domain1\Admin01 kullanıcısının kimlik bilgilerini 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 kapsama sahip 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, Servers.txt dosyasında listelenen 200 bilgisayarın her birinde bir PSSession oluşturur ve sonuçta elde edilen PSSession'ı değişkeninde $rs
depolar. PSSession nesnelerinin kısıtlama sınırı 50'tir.
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, Servers.txt dosyasında listelenen bilgisayarların her birinde yeni bir PSSession oluşturur. PSSession oluşturmak için cmdlet'ini kullanırNew-PSSession
. ComputerName parametresinin değeri, Servers.txt dosyasının bilgisayar adlarının listesini almak için cmdlet'ini kullanan Get-Content
bir komutdur.
Komut, etki alanı yöneticisinin iznine sahip PSSession nesnelerini oluşturmak için Credential parametresini kullanır ve komutu 16 eşzamanlı bağlantıyla sınırlamak için ThrottleLimit parametresini kullanır. komutu PSSession nesnelerini değişkenine $s
kaydeder.
İkinci komut, cmdlet'in Invoke-Command
AsJob parametresini kullanarak içindeki PSSession nesnelerinin $s
her birinde bir komut çalıştıran bir Get-Process PowerShell
arka plan işi başlatır.
PowerShell arka plan işleri hakkında daha fazla bilgi için bkz. about_Jobs ve about_Remote_Jobs.
Örnek 10: URI'sini kullanarak 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 nesnesi 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 yeni bir oturum oluşturmak için cmdlet'ini kullanır New-PSSession
. SessionOption parametresinin değeri değişkenindeki SessionOption nesnesidir $so
.
Ö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 SSHConnection parametre kümesi kullanılarak birden çok oturumun nasıl oluşturulacağı gösterilmektedir. SSHConnection 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'ye sahip olması gerektiğini unutmayın.
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ğine işaret eder.
ConnectionURI parametresini kullandığınızda, uzak hedef farklı bir URI'ye yeniden 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.
MaximumConnectionRedirectionCount oturum seçeneği değerini değiştirerek bağlantının yeniden yönlendirilme sayısını da sınırlayabilirsiniz. Cmdlet'in New-PSSessionOption
MaximumRedirection parametresini kullanın veya $PSSessionOption tercih değişkeninin MaximumConnectionRedirectionCount özelliğini ayarlayın. Varsayılan değer 5'tir.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ApplicationName
Bağlantı URI'sinin uygulama adı kesimini belirtir. Komutunda ConnectionURI 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 WSMAN'dır. 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:
- Varsayılan
- Temel
- Credssp
- Özet
- Kerberos
- Anlaşma
- NegotiateWithImplicitCredential
Varsayılan değer Varsayılan'dır.
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, ona 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ına 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
Bilgisayarların ad 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ı, localhost'ı veya bir nokta (.) yazın. Bilgisayar kullanıcıdan farklı bir etki alanındaysa, tam etki alanı adı gereklidir. Ayrıca, tırnak işaretleri içinde bir bilgisayar adını adresine de yöneltebilirsiniz New-PSSession
.
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'da "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 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: https://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 Microsoft.PowerShell'dir. 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 |
-ConnectionUri
Oturum için bağlantı uç noktasını tanımlayan bir URI belirtir. URI tam nitelikli olmalıdır. Bu dizenin biçimi aşağıdaki gibidir:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
Varsayılan değer aşağıdaki gibidir:
https://localhost:5985/WSMAN
ConnectionURI belirtmezseniz, ConnectionURI değerlerini belirtmek için UseSSL, ComputerName, Port ve ApplicationName parametrelerini kullanabilirsiniz.
URI'nin Aktarım kesimi için geçerli değerler HTTP ve HTTPS'dir. Aktarım kesimiyle bağlantı URI'sini belirtirseniz ancak bağlantı noktası belirtmezseniz, oturum şu standart bağlantı noktalarıyla oluşturulur: HTTP için 80 ve HTTPS için 443. PowerShell uzaktan iletişiminde varsayılan bağlantı noktalarını kullanmak için HTTP için 5985 veya HTTPS için 5986 bağlantı noktasını belirtin.
Hedef bilgisayar bağlantıyı farklı bir URI'ye yeniden 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 iznine sahip bir kullanıcı hesabı belirtir. Varsayılan, mevcut kullanıcıdır.
User01 veya Domain01\User01 gibi bir kullanıcı adı yazın veya cmdlet tarafından Get-Credential
oluşturulan bir PSCredential nesnesi girin. Bir kullanıcı adı yazarsanız parolayı girmeniz istenir.
Kimlik bilgileri bir PSCredential nesnesinde depolanır ve parola bir 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 ortaya çıkan ve biten bir PSSession'dır . Geri döngü oturumu oluşturmak için ComputerName parametresini atlar veya değerini nokta (.), localhost veya yerel bilgisayarın adı olarak ayarlayın.
Varsayılan olarak, bu cmdlet bir ağ belirteci kullanarak geri döngü oturumları oluşturur ve bu da uzak bilgisayarlarda kimlik doğrulaması için yeterli izin sağlamayabilir.
EnableNetworkAccess parametresi yalnızca geri döngü oturumlarında etkilidir. Uzak bilgisayarda oturum oluştururken EnableNetworkAccess kullanırsanız, komut başarılı olur, ancak parametresi yoksayılır.
Oturum kimlik bilgilerini diğer bilgisayarlara devreden Authentication parametresinin CredSSP değerini kullanarak da 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: | None |
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
Uzak bilgisayardaki bir kullanıcının kimliğini doğrulamak için Secure Shell (SSH) tarafından 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-PSSession
gibi Get-PSSession
diğer cmdlet'leri kullanırken PSSession'a başvurmak için adını 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 |
-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ı HTTP için WinRM bağlantı noktası olan 5985 ve HTTPS için WinRM bağlantı noktası olan 5986'dır.
Başka bir bağlantı noktası kullanmadan önce, uzak bilgisayardaki WinRM dinleyicisini bu bağlantı noktasında dinleyecek şekilde yapılandırmanız gerekir. Dinleyiciyi yapılandırmak için aşağıdaki komutları kullanın:
winrm delete winrm/config/listener?Address=*+Transport=HTTP
winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}
Gerekmedikçe Bağlantı Noktası 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: | None |
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 komutu gibi PSSession nesnelerini oluşturan veya alan bir New-PSSession
Get-PSSession
komut girin.
Sonuçta elde edilen PSSession nesneleri özgün dosyalarla 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 ada, kimliğe 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 tablosu girin.
Seçenekler için varsayılan değerler, ayarlıysa 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, bunlar 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 karmatable'ın Secure Shell (SSH) bağlantısı kurmak için gereken bir veya daha fazla bağlantı parametresi (HostName, Port, UserName, KeyFilePath) içerdiği bir karma tablo dizisi alır.
Karma tablo bağlantı parametreleri , HostName parametre kümesi için tanımlananla aynıdır.
SSHConnection 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: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Subsystem
Yeni PSSession için kullanılan SSH alt sistemini belirtir.
Bu, sshd_config'de tanımlandığı gibi hedefte kullanılacak alt sistemi 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 değer 'powershell' alt sistemidir.
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 atlarsanız veya 0 (sıfır) değerini girerseniz varsayılan değer olan 32 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ı 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 istemi gerçekleşmez. İ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ı adına bağlı olarak kullanıcı kimlik doğrulamasının otomatik olarak gerçekleşeceğ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 bilgisayara bağlantı kurmak için SSL protokolunu kullandığını gösterir. Varsayılan olarak SSL kullanılmaz.
WS-Management ağ üzerinden aktarılan 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: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VMId
Sanal makinelerin kimlik dizisini belirtir. Bu cmdlet, belirtilen sanal makinelerin her biriyle etkileşimli bir oturum başlatır. Kullanabileceğiniz sanal makineleri görmek için aşağıdaki komutu kullanın:
Get-VM | Select-Object -Property Name, ID
Type: | Guid[] |
Aliases: | VMGuid |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-VMName
Sanal makinelerin ad dizisini belirtir. Bu cmdlet, belirtilen sanal makinelerin her biriyle etkileşimli bir oturum başlatır. Kullanabileceğiniz sanal makineleri görmek için cmdlet'ini Get-VM
kullanın.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Girişler
System.String, System.URI, System.Management.Automation.Runspaces.PSSession
Bir dize, URI veya oturum nesnesini bu cmdlet'e yöneltebilirsiniz.
Çıkışlar
Notlar
- 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 PowerShell'i Yönetici olarak çalıştır seçeneğiyle başlatın.
- PSSession ile işiniz bittiğinde, PSSession'ı silmek ve kaynaklarını serbest bırakmak için cmdlet'ini kullanın
Remove-PSSession
. - HostName ve SSHConnection parametre kümeleri PowerShell 6.0'dan başlayarak dahil edildi. Secure Shell (SSH) tabanlı PowerShell uzaktan iletişimini sağlamak için eklendiler. Hem SSH hem de PowerShell birden çok platformda (Windows, Linux, macOS) desteklenir ve PowerShell uzaktan iletişim, PowerShell ve SSH'nin yüklendiği ve yapılandırıldığı bu platformlar üzerinde çalışır. Bu, yalnızca WinRM'yi temel alan önceki 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ğlantı özellikleri şu anda desteklenmemektedir. PowerShell SSH uzaktan iletişimini ayarlama hakkında daha fazla bilgi için bkz. SSH Üzerinden PowerShell uzaktan iletişim.