Я знаю, что могу получить команды, которые были определены изначально, используя что-то вроде:
Runspace rs = RunspaceFactory.CreateRunspace();
rs.InitialSessionsState.Commands
или в самой PowerShell:
[System.Management.Automation.Runspaces.Runspace]::DefaultRunspace.InitialSessionState.Commands
Но это только представляет состояние до создания пространства выполнения.
Если я импортирую модуль (даже путем создания объекта состояния сеанса вручную и использования sesh.ImportPSModule()
до открытия пространства выполнения), ни одна из этих функций или командлетов не появится в списке.
То же самое, если я определяю новую функцию с помощью .AddScript()
или что-то в этом роде.
Есть ли способ получить текущее состояние пространства выполнения, а не только начальное состояние, извне?
Я думал о том, чтобы просто вызвать Get-Command
изнутри области выполнения и вернуть объекты, но по какой-то причине это кажется мне неправильным. Я чувствую, что мне здесь не хватает чего-то простого, и должен быть способ просто посмотреть на текущее состояние и то, что в нем определено.