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.

about_Session_Configurations

New-PSSession

Disable-PSSessionConfiguration

Enable-PSSessionConfiguration

Get-PSSessionConfiguration

New-PSSessionConfigurationFile

Register-PSSessionConfiguration

Set-PSSessionConfiguration

Test-PSSessionConfigurationFile

Unregister-PSSessionConfiguration

Get-PSSessionCapability

New-PSRoleCapabilityFile