about_Session_Configuration_Files

Krátký popis

Popisuje konfigurační soubory relace, které se používají v konfiguraci relace (označované také jako koncový bod) k definování prostředí relací, které používají konfiguraci relace.

Dlouhý popis

"Konfigurační soubor relace" je textový soubor s příponou názvu souboru .pssc, která obsahuje tabulku hash vlastností a hodnot konfigurace relace. Konfigurační soubor relace můžete použít k nastavení vlastností konfigurace relace. Tím se definuje prostředí všech relací PowerShellu, které tuto konfiguraci relace používají.

Konfigurační soubory relací usnadňují vytváření vlastních konfigurací relací bez použití složitých sestavení nebo skriptů jazyka C#.

"Konfigurace relace" nebo "koncový bod" je kolekce nastavení místního počítače, která určují například, které uživatele mohou vytvářet relace v počítači; které příkazy mohou uživatelé spouštět v těchto relacích; a zda má být relace spuštěna jako privilegovaný virtuální účet. Další informace o konfiguracích relace najdete v tématu about_Session_Configurations.

Konfigurace relací byly zavedeny ve Windows PowerShellu 2.0 a konfigurační soubory relací byly zavedeny ve Windows PowerShellu 3.0. K zahrnutí konfiguračního souboru relace do konfigurace relace musíte použít Windows PowerShell 3.0. Uživatelé prostředí Windows PowerShell 2.0 (a novější) jsou však ovlivněni nastavením v konfiguraci relace.

Vytváření vlastních relací

Mnoho funkcí relace PowerShellu můžete přizpůsobit zadáním vlastností relace v konfiguraci relace. Relaci můžete přizpůsobit napsáním programu jazyka C#, který definuje vlastní prostředí runspace, nebo můžete pomocí konfiguračního souboru relace definovat vlastnosti relací vytvořených pomocí konfigurace relace. Obecně platí, že je jednodušší použít konfigurační soubor relace než psát program v jazyce C#.

Konfigurační soubor relace můžete použít k vytvoření položek, jako jsou plně funkční relace pro vysoce důvěryhodné uživatele; uzamčené relace, které umožňují minimální přístup; zasedání určená pro konkrétní a obsahují pouze moduly potřebné pro tyto úkoly; a relace, ve kterých můžou neprivilegovaní uživatelé spouštět pouze konkrétní příkazy jako privilegovaný účet.

Kromě toho můžete spravovat, jestli uživatelé relace můžou používat elementy jazyka PowerShellu, jako jsou bloky skriptů, nebo jestli můžou spouštět jenom příkazy. Můžete spravovat verzi powershellových uživatelů, kteří můžou běžet v relaci; spravovat moduly importované do relace; a spravujte, které rutiny, funkce a aliasy mohou uživatelé relace spouštět. Při použití pole RoleDefinitions můžete uživatelům udělit různé možnosti v relaci na základě členství ve skupině.

Další informace o RolíDefinitions a o tom, jak definovat tuto hodnotu, naleznete v tématu nápovědy pro rutinu New-PSRoleCapabilityFile.

Vytvoření konfiguračního souboru relace

Nejjednodušší způsob, jak vytvořit konfigurační soubor relace, je pomocí rutiny New-PSSessionConfigurationFile. Tato rutina vygeneruje soubor, který používá správnou syntaxi a formát a který automaticky ověřuje mnoho hodnot vlastností konfiguračního souboru.

Podrobné popisy vlastností, které můžete nastavit v konfiguračním souboru relace, najdete v tématu nápovědy pro rutinu New-PSSessionConfigurationFile.

Následující příkaz vytvoří konfigurační soubor relace, který používá výchozí hodnoty. Výsledný konfigurační soubor používá pouze výchozí hodnoty, protože nejsou zahrnuty žádné jiné parametry než parametr Path (který určuje cestu k souboru):

New-PSSessionConfigurationFile -Path .\Defaults.pssc

Pokud chcete zobrazit nový konfigurační soubor ve výchozím textovém editoru, použijte následující příkaz:

Invoke-Item -Path .\Defaults.pssc

Pokud chcete vytvořit konfiguraci relace pro relace, ve kterých může uživatel spouštět příkazy, ale nepoužívá jiné prvky jazyka PowerShellu, zadejte:

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

V předchozím příkazu nastavením parametru LanguageMode na NoLanguage zabráníte uživatelům dělat takové věci, jako je psaní nebo spouštění skriptů nebo použití proměnných.

Pokud chcete vytvořit konfiguraci relace pro relace, ve kterých můžou uživatelé používat jenom rutiny Get, zadejte:

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

Nastavení parametru VisibleCmdlets na hodnotu Get-* v předchozím příkladu omezuje uživatele na rutiny, které mají názvy začínající řetězcovou hodnotou Get-.

Pokud chcete vytvořit konfiguraci relace pro relace spuštěné pod privilegovaným virtuálním účtem místo přihlašovacích údajů uživatele, zadejte:

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

Pokud chcete vytvořit konfiguraci relace pro relace, ve kterých jsou příkazy viditelné pro uživatele zadané v souboru funkcí rolí, zadejte:

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

Použití konfiguračního souboru relace

Konfigurační soubor relace můžete zahrnout při vytváření konfigurace relace nebo můžete přidat soubor do konfigurace relace později.

Pokud chcete při vytváření konfigurace relace zahrnout konfigurační soubor relace, použijte parametr Path rutiny Register-PSSessionConfiguration.

Například následující příkaz při vytváření konfigurace relace NoLanguage.pssc používá soubor NoLanguage.pssc.

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

Když se spustí nová relace NoLanguage, uživatelé budou mít přístup jenom k příkazům PowerShellu.

Chcete-li přidat konfigurační soubor relace do existující konfigurace relace, použijte rutinu Set-PSSessionConfiguration a parametr Path. To má vliv na nové relace vytvořené se zadanou konfigurací relace. Všimněte si, že rutina Set-PSSessionConfiguration změní samotnou relaci a nezmění konfigurační soubor relace.

Například následující příkaz přidá soubor NoLanguage.pssc do konfigurace relace LockedDown.

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

Když uživatelé k vytvoření relace používají konfiguraci relace LockedDown, budou moct spouštět rutiny, ale nebudou moct vytvářet ani používat proměnné, přiřazovat hodnoty nebo používat jiné prvky jazyka PowerShellu.

Následující příkaz pomocí rutiny New-PSSession vytvoří relaci v počítači Srv01, která používá konfiguraci relace LockedDown a uloží odkaz na objekt na relaci v proměnné $s. Seznam ACL (seznam řízení přístupu) konfigurace relace určuje, kdo ho může použít k vytvoření relace.

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

Vzhledem k tomu, že byla do konfigurace relace LockedDown přidána omezení NoLanguage, uživatelé v relacích LockedDown budou moct spouštět pouze příkazy a rutiny PowerShellu. Například následující dva příkazy používají rutinu Invoke-Command ke spuštění příkazů v relaci odkazované v proměnné $s. První příkaz, který spustí rutinu Get-UICulture a nepoužívá žádné proměnné, proběhne úspěšně. Druhý příkaz, který získá hodnotu proměnné $PSUICulture, selže.

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

Úprava konfiguračního souboru relace

Všechna nastavení v konfiguraci relace s výjimkou RunAsVirtualAccount a RunAsVirtualAccountGroups je možné upravit úpravou konfiguračního souboru relace používaného konfigurací relace. Začněte vyhledáním aktivní kopie konfiguračního souboru relace.

Pokud použijete konfigurační soubor relace v konfiguraci relace, PowerShell vytvoří aktivní kopii konfiguračního souboru relace a uloží ho do adresáře $pshome\SessionConfig na místním počítači.

Umístění aktivní kopie konfiguračního souboru relace je uloženo ve vlastnosti ConfigFilePath objektu konfigurace relace.

Následující příkaz získá umístění konfiguračního souboru relace pro konfiguraci relace NoLanguage.

(Get-PSSessionConfiguration -Name NoLanguage).ConfigFilePath

Tento příkaz vrátí cestu k souboru podobnou této:

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

Soubor .pssc můžete upravit v libovolném textovém editoru. Po uložení bude soubor použit pro všechny nové relace, které používají konfiguraci relace.

Pokud potřebujete upravit nastavení RunAsVirtualAccount nebo RunAsVirtualAccountGroups, musíte zrušit registraci konfigurace relace a znovu zaregistrovat konfigurační soubor relace, který obsahuje upravené hodnoty.

Testování konfiguračního souboru relace

Pomocí rutiny Test-PSSessionConfigurationFile otestujte ručně upravené konfigurační soubory relace. To je důležité: Pokud syntaxe souboru a hodnoty nejsou platnými uživateli, nebudou moct k vytvoření relace použít konfiguraci relace.

Následující příkaz například otestuje konfigurační soubor aktivní relace konfigurace relace NoLanguage.

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

Pokud syntaxe a hodnoty v konfiguračním souboru jsou platné Test-PSSessionConfigurationFile vrátí hodnotu True. Pokud syntaxe a hodnoty nejsou platné, vrátí rutina hodnotu False.

Test-PSSessionConfigurationFile můžete použít k otestování libovolného konfiguračního souboru relace, včetně souborů, které rutina New-PSSessionConfiguration vytvoří. Další informace najdete v tématu nápovědy pro rutinu Test-PSSessionConfigurationFile.

Odebrání konfiguračního souboru relace

Konfigurační soubor relace nelze odebrat z konfigurace relace. Soubor však můžete nahradit novým souborem, který používá výchozí nastavení. Tím se zruší nastavení používaná původním konfiguračním souborem.

Pokud chcete nahradit konfigurační soubor relace, vytvořte nový konfigurační soubor relace, který používá výchozí nastavení, a pak pomocí rutiny Set-PSSessionConfiguration nahraďte vlastní konfigurační soubor relace novým souborem.

Například následující příkazy vytvoří výchozí konfigurační soubor relace a pak nahradí aktivní konfigurační soubor relace v konfiguraci relace NoLanguage.

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

Po dokončení těchto příkazů bude konfigurace relace NoLanguage ve skutečnosti poskytovat úplnou podporu jazyka (výchozí nastavení) pro všechny relace vytvořené s danou konfigurací relace.

Zobrazení vlastností konfigurace relace Objekty konfigurace relace, které představují konfigurace relací pomocí konfiguračních souborů relace, mají další vlastnosti, které usnadňují zjišťování a analýzu konfigurace relace. (Všimněte si, že níže uvedený název typu obsahuje definici formátovaného zobrazení.) Vlastnosti můžete zobrazit spuštěním rutiny Get-PSSessionConfiguration a propojením vrácených dat do rutiny Get-Member:

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...

Tyto vlastnosti usnadňují vyhledávání konkrétních konfigurací relací. Pomocí vlastnosti ExecutionPolicy můžete například najít konfiguraci relace, která podporuje relace se zásadami provádění RemoteSigned. Všimněte si, že vzhledem k tomu, že vlastnost ExecutionPolicy existuje pouze u relací, které používají konfigurační soubory relace, nemusí příkaz vrátit všechny oprávněné konfigurace relace.

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

Následující příkaz získá konfigurace relací, ve kterých runAsUser je správce Exchange.

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

K zobrazení informací o definicích rolí přidružených ke konfiguraci použijte rutinu Get-PSSessionCapability. Tato rutina umožňuje určit příkazy a prostředí dostupné konkrétním uživatelům v konkrétních koncových bodech.

Notes

Konfigurace relací také podporují typ relace označovaný jako "prázdná" relace. Prázdný typ relace umožňuje vytvářet vlastní relace s vybranými příkazy. Pokud nepřidáte moduly, funkce nebo skripty do prázdné relace, relace je omezená na výrazy a nemusí být praktická. SessionType vlastnost říká, zda pracujete s prázdnou relací.

Viz také