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 definujete 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 jestli má relace běžet jako privilegovaný virtuální účet. Další informace o konfiguracích relace najdete v tématu about_Session_Configurations.

Konfigurace relací byly zavedeny v Windows PowerShell 2.0 a konfigurační soubory relací byly zavedeny v Windows PowerShell 3.0. Pokud chcete do konfigurace relace zahrnout konfigurační soubor relace, musíte použít Windows PowerShell 3.0. Uživatelé Windows PowerShell 2.0 (a novější) ale mají vliv na nastavení 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 tak, že napíšete program jazyka C#, který definuje vlastní prostředí runspace, nebo můžete použít konfigurační soubor relace k definování vlastností relací vytvořených pomocí konfigurace relace. Obecně platí, že je jednodušší použít konfigurační soubor relace než napsat program jazyka C#.

Konfigurační soubor relace můžete použít k vytvář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; relací určených pro konkrétní a obsahující pouze moduly potřebné pro tyto úkoly; a relace, ve kterých můžou neprivilegovaní uživatelé spouštět jenom 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 PowerShellu, kterou můžou uživatelé PowerShellu spouštět v relaci; spravovat moduly importované do relace; a spravujte, které rutiny, funkce a aliasy můžou uživatelé relace spouštět. Při použití pole RoleDefinitions můžete uživatelům poskytnout různé možnosti v relaci na základě členství ve skupině.

Další informace o RolíDefinitions a o tom, jak tuto hodnotu definovat, najdete 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é parametry jiné než parametr Cesta (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í parametru LanguageMode na NoLanguage zabrání uživatelům v provádění takových věcí, jako je psaní nebo spouštění skriptů, nebo používání proměnných.

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

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

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

Pokud chcete vytvořit konfiguraci relace pro relace, které běží 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í role, 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, když vytvoříte konfiguraci relace nebo přidáte soubor do konfigurace relace později.

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

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

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

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

Pokud chcete přidat konfigurační soubor relace do existující konfigurace relace, použijte rutinu Set-PSSessionConfiguration a parametr Cesta. To ovlivní všechny nové relace vytvořené pomocí zadané konfigurace 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é používají konfiguraci relace LockedDown k vytvoření relace, budou moct spouštět rutiny, ale nebudou moct vytvářet ani používat proměnné, přiřazovat hodnoty nebo používat jiné jazykové prvky PowerShellu.

Následující příkaz používá rutinu New-PSSession k vytvoření relace v počítači Srv01, která používá konfiguraci relace LockedDown a ukládá 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 se do konfigurace relace LockedDown přidala omezení NoLanguage, budou moct uživatelé v relacích LockedDown spouštět jenom příkazy a rutiny PowerShellu. Například následující dva příkazy používají rutinu Invoke-Command ke spouš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 tím, že načte aktivní kopii konfiguračního souboru relace.

Při použití konfiguračního souboru relace v konfiguraci relace vytvoří PowerShell 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 podobné následující:

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í souboru se použije všechny nové relace, které používají konfiguraci relace.

Pokud potřebujete upravit nastavení RunAsVirtualAccount nebo RunAsVirtualAccountGroups, musíte konfiguraci relace zrušit 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é, uživatelé 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 jsou syntaxe a hodnoty v konfiguračním souboru platné Test-PSSessionConfigurationFile vrátí hodnotu True. Pokud syntaxe a hodnoty nejsou platné, vrátí rutina hodnotu False.

Pomocí Test-PSSessionConfigurationFile můžete otestovat libovolný konfigurační soubor relace, včetně souborů, které New-PSSessionConfiguration rutina 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 ale můžete nahradit novým souborem, který používá výchozí nastavení. Tím se efektivně 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 konfigurační soubor vlastní relace novým souborem.

Například následující příkazy vytvoří výchozí konfigurační soubor relace a 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é pomocí této konfigurace relace.

Zobrazení vlastností konfigurace relace Objekty konfigurace relace, které představují konfigurace relací pomocí konfiguračních souborů relací, 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 formátovanou definici 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. Mějte na paměti, ž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 kvalifikované konfigurace relace.

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

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

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

Pokud chcete zobrazit informace 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.

Poznámky

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 do prázdné relace nepřidáte moduly, funkce nebo skripty, relace je omezená na výrazy a nemusí být z praktického použití. Vlastnost SessionType říká, zda pracujete s prázdnou relací.

Viz také