InitialSessionState létrehozása
A PowerShell-parancsok egy runspace-en futnak. A PowerShell alkalmazásban való futtatásához létre kell hoznia egy System.Management.Automation.Runspaces.Runspace objektumot. Minden runspace rendelkezik társított System.Management.Automation.Runspaces.InitialSessionState objektummal. Az InitialSessionState megadja a runspace jellemzőit, például hogy mely parancsok, változók és modulok érhetők el az adott runspace-hez.
Alapértelmezett InitialSessionState létrehozása
Az InitialSessionState osztály CreateDefault és CreateDefault2 metódusával létrehozható egy InitialSessionState objektum. A CreateDefault metódus létrehoz egy InitialSessionState-t az összes betöltött beépített paranccsal, míg a CreateDefault2 metódus csak a PowerShell gazdagépéhez szükséges parancsokat (a Microsoft.PowerShell.Core modul parancsai) tölt be.
Ha tovább szeretné korlátozni a gazdaalkalmazásban elérhető parancsokat, korlátozott runspace-t kell létrehoznia. További információ: Korlátozott runspace létrehozása.
Az alábbi kód bemutatja, hogyan hozhat létre egy InitialSessionState-t, hogyan rendelheti hozzá egy runspace-hez, hogyan adhat hozzá parancsokat a folyamathoz a runspace-ban, és hogyan hívhatja meg a parancsokat. További információ a parancsok hozzáadásáról és a parancsokról: Parancsok hozzáadása és invoking (Parancsok hozzáadása és invoking ).
namespace SampleHost
{
using System;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
class HostP4b
{
static void Main(string[] args)
{
// Call the InitialSessionState.CreateDefault method to create
// an empty InitialSessionState object, and then add the
// elements that will be available when the runspace is opened.
InitialSessionState iss = InitialSessionState.CreateDefault();
SessionStateVariableEntry var1 = new
SessionStateVariableEntry("test1",
"MyVar1",
"Initial session state MyVar1 test");
iss.Variables.Add(var1);
SessionStateVariableEntry var2 = new
SessionStateVariableEntry("test2",
"MyVar2",
"Initial session state MyVar2 test");
iss.Variables.Add(var2);
// Call the RunspaceFactory.CreateRunspace(InitialSessionState)
// method to create the runspace where the pipeline is run.
Runspace rs = RunspaceFactory.CreateRunspace(iss);
rs.Open();
// Call the PowerShell.Create() method to create the PowerShell object,
// and then specify the runspace and commands to the pipeline.
// and create the command pipeline.
PowerShell ps = PowerShell.Create();
ps.Runspace = rs;
ps.AddCommand("Get-Variable");
ps.AddArgument("test*");
Console.WriteLine("Variable Value");
Console.WriteLine("--------------------------");
// Call the PowerShell.Invoke() method to run
// the pipeline synchronously.
foreach (PSObject result in ps.Invoke())
{
Console.WriteLine("{0,-20}{1}",
result.Members["Name"].Value,
result.Members["Value"].Value);
} // End foreach.
// Close the runspace to free resources.
rs.Close();
} // End Main.
} // End SampleHost.
}
Lásd még:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: