我知道我可以使用以下方法获取最初定义的命令:
Runspace rs = RunspaceFactory.CreateRunspace();
rs.InitialSessionsState.Commands
或在 PowerShell 本身中:
[System.Management.Automation.Runspaces.Runspace]::DefaultRunspace.InitialSessionState.Commands
但这仅代表创建运行空间之前的状态。
如果我导入一个模块(即使通过手动创建会话状态对象并sesh.ImportPSModule()
在打开运行空间之前使用),这些函数或 cmdlet 都不会显示在列表中。
.AddScript()
如果我用或其他东西定义一个新函数,也是一样的。
有没有办法从运行空间外部获取运行空间的当前状态而不仅仅是初始状态?
我考虑Get-Command
过从运行空间内部调用并返回对象,但由于某种原因,这对我来说似乎是错误的。我觉得我在这里遗漏了一些简单的东西,应该有一种方法可以查看当前状态以及其中定义的内容。