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 ve oturum yapılandırma dosyaları Windows PowerShell 3.0'da sunulmuştur. Oturum yapılandırmasına 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
Oturum yapılandırmasında oturum özelliklerini belirterek PowerShell oturumunun birçok özelliğini özelleştirebilirsiniz. Özel bir runspace 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; özel olarak 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 komut ç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; oturuma hangi modüllerin içeri 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'i için 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 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'in 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, New-PSSession cmdlet'ini kullanarak Srv01 bilgisayarında LockedDown oturum yapılandırmasını kullanan bir oturum oluşturur ve $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şvuruda bulunan oturumda komut ç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ı silmeniz 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'in 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'i için yardım konusuna bakın.
Oturum Yapılandırma Dosyasını Kaldırma
Oturum yapılandırma dosyasını oturum yapılandırmasından 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.
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 özel oturum yapılandırma dosyasını yeni dosyayla değiştirmek için Set-PSSessionConfiguration cmdlet'ini kullanın.
Ö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ırarak ve döndürülen verileri Get-Member cmdlet'ine ekleyerek ö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ını 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ımda olmayabilir. SessionType özelliği, boş bir oturumla çalışıp çalışmayabileceğinizi bildirir.
Ayrıca bkz.
- about_Session_Configurations
- New-PSRoleCapabilityFile
- New-PSSession
- Get-PSSessionCapability
- Disable-PSSessionConfiguration
- Enable-PSSessionConfiguration
- Get-PSSessionConfiguration
- Register-PSSessionConfiguration
- Set-PSSessionConfiguration
- Unregister-PSSessionConfiguration
- New-PSSessionConfigurationFile
- Test-PSSessionConfigurationFile