about_Session_Configuration_Files

Rövid leírás

A munkamenet-konfigurációban (más néven végpontként) használt munkamenetkonfigurációs fájlokat ismerteti a munkamenet-konfigurációt használó munkamenetek környezetének meghatározásához.

Hosszú leírás

Ezek az információk csak a Windows rendszeren futó PowerShellre vonatkoznak.

A "munkamenet-konfigurációs fájl" egy .pssc fájlnévkiterjesztéssel rendelkező szövegfájl, amely a munkamenet konfigurációs tulajdonságainak és értékeinek kivonattáblázatát tartalmazza. A munkamenet-konfiguráció tulajdonságainak beállításához használhat munkamenet-konfigurációs fájlt. Ezzel meghatározza az adott munkamenet-konfigurációt használó PowerShell-munkamenetek környezetét.

A munkamenet-konfigurációs fájlok megkönnyítik az egyéni munkamenet-konfigurációk létrehozását összetett C#-szerelvények vagy szkriptek használata nélkül.

A "munkamenet-konfiguráció" vagy a "végpont" olyan helyi számítógépbeállítások gyűjteménye, amelyek meghatározzák, hogy mely felhasználók hozhatnak létre munkameneteket a számítógépen; mely parancsokat futtathatják a felhasználók ezekben a munkamenetekben; és hogy a munkamenetnek kiemelt virtuális fiókként kell-e futnia. A munkamenet-konfigurációkkal kapcsolatos további tudnivalókért tekintse meg az about_Session_Configuration_Files című témakört.

A munkamenet-konfigurációk a Windows PowerShell 2.0-ban, a munkamenet-konfigurációs fájlok pedig a Windows PowerShell 3.0-ban lettek bevezetve. A munkamenet-konfigurációs fájlnak a Windows PowerShell 3.0-s használatával kell szerepelnie. A Windows PowerShell 2.0 (és újabb) felhasználóira azonban hatással vannak a munkamenet-konfiguráció beállításai.

Egyéni munkamenetek létrehozása

A PowerShell-munkamenetek számos funkcióját testre szabhatja egy munkamenet-konfiguráció munkamenettulajdonságainak megadásával. A munkameneteket testre szabhatja egy egyéni futtatóteret meghatározó C#-program megírásával, vagy egy munkamenetkonfigurációs fájllal definiálhatja a munkamenet-konfigurációval létrehozott munkamenetek tulajdonságait. Általában egyszerűbb a munkamenet-konfigurációs fájl használata, mint egy C#-program írása.

Munkamenetkonfigurációs fájl használatával olyan elemeket hozhat létre, mint a teljes körűen működő munkamenetek a megbízható felhasználók számára; zárolt munkamenetek, amelyek minimális hozzáférést biztosítanak; meghatározottakra tervezett munkamenetek, amelyek csak az adott feladatokhoz szükséges modulokat tartalmazzák; és olyan munkamenetek, amelyekben a nem jogosult felhasználók csak kiemelt fiókként futtathatnak bizonyos parancsokat.

Emellett azt is kezelheti, hogy a munkamenet felhasználói használhatják-e a PowerShell nyelvi elemeit, például a szkriptblokkokat, vagy csak parancsokat futtathatnak. Kezelheti a PowerShell-felhasználók munkamenetben futtatható verzióját; a munkamenetbe importált modulok kezelése; és kezelheti a munkamenet-felhasználók által futtatható parancsmagokat, függvényeket és aliasokat. A RoleDefinitions mező használatakor a csoporttagság alapján különböző képességeket adhat a felhasználóknak a munkamenetben.

A Szerepkördefiníciókkal és az érték meghatározásával kapcsolatos további információkért tekintse meg a New-PSRoleCapabilityFile parancsmag súgótémakörét.

Munkamenet-konfigurációs fájl létrehozása

A munkamenet-konfigurációs fájl létrehozásának legegyszerűbb módja a New-PSSessionConfigurationFile parancsmag használata. Ez a parancsmag létrehoz egy fájlt, amely a megfelelő szintaxist és formátumot használja, és amely automatikusan ellenőrzi a konfigurációs fájltulajdonságok számos értékét.

A munkamenet-konfigurációs fájlban beállítható tulajdonságok részletes leírását a New-PSSessionConfigurationFile parancsmag súgótémakörében találja.

Az alábbi parancs létrehoz egy munkamenet-konfigurációs fájlt, amely az alapértelmezett értékeket használja. Az eredményként kapott konfigurációs fájl csak az alapértelmezett értékeket használja, mert az Elérési út paraméteren kívül (amely megadja a fájl elérési útját) nem tartalmazza a következő paramétereket:

New-PSSessionConfigurationFile -Path .\Defaults.pssc

Az új konfigurációs fájl alapértelmezett szövegszerkesztőben való megtekintéséhez használja a következő parancsot:

Invoke-Item -Path .\Defaults.pssc

Ha olyan munkamenet-konfigurációt szeretne létrehozni, amelyben a felhasználó parancsokat futtathat, de nem használhatja a PowerShell-nyelv más elemeit, írja be a következőt:

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

Az előző parancsban a LanguageMode paraméter NoLanguage értékre állítása megakadályozza, hogy a felhasználók olyan műveleteket hajtsanak végre, mint például szkriptek írása vagy futtatása, vagy változók használata.

Ha olyan munkamenet-konfigurációt szeretne létrehozni, amelyben a felhasználók csak Get parancsmagokat használhatnak, írja be a következőt:

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

Az előző példában a VisibleCmdlets paraméter Get-* értékre állítása korlátozza a felhasználókat a "Get-" sztringértékkel kezdődő neveket tartalmazó parancsmagokra.

Ha a felhasználó hitelesítő adatai helyett egy kiemelt virtuális fiókban futó munkamenet-konfigurációt szeretne létrehozni, írja be a következőt:

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

Ha olyan munkamenet-konfigurációt szeretne létrehozni, amelyben a felhasználó számára látható parancsok egy szerepkör-képességfájlban vannak megadva, írja be a következőt:

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

Munkamenet-konfigurációs fájl használata

Munkamenetkonfigurációs fájlokat is felvehet munkamenetkonfiguráció létrehozásakor, vagy hozzáadhat egy fájlt a munkamenet-konfigurációhoz egy későbbi időpontban.

Ha munkamenetkonfiguráció létrehozásakor be szeretne vonni egy munkamenet-konfigurációs fájlt, használja a Register-PSSessionConfiguration parancsmag Elérési út paraméterét.

A következő parancs például a NoLanguage.pssc fájlt használja, amikor létrehoz egy NoLanguage-munkamenet-konfigurációt.

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

Új NoLanguage-munkamenet indításakor a felhasználók csak PowerShell-parancsokhoz férhetnek hozzá.

Ha egy munkamenet-konfigurációs fájlt szeretne hozzáadni egy meglévő munkamenet-konfigurációhoz, használja a Set-PSSessionConfiguration parancsmagot és az Elérési út paramétert. Ez hatással van a megadott munkamenet-konfigurációval létrehozott új munkamenetekre. Vegye figyelembe, hogy a Set-PSSessionConfiguration parancsmag magát a munkamenetet módosítja, és nem módosítja a munkamenet konfigurációs fájlját.

A következő parancs például hozzáadja a NoLanguage.pssc fájlt a LockedDown-munkamenet konfigurációhoz.

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

Amikor a felhasználók a LockedDown-munkamenet konfigurációját használják egy munkamenet létrehozásához, parancsmagokat futtathatnak, de nem hozhatnak létre vagy használhatnak változókat, nem rendelhetnek hozzájuk értékeket, és nem használhatnak más PowerShell-nyelvi elemeket.

Az alábbi parancs a New-PSSession parancsmaggal hoz létre egy munkamenetet az Srv01 számítógépen, amely a LockedDown-munkamenet konfigurációját használja, és a $s változóban menti a munkamenetre mutató objektumhivatkozást. A munkamenet-konfiguráció ACL -je (hozzáférés-vezérlési listája) határozza meg, hogy ki használhatja a munkamenet létrehozásához.

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

Mivel a NoLanguage-korlátozások hozzá lettek adva a LockedDown-munkamenet konfigurációjához, a LockedDown-munkamenetek felhasználói csak PowerShell-parancsokat és parancsmagokat futtathatnak. Az alábbi két parancs például az Invoke-Command parancsmaggal futtat parancsokat a $s változóban hivatkozott munkamenetben. Az első parancs, amely a Get-UICulture parancsmagot futtatja, és nem használ változókat, sikeres lesz. A második parancs, amely a $PSUICulture változó értékét kapja, meghiúsul.

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

Munkamenet-konfigurációs fájl szerkesztése

A munkamenet-konfiguráció összes beállítása a RunAsVirtualAccount és a RunAsVirtualAccountGroups kivételével módosítható a munkamenet-konfiguráció által használt munkamenet-konfigurációs fájl szerkesztésével. Ehhez először a munkamenet-konfigurációs fájl aktív másolatát kell lefoglalnia.

Amikor munkamenet-konfigurációs fájlt használ egy munkamenet-konfigurációban, a PowerShell létrehozza a munkamenet-konfigurációs fájl aktív másolatát, és a helyi számítógépen található $pshome\SessionConfig könyvtárban tárolja.

A munkamenet-konfigurációs fájl aktív másolatának helye a munkamenet-konfigurációs objektum ConfigFilePath tulajdonságában van tárolva.

Az alábbi parancs lekéri a NoLanguage-munkamenet konfigurációjának munkamenetkonfigurációs fájljának helyét.

(Get-PSSessionConfiguration -Name NoLanguage).ConfigFilePath

A parancs a következőhöz hasonló fájlelérési utat ad vissza:

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

A .pssc fájlt bármely szövegszerkesztőben szerkesztheti. A fájl mentése után a munkamenet-konfigurációt használó új munkamenetek fogják használni.

Ha módosítania kell a RunAsVirtualAccount vagy a RunAsVirtualAccountGroups beállításait, meg kell szüntetnie a munkamenet-konfiguráció regisztrációját, és újra kell regisztrálnia a szerkesztett értékeket tartalmazó munkamenet-konfigurációs fájlt.

Munkamenet-konfigurációs fájl tesztelése

A Test-PSSessionConfigurationFile parancsmaggal manuálisan szerkesztett munkamenet-konfigurációs fájlokat tesztelhet. Ez fontos: ha a fájl szintaxisa és értékei érvénytelenek, a felhasználók nem fogják tudni használni a munkamenet-konfigurációt munkamenet létrehozásához.

Az alábbi parancs például a NoLanguage-munkamenet konfigurációjának aktív munkamenet-konfigurációs fájlját teszteli.

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

Ha a konfigurációs fájl szintaxisa és értékei érvényesek, a Test-PSSessionConfigurationFile true értéket ad vissza. Ha a szintaxis és az értékek érvénytelenek, akkor a parancsmag hamis értéket ad vissza.

A Test-PSSessionConfigurationFile használatával bármilyen munkamenet-konfigurációs fájlt tesztelhet, beleértve a New-PSSessionConfiguration parancsmag által létrehozott fájlokat is. További információt a Test-PSSessionConfigurationFile parancsmag súgótémakörében talál.

Munkamenet-konfigurációs fájl eltávolítása

Munkamenetkonfigurációs fájl nem távolítható el a munkamenet-konfigurációból. A fájlt azonban lecserélheti egy új fájlra, amely az alapértelmezett beállításokat használja. Ez gyakorlatilag megszakítja az eredeti konfigurációs fájl által használt beállításokat.

Munkamenet-konfigurációs fájl cseréjéhez hozzon létre egy új munkamenet-konfigurációs fájlt, amely az alapértelmezett beállításokat használja, majd a Set-PSSessionConfiguration parancsmaggal cserélje le az egyéni munkamenet-konfigurációs fájlt az új fájlra.

A következő parancsok például létrehoznak egy alapértelmezett munkamenet-konfigurációs fájlt, majd lecserélik az aktív munkamenet-konfigurációs fájlt a NoLanguage-munkamenet konfigurációjában.

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

Ha ezek a parancsok befejeződnek, a NoLanguage-munkamenet konfigurációja teljes nyelvi támogatást (az alapértelmezett beállítást) biztosít az adott munkamenet-konfigurációval létrehozott összes munkamenethez.

Munkamenet-konfiguráció tulajdonságainak megtekintése A munkamenet-konfigurációkat munkamenet-konfigurációs fájlokkal ábrázoló munkamenetkonfigurációs objektumok további tulajdonságokkal rendelkeznek, amelyek megkönnyítik a munkamenet-konfiguráció felderítését és elemzését. (Vegye figyelembe, hogy az alább látható típusnév tartalmaz egy formázott nézetdefiníciót.) A tulajdonságok megtekintéséhez futtassa a Get-PSSessionConfiguration parancsmagot, és piping a visszaadott adatokat a Get-Member parancsmagba:

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

Ezek a tulajdonságok megkönnyítik adott munkamenet-konfigurációk keresését. A ExecutionPolicy tulajdonsággal például megkereshet egy munkamenet-konfigurációt, amely támogatja a RemoteSigned végrehajtási szabályzattal rendelkező munkameneteket. Vegye figyelembe, hogy mivel a ExecutionPolicy tulajdonság csak munkamenetkonfigurációs fájlokat használó munkameneteken létezik, előfordulhat, hogy a parancs nem minden jogosult munkamenet-konfigurációt ad vissza.

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

Az alábbi parancs lekéri azokat a munkamenet-konfigurációkat, amelyekben a RunAsUser az Exchange-rendszergazda.

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

A konfigurációhoz társított szerepkör-definíciókkal kapcsolatos információk megtekintéséhez használja a Get-PSSessionCapability parancsmagot. Ez a parancsmag lehetővé teszi, hogy meghatározza az adott végpontok adott felhasználói számára elérhető parancsokat és környezetet.

Jegyzetek

A munkamenet-konfigurációk az úgynevezett "üres" munkamenettípust is támogatják. Az Üres munkamenettípus lehetővé teszi egyéni munkamenetek létrehozását a kijelölt parancsokkal. Ha nem ad hozzá modulokat, függvényeket vagy szkripteket egy üres munkamenethez, a munkamenet kifejezésekre korlátozódik, és nem feltétlenül praktikus. A SessionType tulajdonság azt jelzi, hogy üres munkamenettel dolgozik-e.

Lásd még