Oturum Yapılandırma Dosyaları hakkında
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'ta çalışan PowerShell için geçerlidir.
"Oturum yapılandırma dosyası", oturum yapılandırma özellikleri ve değerlerinin karma tablosunu içeren .pssc dosya adı uzantısına sahip bir metin dosyasıdır. Bir oturum yapılandırmasının özelliklerini ayarlamak için bir oturum yapılandırma dosyası kullanabilirsiniz. Bunu yapmak, söz konusu 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 komut dosyaları kullanmadan özel oturum yapılandırmaları oluşturmayı kolaylaştırır.
"Oturum yapılandırması" veya "uç nokta", kullanıcıların bilgisayarda hangi oturumları oluşturabileceği gibi şeyleri belirleyen bir yerel bilgisayar ayarları koleksiyonudur; kullanıcıların bu oturumlarda hangi komutları çalıştırabileceği; 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 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ılmaya başlandı. 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
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 bir 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; minimum 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ığı olmayan kullanıcıların ayrıcalıklı bir hesap olarak yalnızca belirli komutları ç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ıramayacaklarını yönetebilirsiniz. Kullanıcıların oturumda çalıştırabileceği PowerShell sürümünü yönetebilirsiniz; oturuma hangi modüllerin aktarılacağını yönetin; ve oturum kullanıcılarının hangi cmdlet'leri, işlevleri ve takma adları çalıştırabileceğini yönetin. Rol Tanımları alanını kullanırken, grup üyeliğine bağlı olarak kullanıcılara oturumda farklı yetenekler verebilirsiniz.
Rol Tanımları ve bu Değerin nasıl tanımlanacağı hakkında daha fazla bilgi için New-PSRoleCapabilityFile Cmdlet'inin 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 dizimini ve biçimi kullanan ve yapılandırma dosyası özellik değerlerinin çoğunu otomatik olarak doğrulayan bir dosya oluşturur.
Bir 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. Sonuçta ortaya çıkan yapılandırma dosyası yalnızca varsayılan değerleri kullanır çünkü Path parametresinden (dosya yolunu belirtir) başka hiçbir parametre dahil edilmez:
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ırabildiği ancak PowerShell dilinin diğer öğelerini kullanamadığı oturumlara yönelik bir oturum yapılandırması oluşturmak için şunu yazın:
New-PSSessionConfigurationFile -LanguageMode NoLanguage
-Path .\NoLanguage.pssc
Önceki komutta, LanguageMode parametresinin NoLanguage olarak ayarlanması, kullanıcıların komut dosyaları yazma veya çalıştırma ya da değişkenleri kullanma gibi işlemleri yapmasını engeller.
Kullanıcıların yalnızca cmdlet'leri al'ı kullanabileceği oturumlara yönelik bir oturum yapılandırması oluşturmak için şunu yazın:
New-PSSessionConfigurationFile -VisibleCmdlets Get-*
-Path .\GetSessions.pssc
Önceki örnekte, VisibleCmdlets parametresinin Get-* olarak ayarlanması, kullanıcıları "Get-" dize değeriyle başlayan adlara sahip cmdlet'lerle sınırlandırır.
Kullanıcının kimlik bilgileri yerine ayrıcalıklı bir sanal hesap altında çalışan oturumlara yönelik bir oturum yapılandırması oluşturmak için şunu yazın:
New-PSSessionConfigurationFile -RunAsVirtualAccount
-Path .\VirtualAccount.pssc
Kullanıcının görebildiği komutların rol yetenekleri dosyasında belirtildiği oturumlara yönelik 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ını Kullanma
Bir oturum yapılandırması oluşturduğunuzda bir oturum yapılandırma dosyası ekleyebilir veya daha sonra oturum yapılandırmasına bir dosya ekleyebilirsiniz.
Bir oturum yapılandırması oluştururken bir 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şladığı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 bir oturum oluşturmak için LockedDown oturum yapılandırmasını kullandıklarında cmdlet'leri çalıştırabilecekler ancak değişken oluşturamayacak veya kullanamayacak, değer atayamayacak veya diğer PowerShell dil öğelerini kullanamayacaklar.
Aşağıdaki komut, Srv01 bilgisayarında LockedDown oturum yapılandırmasını kullanan bir oturum oluşturmak için New-PSSession cmdlet'ini kullanır ve oturuma bir nesne referansını $s değişkenine kaydeder. Oturum yapılandırmasının ACL'si (erişim kontrol listesi), oturum oluşturmak için onu kimin kullanabileceğini belirler.
$s = New-PSSession -ComputerName Srv01
-ConfigurationName LockedDown
LockedDown oturum yapılandırmasına NoLanguage kısıtlamaları eklendiğinden, LockedDown oturumlarındaki kullanıcılar yalnızca PowerShell komutlarını ve cmdlet'lerini çalıştırabilecektir. Ö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 herhangi bir 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
Bir oturum yapılandırmasındaki 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.
Bir 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 bunu yerel bilgisayardaki $pshome\SessionConfig dizininde saklar.
Bir 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üzenleyicide düzenleyebilirsiniz. Dosya kaydedildikten sonra, oturum yapılandırmasını kullanan tüm yeni oturumlar tarafından kullanılacaktır.
RunAsVirtualAccount veya RunAsVirtualAccountGroups ayarlarını değiştirmeniz gerekiyorsa, oturum yapılandırmasının kaydı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özdizimi ve değerleri geçerli değilse, kullanıcılar bir oturum oluşturmak için oturum yapılandırmasını kullanamazlar.
Örneğin, aşağıdaki komut NoLanguage oturum yapılandırmasının etkin oturum yapılandırma dosyasını test eder.
Test-PSSessionConfigurationFile -Path C:\WINDOWS\System32\
WindowsPowerShell\v1.0\SessionConfig\
NoLanguage_0c115179-ff2a-4f66-a5eb-e56e5692ba22.pssc
Yapılandırma dosyasındaki sözdizimi ve değerler geçerliyse Test-PSSessionConfigurationFile True değerini döndürür. Sözdizimi ve değerler geçerli değilse cmdlet False değerini döndürür.
New-PSSessionConfiguration cmdlet'inin oluşturduğu dosyalar da dahil olmak üzere herhangi bir oturum yapılandırma dosyasını test etmek için Test-PSSessionConfigurationFile öğesini kullanabilirsiniz. Daha fazla bilgi için Test-PSSessionConfigurationFile cmdlet'inin yardım konusuna bakın.
Oturum Yapılandırma Dosyasını Kaldırma
Bir oturum yapılandırma dosyasını bir oturum yapılandırmasından kaldıramazsınız. Ancak dosyayı varsayılan ayarları kullanan yeni bir dosyayla değiştirebilirsiniz. Bu, orijinal 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 ve 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ında etkin oturum yapılandırma dosyasını değiştirir.
New-PSSessionConfigurationFile -Path .\Default.pssc
Set-PSSessionConfiguration -Name NoLanguage
-Path .\Default.pssc
Bu komutlar bittiğinde, NoLanguage oturum yapılandırması, o oturum yapılandırmasıyla oluşturulan tüm oturumlar için aslında tam dil desteği (varsayılan ayar) sağlayacaktır.
Oturum Yapılandırmasının Özelliklerini Görüntüleme Oturum yapılandırma dosyalarını kullanan oturum yapılandırmalarını temsil eden oturum yapılandırma nesneleri, oturum yapılandırmasını keşfetmeyi ve analiz etmeyi 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 aktararak ö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 ilkesine sahip 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"}
Bir 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ç noktalardaki belirli kullanıcıların kullanabileceği komutları ve ortamı belirlemenizi sağlar.
Notlar
Oturum yapılandırmaları aynı zamanda "boş" oturum olarak bilinen bir oturum türünü de destekler. Boş oturum türü, seçilen komutlarla özel oturumlar oluşturmanıza olanak tanır. Boş bir oturuma modüller, işlevler veya komut dosyaları eklemezseniz oturum ifadelerle sınırlıdır ve pratik bir kullanımı olmayabilir. SessionType özelliği boş bir oturumla çalışıp çalışmadığınızı size bildirir.
Ayrıca bakınız
- about_Session_Configurations
- Yeni PSRoleCapabilityFile
- Yeni-PSSession
- Get-PSSessionCapability
- PSSessionConfiguration'ı devre dışı bırak
- Etkinleştirme-PSSessionConfiguration
- Get-PSSessionConfiguration
- Kayıt Ol-PSSessionConfiguration
- Set-PSSessionConfiguration
- Kaydı Sil-PSSessionConfiguration
- Yeni-PSSessionConfigurationFile
- Test-PSSessionConfigurationFile