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