Weboldal keresés

a munkamenet-konfigurációs fájlokról


Rövid leírás

Leírja azokat a munkamenet-konfigurációs fájlokat, amelyeket a munkamenet-konfigurációban (más néven "végpontként") használnak a munkamenet-konfigurációt használó munkamenetek környezetének meghatározására.

Hosszú leírás

Ez az információ csak a Windows rendszeren futó PowerShellre vonatkozik.

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 hash táblázatát tartalmazza. A munkamenet konfigurációs fájlja segítségével beállíthatja a munkamenet-konfiguráció tulajdonságait. 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 bonyolult C#-összeállítások vagy szkriptek használata nélkül.

A "munkamenet-konfiguráció" vagy "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 privilegizált virtuális fiókként kell-e futnia. A munkamenet-konfigurációkkal kapcsolatos további információkért lásd: about_Session_Configurations.

A munkamenet-konfigurációkat a Windows PowerShell 2.0, a munkamenet-konfigurációs fájlokat pedig a Windows PowerShell 3.0-ban vezették be. A Windows PowerShell 3.0-t kell használnia egy munkamenet-konfigurációs fájl munkamenet-konfigurációba való felvételéhez. 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-munkamenet számos funkcióját személyre szabhatja, ha a munkamenet-konfigurációban megadja a munkamenet tulajdonságait. Testreszabhat egy munkamenetet egy egyéni futási területet definiáló C# program írásával, vagy egy szekciókonfigurációs fájl segítségével meghatározhatja a szekciókonfigurációval létrehozott munkamenetek tulajdonságait. Általános szabály, hogy könnyebb a munkamenet konfigurációs fájlját használni, mint egy C# programot írni.

A munkamenet-konfigurációs fájl segítségével elemeket hozhat létre, például teljesen működő munkameneteket a nagyon megbízható felhasználók számára; zárt munkamenetek, amelyek minimális hozzáférést tesznek lehetővé; olyan munkamenetek, amelyeket bizonyos feladatokra terveztek, és amelyek csak az adott feladatokhoz szükséges modulokat tartalmazzák; és olyan munkamenetek, ahol a jogosulatlan felhasználók csak meghatározott parancsokat futtathatnak privilegizált fiókként.

Ezen kívül beállíthatja, hogy a munkamenet felhasználói használhatják-e a PowerShell nyelvi elemeket, például a szkriptblokkokat, vagy csak parancsokat futtathatnak. Kezelheti a PowerShell-felhasználók munkamenetben futtatható verzióját; kezelheti, hogy mely modulok kerüljenek importálásra a munkamenetbe; és kezelheti, hogy a felhasználók mely parancsmagokat, függvényeket és álneveket 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-ról és az érték meghatározásáról további információé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. Ez a parancsmag olyan fájlt hoz létre, amely a megfelelő szintaxist és formátumot használja, és automatikusan ellenőrzi a konfigurációs fájl tulajdonságainak 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.

A következő parancs létrehoz egy munkamenet konfigurációs fájlt, amely az alapértelmezett értékeket használja. Az eredményül kapott konfigurációs fájl csak az alapértelmezett értékeket használja, mivel a Path paraméteren kívül (amely a fájl elérési útját határozza meg) nem szerepel más paraméter:

New-PSSessionConfigurationFile -Path .\Defaults.pssc

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

Invoke-Item -Path .\Defaults.pssc

Ha munkamenet-konfigurációt szeretne létrehozni olyan munkamenetekhez, amelyekben a felhasználó futtathat parancsokat, de nem használhatja a PowerShell nyelv egyéb elemeit, írja be:

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 dolgokat tegyenek, mint például szkriptek írása vagy futtatása, vagy változók használata.

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

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

Az előző példában a VisibleCmdlets paraméter Get-* értékre állítása a felhasználókat azokra a parancsmagokra korlátozza, amelyek neve a „Get-” karakterlánc értékkel kezdődik.

Ha a felhasználói hitelesítési adatok helyett privilegizált virtuális fiók alatt futó munkamenetekhez szeretne munkamenet-konfigurációt létrehozni, írja be:

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

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

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

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

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

Ha a munkamenet-konfiguráció létrehozásakor bele szeretne foglalni egy munkamenet-konfigurációs fájlt, használja a Register-PSSessionConfiguration parancsmag elérési útja paraméterét.

Például a következő parancs a NoLanguage.pssc fájlt használja a NoLanguage munkamenet-konfiguráció létrehozásakor.

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

Amikor egy új NoLanguage-munkamenet indul, a felhasználók csak a 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 a Path paramétert. Ez hatással van a megadott szekció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.

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

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

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

A következő parancs a New-PSSession parancsmag segítségével munkamenetet hoz létre az Srv01 számítógépen, amely a LockedDown szekciókonfigurációt használja, és elmenti a munkamenetre mutató objektumhivatkozást a $s változóban. A szekciókonfiguráció ACL-je (access control list) határozza meg, hogy ki használhatja azt munkamenet létrehozásához.

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

Mivel a NoLanguage megszorítások hozzáadásra kerültek a LockedDown munkamenet-konfigurációhoz, a LockedDown munkamenetek felhasználói csak PowerShell-parancsokat és parancsmagokat futtathatnak. Például a következő két parancs az Invoke-Command parancsmagot használja a parancsok futtatására a $s változóban hivatkozott munkamenetben. Az első parancs, amely a Get-UICulture parancsmagot futtatja, és nem használ változókat, sikeres. A második parancs, amely megkapja 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ójában a RunAsVirtualAccount és a RunAsVirtualAccountGroups kivételével minden beállítás módosítható a munkamenet konfigurációja által használt munkamenet konfigurációs fájl szerkesztésével. Ehhez először keresse meg a munkamenet konfigurációs fájl aktív példányát.

Ha 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 eltárolja azt a helyi számítógép $pshome\SessionConfig könyvtárában.

A munkamenet konfigurációs fájl aktív példányának helyét a munkamenet konfigurációs objektum ConfigFilePath tulajdonsága tárolja.

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

(Get-PSSessionConfiguration -Name NoLanguage).ConfigFilePath

Ez a parancs a következőhöz hasonló fájl elérési utat ad vissza:

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

A .pssc fájlt bármilyen szövegszerkesztőben szerkesztheti. A fájl mentése után a munkamenet-konfigurációt használó minden új munkamenet alkalmazza.

Ha módosítania kell a RunAsVirtualAccount vagy a RunAsVirtualAccountGroups beállításait, törölnie kell a munkamenet-konfiguráció regisztrációját, és újra kell regisztrálnia egy munkamenet-konfigurációs fájlt, amely tartalmazza a szerkesztett értékeket.

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

A Test-PSSessionConfigurationFile parancsmag segítségével tesztelheti a manuálisan szerkesztett munkamenet-konfigurációs fájlokat. Ez fontos: ha a fájl szintaxisa és értékei nem érvényesek, a felhasználók nem tudják használni a munkamenet konfigurációját a munkamenet létrehozásához.

A következő parancs például a NoLanguage szekciókonfiguráció aktív szekció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 nem érvényesek, akkor a parancsmag False értéket ad vissza.

A Test-PSSessionConfigurationFile segítségével bármely munkamenet-konfigurációs fájlt tesztelhet, beleértve a New-PSSessionConfiguration parancsmag által létrehozott fájlokat is. További információért tekintse meg a Test-PSSessionConfigurationFile parancsmag súgótémakörét.

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

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

A munkamenet-konfigurációs fájl lecserélésé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 parancsmag segítségével 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 szekciókonfigurációs fájlt a NoLanguage szekciókonfigurációban.

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

Amikor ezek a parancsok befejeződnek, a NoLanguage munkamenet-konfiguráció ténylegesen teljes nyelvi támogatást nyújt (az alapértelmezett beállítás) az adott szekciókonfigurációval létrehozott összes munkamenethez.

A munkamenet konfigurációjának tulajdonságainak megtekintése A munkamenet konfigurációs fájlokat használó munkamenet konfigurációkat képviselő munkamenet konfigurációs objektumok további tulajdonságokkal rendelkeznek, amelyek megkönnyítik a munkamenet konfigurációjának felfedezését és elemzését. (Ne feledje, hogy az alább látható típusnév egy formázott nézetdefiníciót is tartalmaz.) A tulajdonságok megtekintéséhez futtassa a Get-PSSessionConfiguration parancsmagot, és a visszaadott adatokat a Get-Member parancsmagba továbbítja:

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 az adott munkamenet-konfigurációk keresését. Az ExecutionPolicy tulajdonság segítségével például kereshet olyan munkamenet-konfigurációt, amely támogatja a RemoteSigned végrehajtási házirenddel rendelkező munkameneteket. Vegye figyelembe, hogy mivel az ExecutionPolicy tulajdonság csak a munkamenet-konfigurációs fájlokat használó munkameneteken létezik, előfordulhat, hogy a parancs nem adja vissza az összes megfelelő munkamenet-konfigurációt.

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

A következő parancs olyan munkamenet-konfigurációkat kap, 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 felhasználók számára elérhető parancsokat és környezetet adott végpontokon.

Megjegyzések

A munkamenet-konfigurációk az „üres” munkamenetnek nevezett munkamenet-típust is támogatják. Az Üres szekciótípus lehetővé teszi egyéni munkamenetek létrehozását a kiválasztott parancsokkal. Ha nem ad hozzá modulokat, függvényeket vagy parancsfájlokat egy üres munkamenethez, akkor a munkamenet kifejezésekre korlátozódik, és előfordulhat, hogy nem lesz gyakorlati haszna. A SessionType tulajdonság megmondja, hogy üres munkamenettel dolgozik-e vagy sem.

Lásd még

  • about_Session_Configurations
  • New-PSRoleCapabilityFile
  • Új-PSSession
  • Get-PSSessionCapability
  • Disable-PSSessionConfiguration
  • Enable-PSSessionConfiguration
  • Get-PSSessionConfiguration
  • Register-PSSessionConfiguration
  • Set-PSSessionConfiguration
  • Unregister-PSSessionConfiguration
  • New-PSSessionConfigurationFile
  • Test-PSSessionConfigurationFile

Kapcsolódó cikkek