在应用程序中使用RunSpace 3

,

在上一次的博客中我们已经完成了最简单的运行空间开启以及管道调用

当然你可能并不甘的心,并不满足仅仅运行Get-Disk这么简单的命令

或许你已经尝试使用Get-ADUser来检索活动目录用户,当然这在V3,以及V4之后的版本都没问题,由于V2版本太过久远而我个人也已经记不太清当时的情况,可能是得益于V3, V4版本的动态模块加载功能,现在我也已经不再需要调用的第一个管道中的命令要导入模块了

当然我依然有时候需要使用一种叫做Snapin的东西话说我个人是非常喜欢用Snapin的虽然注册有点麻烦,但是由于自行的开发的Snapin更加符合自己的使用习惯,

其实在这种场景下我们一定会遇到下面的错误

在应用程序中使用RunSpace 3

你可能跟我说根本就没有这个命令嘛你逗我吗?事实上你没有这个命令因为你根本没有注册相应的Snapin而已为了证明我没有骗你

在应用程序中使用RunSpace 3

事实上我们要论的焦点并不是有没有这个Snapin的问题而是要讨论下在我们使用默认方法打开运行空间运行空间都要加载那些Snapin这才是我们需要关注的问题所以我们不妨调用之前学会的方法去得到一下就可以知道,微软官方有个说法就是一个默认的运行空间在开启之后之加载默认的配置,具体配置可以去技网查询

好了这个蛋疼的问题解决之后就好办多了,下面我开始进行自定义的运行空间

我们之前说过RunSpace实例可以通过使用RunspaceFactory的方法进行创建在其方法重载中可以使用一个现有的RunspaceConfiguration进行创建

代码如下

在应用程序中使用RunSpace 3

我们通过RunspaceConfiguration.Create()创建仅仅包含基本配置的运行空间配置之后使用AddPSSnapIn方法添加我们需要的Snapin当然也可以使用RemovePSSnapIn

RunspaceConfiguration实例中包含其他属性可用于查询当前配置包含的命令程序集,以初始化脚本等当然如果你不满足现有方法那么依然可以RunspaceConfiguration。创建的其他重载从一个已有的控制台文件创建相应的配置

在应用程序中使用RunSpace 3