about_Session_Configuration_Files

Kısa açıklama

Oturum yapılandırmasını kullanan oturumların ortamını tanımlamak için bir oturum yapılandırmasında ("uç nokta" olarak da bilinir) kullanılan oturum yapılandırma dosyalarını açıklar.

Uzun açıklama

Bu bilgiler yalnızca Windows üzerinde çalışan PowerShell için geçerlidir.

"Oturum yapılandırma dosyası", oturum yapılandırma özelliklerinin ve değerlerinin karma tablosunu içeren .pssc dosya adı uzantısına sahip bir metin dosyasıdır. Oturum yapılandırmasının özelliklerini ayarlamak için bir oturum yapılandırma dosyası kullanabilirsiniz. Bunu yapmak, bu oturum yapılandırmasını kullanan tüm PowerShell oturumlarının ortamını tanımlar.

Oturum yapılandırma dosyaları, karmaşık C# derlemeleri veya betikleri kullanmadan özel oturum yapılandırmaları oluşturmayı kolaylaştırır.

"Oturum yapılandırması" veya "uç nokta", hangi kullanıcıların bilgisayarda oturum oluşturabileceğini belirleyen yerel bilgisayar ayarları koleksiyonudur; kullanıcıların bu oturumlarda çalıştırabileceği komutlar; ve oturumun ayrıcalıklı bir sanal hesap olarak çalıştırılıp çalıştırılmayacağı. Oturum yapılandırmaları hakkında daha fazla bilgi edinmek için bkz. about_Session_Configurations.

Oturum yapılandırmaları Windows PowerShell 2.0'da, oturum yapılandırma dosyaları ise Windows PowerShell 3.0'da kullanıma sunulmuştur. Oturum yapılandırmasına bir oturum yapılandırma dosyası eklemek için Windows PowerShell 3.0 kullanmanız gerekir. Ancak, Windows PowerShell 2.0 (ve üzeri) kullanıcıları oturum yapılandırmasındaki ayarlardan etkilenir.

Özel Oturumlar Oluşturma

Bir oturum yapılandırmasında oturum özelliklerini belirterek PowerShell oturumunun birçok özelliğini özelleştirebilirsiniz. Özel bir çalışma alanını tanımlayan bir C# programı yazarak oturumu özelleştirebilir veya oturum yapılandırması kullanılarak oluşturulan oturumların özelliklerini tanımlamak için bir oturum yapılandırma dosyası kullanabilirsiniz. Genel bir kural olarak, oturum yapılandırma dosyasını kullanmak bir C# programı yazmaktan daha kolaydır.

Son derece güvenilir kullanıcılar için tam işlevli oturumlar gibi öğeler oluşturmak için bir oturum yapılandırma dosyası kullanabilirsiniz; en az erişime izin veren kilitli oturumlar; belirli bir görev için tasarlanmış ve yalnızca bu görevler için gerekli modülleri içeren oturumlar; ve ayrıcalıksız kullanıcıların yalnızca belirli komutları ayrıcalıklı bir hesap olarak çalıştırabildiği oturumlar.

Buna ek olarak, oturum kullanıcılarının betik blokları gibi PowerShell dil öğelerini kullanıp kullanamayacağını veya yalnızca komutları çalıştırıp çalıştıramayacağını yönetebilirsiniz. PowerShell kullanıcılarının oturumda çalıştırabileceği sürümü yönetebilirsiniz; hangi modüllerin oturuma aktarılacağını yönetme; ve kullanıcıların hangi cmdlet'leri, işlevleri ve diğer adları çalıştırabileceğini yönetin. RoleDefinitions alanını kullanırken, kullanıcılara oturumda grup üyeliğine göre farklı özellikler verebilirsiniz.

RoleDefinitions ve bu Değeri tanımlama hakkında daha fazla bilgi için New-PSRoleCapabilityFile Cmdlet'i için yardım konusuna bakın.

Oturum Yapılandırma Dosyası Oluşturma

Oturum yapılandırma dosyası oluşturmanın en kolay yolu New-PSSessionConfigurationFile cmdlet'ini kullanmaktır. Bu cmdlet doğru söz dizimi ve biçimi kullanan ve yapılandırma dosyası özellik değerlerinin çoğunu otomatik olarak doğrulayan bir dosya oluşturur.

Oturum yapılandırma dosyasında ayarlayabileceğiniz özelliklerin ayrıntılı açıklamaları için New-PSSessionConfigurationFile cmdlet'inin yardım konusuna bakın.

Aşağıdaki komut, varsayılan değerleri kullanan bir oturum yapılandırma dosyası oluşturur. Path parametresi (dosya yolunu belirtir) dışında hiçbir parametre dahil olmadığından, sonuçta elde edilen yapılandırma dosyası yalnızca varsayılan değerleri kullanır:

New-PSSessionConfigurationFile -Path .\Defaults.pssc

Yeni yapılandırma dosyasını varsayılan metin düzenleyicinizde görüntülemek için aşağıdaki komutu kullanın:

Invoke-Item -Path .\Defaults.pssc

Kullanıcının komutları çalıştırabileceği ancak PowerShell dilinin diğer öğelerini kullanamayabileceği oturumlar için bir oturum yapılandırması oluşturmak için şunu yazın:

New-PSSessionConfigurationFile -LanguageMode NoLanguage
-Path .\NoLanguage.pssc

Yukarıdaki komutta LanguageMode parametresini NoLanguage olarak ayarlamak, kullanıcıların betik yazma veya çalıştırma ya da değişken kullanma gibi işlemler yapmasını engeller.

Kullanıcıların yalnızca Get cmdlet'lerini kullanabileceği oturumlar için bir oturum yapılandırması oluşturmak için şunu yazın:

New-PSSessionConfigurationFile -VisibleCmdlets Get-*
-Path .\GetSessions.pssc

Yukarıdaki örnekte, VisibleCmdlets parametresini Get-* olarak ayarlamak, kullanıcıları "Get-" dize değeriyle başlayan adlara sahip cmdlet'lerle sınırlar.

Kullanıcının kimlik bilgileri yerine ayrıcalıklı bir sanal hesap altında çalışan oturumlar için bir oturum yapılandırması oluşturmak için şunu yazın:

New-PSSessionConfigurationFile -RunAsVirtualAccount
-Path .\VirtualAccount.pssc

Kullanıcıya görünen komutların bir rol özellikleri dosyasında belirtildiği oturumlar için bir oturum yapılandırması oluşturmak için şunu yazın:

New-PSSessionConfigurationFile -RoleDefinitions
@{ 'CONTOSO\User' = @{ RoleCapabilities = 'Maintenance' }}
-Path .\Maintenance.pssc

Oturum Yapılandırma Dosyası Kullanma

Oturum yapılandırması oluştururken bir oturum yapılandırma dosyası ekleyebilir veya daha sonra oturum yapılandırmasına bir dosya ekleyebilirsiniz.

Oturum yapılandırması oluştururken oturum yapılandırma dosyası eklemek için Register-PSSessionConfiguration cmdlet'inin Path parametresini kullanın.

Örneğin, aşağıdaki komut bir NoLanguage oturum yapılandırması oluştururken NoLanguage.pssc dosyasını kullanır.

Register-PSSessionConfiguration -Name NoLanguage
-Path .\NoLanguage.pssc

Yeni bir NoLanguage oturumu başlatıldığında, kullanıcılar yalnızca PowerShell komutlarına erişebilir.

Mevcut bir oturum yapılandırmasına oturum yapılandırma dosyası eklemek için Set-PSSessionConfiguration cmdlet'ini ve Path parametresini kullanın. Bu, belirtilen oturum yapılandırmasıyla oluşturulan tüm yeni oturumları etkiler. Set-PSSessionConfiguration cmdlet'inin oturumun kendisini değiştirdiğini ve oturum yapılandırma dosyasını değiştirmediğini unutmayın.

Örneğin, aşağıdaki komut NoLanguage.pssc dosyasını LockedDown oturum yapılandırmasına ekler.

Set-PSSessionConfiguration -Name LockedDown
-Path .\NoLanguage.pssc

Kullanıcılar oturum oluşturmak için LockedDown oturum yapılandırmasını kullandıklarında cmdlet'leri çalıştırabilir, ancak değişkenleri oluşturamaz veya kullanamaz, değer atayamaz veya diğer PowerShell dil öğelerini kullanamazlar.

Aşağıdaki komut, Srv01 bilgisayarında LockedDown oturum yapılandırmasını kullanan bir oturum oluşturmak için New-PSSession cmdlet'ini kullanarak $s değişkenindeki oturuma bir nesne başvurusu kaydeder. Oturum yapılandırmasının ACL'sini (erişim denetimi listesi), oturumu oluşturmak için kimlerin kullanabileceğini belirler.

$s = New-PSSession -ComputerName Srv01
-ConfigurationName LockedDown

NoLanguage kısıtlamaları LockedDown oturum yapılandırmasına eklendiğinden, LockedDown oturumlarındaki kullanıcılar yalnızca PowerShell komutlarını ve cmdlet'lerini çalıştırabilir. Örneğin, aşağıdaki iki komut, $s değişkeninde başvurulan oturumda komutları çalıştırmak için Invoke-Command cmdlet'ini kullanır. Get-UICulture cmdlet'ini çalıştıran ve değişken kullanmayan ilk komut başarılı olur. $PSUICulture değişkeninin değerini alan ikinci komut başarısız olur.

Invoke-Command -Session $s {Get-UICulture}
en-US

Invoke-Command -Session $s {$PSUICulture}
The syntax is not supported by this runspace. This might be
because it is in no-language mode.
+ CategoryInfo          : ParserError: ($PSUICulture:String) [],
ParseException
+ FullyQualifiedErrorId : ScriptsNotAllowed

Oturum Yapılandırma Dosyasını Düzenleme

Oturum yapılandırmasında RunAsVirtualAccount ve RunAsVirtualAccountGroups dışındaki tüm ayarlar, oturum yapılandırması tarafından kullanılan oturum yapılandırma dosyası düzenlenerek değiştirilebilir. Bunu yapmak için, oturum yapılandırma dosyasının etkin kopyasını bularak başlayın.

Oturum yapılandırmasında oturum yapılandırma dosyası kullandığınızda PowerShell, oturum yapılandırma dosyasının etkin bir kopyasını oluşturur ve yerel bilgisayardaki $pshome\SessionConfig dizininde depolar.

Oturum yapılandırma dosyasının etkin kopyasının konumu, oturum yapılandırma nesnesinin ConfigFilePath özelliğinde depolanır.

Aşağıdaki komut, NoLanguage oturum yapılandırması için oturum yapılandırma dosyasının konumunu alır.

(Get-PSSessionConfiguration -Name NoLanguage).ConfigFilePath

Bu komut aşağıdakine benzer bir dosya yolu döndürür:

C:\WINDOWS\System32\WindowsPowerShell\v1.0\SessionConfig\
NoLanguage_0c115179-ff2a-4f66-a5eb-e56e5692ba22.pssc

.pssc dosyasını herhangi bir metin düzenleyicisinde düzenleyebilirsiniz. Dosya kaydedildikten sonra, oturum yapılandırmasını kullanan tüm yeni oturumlar tarafından kullanılır.

RunAsVirtualAccount veya RunAsVirtualAccountGroups ayarlarını değiştirmeniz gerekiyorsa, oturum yapılandırmasını kaldırmanız ve düzenlenen değerleri içeren bir oturum yapılandırma dosyasını yeniden kaydetmeniz gerekir.

Oturum Yapılandırma Dosyasını Test Etme

El ile düzenlenen oturum yapılandırma dosyalarını test etmek için Test-PSSessionConfigurationFile cmdlet'ini kullanın. Bu önemlidir: Dosya söz dizimi ve değerleri geçerli değilse kullanıcılar oturum oluşturmak için oturum yapılandırmasını kullanamaz.

Örneğin, aşağıdaki komut NoLanguage oturum yapılandırmasının etkin oturum yapılandırma dosyasını test ediyor.

Test-PSSessionConfigurationFile -Path C:\WINDOWS\System32\
WindowsPowerShell\v1.0\SessionConfig\
NoLanguage_0c115179-ff2a-4f66-a5eb-e56e5692ba22.pssc

Yapılandırma dosyasındaki söz dizimi ve değerler geçerliyse Test-PSSessionConfigurationFile true döndürür. Söz dizimi ve değerler geçerli değilse, cmdlet False döndürür.

New-PSSessionConfiguration cmdlet'inin oluşturduğu dosyalar da dahil olmak üzere tüm oturum yapılandırma dosyalarını test etmek için Test-PSSessionConfigurationFile kullanabilirsiniz. Daha fazla bilgi için Test-PSSessionConfigurationFile cmdlet'inin yardım konusuna bakın.

Oturum Yapılandırma Dosyasını Kaldırma

Oturum yapılandırma dosyasından oturum yapılandırma dosyasını kaldıramazsınız. Ancak, dosyayı varsayılan ayarları kullanan yeni bir dosyayla değiştirebilirsiniz. Bu, özgün yapılandırma dosyası tarafından kullanılan ayarları etkili bir şekilde iptal eder.

Bir oturum yapılandırma dosyasını değiştirmek için, varsayılan ayarları kullanan yeni bir oturum yapılandırma dosyası oluşturun, ardından Set-PSSessionConfiguration cmdlet'ini kullanarak özel oturum yapılandırma dosyasını yeni dosyayla değiştirin.

Örneğin, aşağıdaki komutlar bir Varsayılan oturum yapılandırma dosyası oluşturur ve ardından NoLanguage oturum yapılandırmasındaki etkin oturum yapılandırma dosyasını değiştirir.

New-PSSessionConfigurationFile -Path .\Default.pssc
Set-PSSessionConfiguration -Name NoLanguage
-Path .\Default.pssc

Bu komutlar tamamlandığında, NoLanguage oturum yapılandırması aslında bu oturum yapılandırmasıyla oluşturulan tüm oturumlar için tam dil desteği (varsayılan ayar) sağlar.

Oturum Yapılandırmasının Özelliklerini Görüntüleme Oturum yapılandırma dosyalarını kullanarak oturum yapılandırmalarını temsil eden oturum yapılandırma nesneleri, oturum yapılandırmasını bulmayı ve çözümlemeyi kolaylaştıran ek özelliklere sahiptir. (Aşağıda gösterilen tür adının biçimlendirilmiş bir görünüm tanımı içerdiğini unutmayın.) Get-PSSessionConfiguration cmdlet'ini çalıştırıp döndürülen verileri Get-Member cmdlet'ine getirerek özellikleri görüntüleyebilirsiniz:

Get-PSSessionConfiguration NoLanguage | Get-Member
TypeName: Microsoft.PowerShell.Commands.PSSessionConfigurationCommands
#PSSessionConfiguration

Name                          MemberType     Definition
----                          ----------     ----------
Equals                        Method         bool Equals(System.O...
GetHashCode                   Method         int GetHashCode()
GetType                       Method         type GetType()
ToString                      Method         string ToString()
Architecture                  NoteProperty   System.String Archit...
Author                        NoteProperty   System.String Author...
AutoRestart                   NoteProperty   System.String AutoRe...
Capability                    NoteProperty   System.Object[] Capa...
CompanyName                   NoteProperty   System.String Compan...
configfilepath                NoteProperty   System.String config...
Copyright                     NoteProperty   System.String Copyri...
Enabled                       NoteProperty   System.String Enable...
ExactMatch                    NoteProperty   System.String ExactM...
ExecutionPolicy               NoteProperty   System.String Execut...
Filename                      NoteProperty   System.String Filena...
GUID                          NoteProperty   System.String GUID=0...
ProcessIdleTimeoutSec         NoteProperty   System.String Proces...
IdleTimeoutms                 NoteProperty   System.String IdleTi...
lang                          NoteProperty   System.String lang=e...
LanguageMode                  NoteProperty   System.String Langua...
MaxConcurrentCommandsPerShell NoteProperty   System.String MaxCon...
MaxConcurrentUsers            NoteProperty   System.String MaxCon...
MaxIdleTimeoutms              NoteProperty   System.String MaxIdl...
MaxMemoryPerShellMB           NoteProperty   System.String MaxMem...
MaxProcessesPerShell          NoteProperty   System.String MaxPro...
MaxShells                     NoteProperty   System.String MaxShells
MaxShellsPerUser              NoteProperty   System.String MaxShe...
Name                          NoteProperty   System.String Name=N...
PSVersion                     NoteProperty   System.String PSVersion
ResourceUri                   NoteProperty   System.String Resour...
RunAsPassword                 NoteProperty   System.String RunAsP...
RunAsUser                     NoteProperty   System.String RunAsUser
SchemaVersion                 NoteProperty   System.String Schema...
SDKVersion                    NoteProperty   System.String SDKVer...
OutputBufferingMode           NoteProperty   System.String Output...
SessionType                   NoteProperty   System.String Sessio...
UseSharedProcess              NoteProperty   System.String UseSha...
SupportsOptions               NoteProperty   System.String Suppor...
xmlns                         NoteProperty   System.String xmlns=...
XmlRenderingType              NoteProperty   System.String XmlRen...
Permission                    ScriptProperty System.Object Permis...

Bu özellikler, belirli oturum yapılandırmalarını aramayı kolaylaştırır. Örneğin, RemoteSigned yürütme ilkesiyle oturumları destekleyen bir oturum yapılandırması bulmak için ExecutionPolicy özelliğini kullanabilirsiniz. ExecutionPolicy özelliği yalnızca oturum yapılandırma dosyalarını kullanan oturumlarda mevcut olduğundan, komutun tüm uygun oturum yapılandırmalarını döndürmeyebileceğini unutmayın.

Get-PSSessionConfiguration |
where {$_.ExecutionPolicy -eq "RemoteSigned"}

Aşağıdaki komut, RunAsUser'ın Exchange yöneticisi olduğu oturum yapılandırmalarını alır.

 Get-PSSessionConfiguration |
where {$_.RunAsUser -eq "Exchange01\Admin01"}

Yapılandırmayla ilişkili rol tanımları hakkındaki bilgileri görüntülemek için Get-PSSessionCapability cmdlet'ini kullanın. Bu cmdlet, belirli uç noktalarda belirli kullanıcıların kullanabileceği komutları ve ortamı belirlemenizi sağlar.

Notlar

Oturum yapılandırmaları, "boş" oturum olarak bilinen bir oturum türünü de destekler. Boş oturum türü, seçili komutlarla özel oturumlar oluşturmanıza olanak tanır. Boş bir oturuma modül, işlev veya betik eklemezseniz, oturum ifadelerle sınırlıdır ve pratik bir kullanım olmayabilir. SessionType özelliği, boş bir oturumla çalışıp çalışmayabileceğinizi bildirir.

Ayrıca bkz.