about_Session_Configuration_Files

Rövid leírás

A munkamenet-konfigurációban (más néven "végpontban") használt munkamenet-konfigurációs fájlok ismertetése a munkamenet-konfigurációt használó munkamenetek környezetének meghatározásához.

Hosszú leírás

A "munkamenet-konfigurációs fájl" egy .pssc fájlnévkiterjesztésű szövegfájl, amely a munkamenet konfigurációs tulajdonságainak és értékeinek kivonattáblájá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 "végpont" olyan helyi számítógép-beá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 azt, hogy a munkamenet emelt szintű virtuális fiókként fusson-e. 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-s, a munkamenet-konfigurációs fájlok pedig a Windows PowerShell 3.0-s kiadásban lettek bevezetve. A munkamenet-konfigurációban a Windows PowerShell 3.0-t kell használnia egy munkamenet-konfigurációs fájl belefoglalásához. A Windows PowerShell 2.0 -s (és újabb) verziójának 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 a munkamenet-konfiguráció munkamenet-tulajdonságainak megadásával. A munkamenetek testreszabásához írjon egy egyéni runspace-t definiáló C#-programot, vagy egy munkamenet-konfigurációs fájllal definiálja 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.

Munkamenet-konfigurációs fájllal olyan elemeket hozhat létre, mint például a magas megbízhatóságú felhasználók számára teljes körűen működő munkamenetek; zárolt munkamenetek, amelyek minimális hozzáférést biztosítanak; meghatározott célokra tervezett munkamenetek, amelyek csak az adott feladatokhoz szükséges modulokat tartalmazzák; és olyan munkamenetek, amelyekben a nem jogosult felhasználók csak emelt szintű fiókként futtathatnak adott 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-e. A munkamenetben futtatható PowerShell-felhasználók verzióját kezelheti; a munkamenetbe importált modulok kezelése; és kezelheti, hogy a felhasználók mely parancsmagokat, függvényeket és aliasokat futtathatják. 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 RoleDefinitions szolgáltatással é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ájl számos tulajdonságértékét.

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

A következő 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 tartalmaz paramétert:

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 a 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 olyan parancsmagokra, amelyek neve a "Get-" sztringértékkel kezdődik.

Ha a felhasználói hitelesítő adatok helyett emelt szintű virtuális fiók alatt futó munkamenetek munkamenet-konfigurációját szeretné 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 meg vannak adva egy szerepkör-képességfájlban, írja be a következőt:

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

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

A munkamenet-konfiguráció létrehozásakor hozzáadhat egy munkamenet-konfigurációs fájlt, vagy később hozzáadhat egy fájlt a munkamenet-konfigurációhoz.

Ha munkamenet-konfiguráció létrehozásakor munkamenet-konfigurációs fájlt szeretne hozzáadni, 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 a NoLanguage-munkamenet konfigurációjának létrehozásakor.

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 értékeket, és nem használhatnak más PowerShell-nyelvi elemeket.

A következő 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 munkamenetre mutató objektumhivatkozást ment a $s változóban. 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 a 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 lekéri a $PSUICulture változó értékét, 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óban a RunAsVirtualAccount és a RunAsVirtualAccountGroups kivételével minden beállítás módosítható a munkamenet-konfiguráció által használt munkamenet-konfigurációs fájl szerkesztésével. Ehhez először válassza ki a munkamenet-konfigurációs fájl aktív példányát.

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ép $pshome\SessionConfig könyvtárában tárolja.

A munkamenet-konfigurációs fájl aktív másolatának helyét a munkamenet-konfigurációs objektum ConfigFilePath tulajdonsága tárolja.

A következő parancs lekéri a NoLanguage-munkamenet konfigurációjának munkamenet-konfigurációs fájljának helyét.

(Get-PSSessionConfiguration -Name NoLanguage).ConfigFilePath

Ez 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, törölje a munkamenet-konfiguráció regisztrációját, és regisztrálja újra 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, Test-PSSessionConfigurationFile Igaz é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

Munkamenet-konfigurá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 az 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

Amikor 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ó munkamenet-konfigurá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 a visszaadott adatokat a Get-Member parancsmagnak adja meg:

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 munkamenet-konfigurációs fájlokat használó munkamenetekben létezik, előfordulhat, hogy a parancs nem adja vissza az összes jogosult munkamenet-konfigurációt.

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

A következő parancs lekéri azokat a munkamenet-konfigurációkat, amelyekben a RunAsUser az Exchange rendszergazdája.

 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 hasznos. A SessionType tulajdonság jelzi, hogy üres munkamenettel dolgozik-e.

Lásd még