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
"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ı özelliklerini ayarlamak için bir oturum yapılandırma dosyası kullanabilirsiniz. Bunun yapılması, bu oturum yapılandırmasını kullanan herhangi bir PowerShell oturumunun 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", kullanıcıların bilgisayarda oturum oluşturmalarına benzer şeyleri belirleyen yerel bilgisayar ayarlarının 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 edinmek için bkz. about_Session_Configurations.
oturum yapılandırmaları Windows PowerShell 2,0 ' de tanıtılmıştı ve oturum yapılandırma dosyaları Windows PowerShell 3,0 ' de tanıtılmıştı. 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 özelliklerini bir oturum yapılandırmasında belirterek, bir PowerShell oturumunun birçok özelliğini özelleştirebilirsiniz. Özel bir çalışma alanı 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, bir C# programı yazmak için oturum yapılandırma dosyasını kullanmak daha kolaydır.
Son derece güvenilen kullanıcılar için tamamen çalışan oturumlar gibi öğeler oluşturmak için bir oturum yapılandırma dosyası kullanabilirsiniz; en az erişime izin veren kilitli oturumlar; belirli ve için tasarlanan ve yalnızca bu görevler için gereken modülleri içeren oturumlar; ve ayrıcalıklı olmayan kullanıcıların yalnızca ayrıcalıklı bir hesap olarak belirli komutları çalıştırabilecekleri oturumlar.
Bunlara 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. Oturum içinde çalıştırılabileceğini PowerShell kullanıcılarının sürümünü yönetebilirsiniz; hangi modüllerin oturuma içeri aktarılacağını yönetin; ve hangi cmdlet, işlev ve diğer ad oturum kullanıcılarının çalıştırabileceğini yönetin. RoleDefinitions alanını kullanırken, kullanıcılara grup üyeliğine göre farklı yetenekler verebilirsiniz.
RoleDefinitions 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
Bir oturum yapılandırma dosyası oluşturmanın en kolay yolu New-PSSessionConfigurationFile cmdlet 'ini kullanmaktır. Bu cmdlet doğru sözdizimi 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. Elde edilen yapılandırma dosyası, yol parametresi dışında bir parametre (dosya yolunu belirtir) dahil olmak üzere 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 kullanmayan 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 parametresini NoLanguage olarak ayarlamak, kullanıcıların betik yazma veya çalıştırma ya da değişken kullanma gibi işlemleri gerçekleştirmesini engeller.
Kullanıcıların yalnızca Get cmdlet 'lerini kullanabileceği oturumlara yönelik bir oturum yapılandırması oluşturmak için şunu yazın:
New-PSSessionConfigurationFile -VisibleCmdlets Get-*
-Path .\GetSessions.pssc
Yukarıdaki örnekte, Visiblecmdlet parametresini Get-* olarak ayarlamak, kullanıcıları "Get-" dize değeriyle başlayan adlara sahip cmdlet 'ler ile sınırlar.
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ı tarafından görülebilen komutların bir rol özellikleri 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ı kullanma
Oturum yapılandırması oluştururken veya eklediğinizde oturum yapılandırma dosyası ekleyebilirsiniz. daha sonra oturum yapılandırmasına bir dosya ekleyebilirsiniz.
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şturduğunda NoLanguage. pssc dosyasını kullanır.
Register-PSSessionConfiguration -Name NoLanguage
-Path .\NoLanguage.pssc
Yeni bir NoLanguage oturumu başlatıldığında, kullanıcıların yalnızca PowerShell komutlarına erişimi olur.
Mevcut bir oturum yapılandırmasına bir 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ğine ve oturum yapılandırma dosyasını değiştirmediğini unutmayın.
Örneğin, aşağıdaki komut NoLanguage. pssc dosyasını Lockedoff oturum yapılandırmasına ekler.
Set-PSSessionConfiguration -Name LockedDown
-Path .\NoLanguage.pssc
Kullanıcılar bir oturum oluşturmak için Lockedı oturum yapılandırmasını kullandıklarında, cmdlet 'leri çalıştırabilir, ancak değişken oluşturamaz veya kullanamayacak, değer atayamayacak veya diğer PowerShell dil öğelerini kullanamaz.
Aşağıdaki komut, New-PSSession cmdlet 'ini kullanarak, bir nesne başvurusunu bir $s değişkeninde oturuma kaydederek, bu SNC01 bilgisayarında Lockedaşağı oturum yapılandırmasını kullanan bir oturum oluşturur. Oturum yapılandırmasının ACL (erişim denetim listesi), oturum oluşturmak için kimin tarafından kullanılabileceğini belirler.
$s = New-PSSession -ComputerName Srv01
-ConfigurationName LockedDown
NoLanguage kısıtlamaları Lockedoff oturum yapılandırmasına eklendiğinden, Lockedoff 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 oturumdaki 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ı düzenleniyor
RunAsVirtualAccount ve RunAsVirtualAccountGroups dışında bir oturum yapılandırması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şlatın.
Oturum yapılandırmasında bir 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.
Bir oturum yapılandırma dosyasının etkin kopyasının konumu, oturum yapılandırma nesnesinin ConfigFilePath özelliğinde saklanı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 şuna 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 oturumlarla işe alınır.
RunAsVirtualAccount veya RunAsVirtualAccountGroups ayarlarını değiştirmeniz gerekiyorsa, oturum yapılandırmasını kaldırmalı ve düzenlenmiş 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ı sınamak için Test-PSSessionConfigurationFile cmdlet 'ini kullanın. Bu önemli: dosya sözdizimi ve değerler 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ı sınar.
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 döndürür. Sözdizimi ve değerler geçerli değilse, cmdlet false döndürür.
New-PSSessionConfiguration cmdlet 'inin oluşturduğu dosyalar dahil olmak üzere herhangi bir oturum yapılandırma dosyası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ı kaldırılıyor
Oturum yapılandırma dosyasını bir oturum yapılandırmasından kaldıramazsınız. Ancak, dosyayı varsayılan ayarları kullanan yeni bir dosya ile 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, sonra ö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 varsayılan bir 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.
Bir 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çimli 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 ayırarak ö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ına yönelik arama yapmayı 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, komut tüm uygun oturum yapılandırmalarını döndürmeyebilir.
Get-PSSessionConfiguration |
where {$_.ExecutionPolicy -eq "RemoteSigned"}
aşağıdaki komut, runasuser 'ın Exchange yöneticisi olduğu oturum yapılandırması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ç noktalarda belirli kullanıcılar için kullanılabilen komutları ve ortamı belirlemenizi sağlar.
Notlar
Oturum yapılandırması Ayrıca "boş" oturum olarak bilinen bir oturum türünü destekler. Boş bir oturum türü, seçili komutlarla özel oturumlar oluşturmanıza olanak sağlar. Boş bir oturuma modüller, işlevler veya betikler eklemedıysanız, oturum ifadelerle sınırlandırılmıştır ve pratik bir kullanım olmayabilir. SessionType Özelliği, boş bir oturumla çalışıp çalışmadığını bildirir.
Ayrıca bkz.
Disable-PSSessionConfiguration
New-PSSessionConfigurationFile
Register-PSSessionConfiguration
Test-PSSessionConfigurationFile