我知道我可以使用以下内容获取最初定义的命令:
Runspace rs = RunspaceFactory.CreateRunspace();
rs.InitialSessionsState.Commands
或在PowerShell本身:
[System.Management.Automation.Runspaces.Runspace]::DefaultRunspace.InitialSessionState.Commands
但这只代表创建运行空间之前的状态。
如果我导入模块(即使手动创建会话状态对象并在打开运行空间之前使用sesh.ImportPSModule()
),这些函数或cmdlet都不会显示在列表中。
如果我用.AddScript()
或其他东西定义一个新函数,那就相同了。
有没有办法从运行空间外部获取运行空间的当前状态而不仅仅是初始状态?
我想过从运行空间内部调用Get-Command
并返回对象,但似乎......出于某种原因我错了。我觉得我在这里错过了一些简单的东西,应该有一种方法来看看当前状态以及它中定义的内容。
答案 0 :(得分:2)
PSProvider功能是否适合您的需求?
Get-ChildItem function: