或许你也已经察觉,使用Windows PowerShell 来完成你的管理任务,她方便,高效,优雅而灵活。

当然作为一个运维人员来说,Windows PowerShell 就是堪比人类历史上最伟大的发明---空调 之后最伟大的发明 没有之一,同样作为一个运维,开发界限模糊的IT时代,PowerShell 作为一个 跨平台的管理工具,尤其在Windows 平台 光芒无限,在面临组织内自定义应用程序时候通过有效的访问手段,开发人员依然可以依靠这一强大的平台进行快速的构建应用程序,当然作为管理,运维人员适当的学习开发基础知识更有利于工作的开展,同样我们今天讨论的内容虽然是面向开发者,但管理人员依然适用因为他们会再一次提升你的IT结构的自动化水平,进一步的提升你的工作效率。

下面我们将不再废话 直接进入正题

我们不妨先从运维人员的日常工作开始看看 我们应该如何实现在应用程序中使用PowerShell

首先运维人员要开打PowerShell 无非使用console 或者ISE 或者是PowerShell Studio 要么

使用PSWA (PowerShell Web Access)

在这里 我们就已经发现了第一个问题 我们每次打开的Console 或者ISE 都称为一个会话 由于我们应用程序中并没有这个“会话”所以 要在用用程序中使用 PowerShell 我们就需要这么一个“会话”

也许你觉得这“会话”有点困难,要像使用Bat 那样的复杂,更多的不可控,因为我们总是希望代码尽可能的精简,尽可能强壮,我有个好消息,使用并不复杂, 也非常可控就像你使用其他技术一样的容易。

So 我们要准备一下如何去使用 “会话”当然 我们会用C#作为示例其他的语言在使用方式一样 请根据自己使用的语法进行相应修改。

如果你只想简单使用这个“会话”那么只要创建控制台应用程序就可以开始愉快的使用了

创建好项目后请添加 对如下的Namespace 的引用

System.Management.Automation

System.Management.Automation.Runspaces

System.Collections.ObjectModel

当然这些 都已在GAC中你不需要额外的去安装什么.

如果想快速使用powershell 引擎中的命令那么 使用 RunspaceInvoke 是最简单的方式它已经

为我们封装好了Runspcae Pipline 为我们省去很多手动创建的事情,当然如果你只是简单的使用那么

已经足够,这样的代价就是牺牲了引擎中的其他API 和更多的管道以及Runspace的功能

就像下图一样 我们就可以简单的在一个控制台程序中使用PowerShell了

也许你会问我管道是什么 至少现在来说我们还暂时不需要知道这个东西。我们会在后面去介绍这个

RunspaceInvoke 类的构造函数有三个重载 你可以从一个已有的Runspace或者一个现有runspaceConfiguration 实例即运行空间配置文件(我们会在后面详细介绍这个) 或者是一个控制台配置文件来创建对用的RunspaceInvoke 实例 一旦我们创建了RunspaceInvoke 我们就可以使用Invoke()方法在控制命令运行 。

此后我们像上图一样获取其运行返回,

如果你只是想简单的让结果输出在屏幕上那么将是非常简单的事情

后面的文章我们讲继续深入讨论这些

转载于:https://blog.51cto.com/strikene/1703884

在应用程序中使用Runspace 1相关推荐

  1. 微信小程序中的tabBar设置

    我们先来看一份图,这个设置在官方文档中已经写得很清楚了,我只是做一个总结 注:我写注释是为了方便说明,在小程序中的json文件中是不能用注释的 这个tabBar属于全局属性,因此就在全局配置文件app ...

  2. C#中Winform程序中如何实现多维表头【不通过第三方报表程序】

    问题:C#中Winform程序中如何实现多维表头. 在网上搜了很多方法,大多数方法对于我这种新手,看的都不是很懂.最后在新浪博客看到了一篇比较易懂的文章:[DataGridView二维表头与合并单元格 ...

  3. 在windows程序中嵌入Lua脚本引擎--编写自己的Lua库

    在<在windows程序中嵌入Lua脚本引擎--建立一个简易的"云命令"执行的系统>一文中,我提到了使用Lua的ffi库,可以让我们像写C代码一样写lua程序.这是个非 ...

  4. 在windows程序中嵌入Lua脚本引擎--建立一个简易的“云命令”执行的系统

    在<在windows程序中嵌入Lua脚本引擎--使用VS IDE编译Luajit脚本引擎>开始处,我提到某公司被指责使用"云命令"暗杀一些软件.本文将讲述如何去模拟一个 ...

  5. 在windows程序中嵌入Lua脚本引擎--使用VS IDE编译Luajit脚本引擎

    前些天听到一个需求:某业务方需要我们帮忙清理用户电脑上的一些废弃文件.同事完成这个逻辑的方案便是在我们程序中加入了一个很"独立"的业务逻辑:检索和删除某个程序产生的废弃文件.试想, ...

  6. 在vc6控制台程序中如何调用运行ImageMagick命令行工具

    在http://www.imagemagick.org/script/index.php网站下载相应的执行文件,这里以下载ImageMagick-6.6.5-10-Q16-windows-static ...

  7. spark 获取广播变量_Spark流式程序中广播变量和累加器为何使用单例模式

    Spark中广播变量详解以及如何动态更新广播变量​mp.weixin.qq.com 1.广播变量是只读的,使用单例模式可以减少Spark流式程序中每次job生成执行,频繁创建广播变量带来的开销 2. ...

  8. 关于python缩进的描述中_关于Python程序中与“缩进”有关的说法中,以下选项中正确的是()...

    关于Python程序中与"缩进"有关的说法中,以下选项中正确的是() 答:缩进在程序中长度统一且强制使用 同文学或同音乐主题的民歌,<_______>是其中之一.此曲经 ...

  9. python缩进在程序中长度统一且强制使用_Python习题纠错1

    February, 1991 0.9.1 2.Python语言的缩进只要统一即可,不一定是4个空格(尽管这是惯例). Python缩进在程序中长度统一且强制使用. 3.IPO:Input Proces ...

  10. react中使用scss_我如何将CSS模块和SCSS集成到我的React应用程序中

    react中使用scss by Max Goh 由Max Goh 我如何将CSS模块和SCSS集成到我的React应用程序中 (How I integrated CSS Modules with SC ...

最新文章

  1. 力扣(LeetCode)刷题,简单题(第18期)
  2. Vue:echarts画图实战,异步获取数据在Vue上使用echarts进行画图
  3. AngularJs+bootstrap搭载前台框架——准备工作
  4. Anaconda中文版
  5. python实现二叉搜索树_python实现二叉查找树
  6. docker下用keepalived+Haproxy实现高可用负载均衡集群
  7. 基于JAVA+SSH+MYSQL的大学生入学注册自助系统
  8. linux下的C语言开发(信号处理)
  9. webshell文件下载器
  10. Android获取状态栏和标题栏的高度
  11. php爬虫亚马逊,亚马逊爬虫(亚马逊 api)
  12. 三角形旋转css_三种纯CSS实现三角形的方法
  13. php hr标签,css中如何设置hr的样式?css hr标签多种样式(图文)
  14. QUIC传输协议设计
  15. AE学习笔记——第三章:动画制作基础1
  16. c语言引用性间接变量,c语言取地址和间接引用
  17. 成语接龙(英语单词链)
  18. EventSource+eggjs
  19. FreeModbus快速入门指南
  20. Jetson TX2实现EfficientDet推理加速(一)

热门文章

  1. 学习ARM64页表转换流程
  2. python自动化任务_更好用的 Python 任务自动化工具:nox 官方教程
  3. SQlite数据库的C编程接口(八) 工具函数(Utility Functions) ——《Using SQlite》读书笔记
  4. 最长公共子序列(输出公共序列)
  5. spark sql 给dataframe列重命名的三种方式
  6. scala中class,object,trait的区别
  7. python判断字符串相等_“python”中怎么判断字符串相等?
  8. html如何加入浮动客服,css如何实现客服悬浮效果
  9. 怎么查自己电脑服务器信息吗,怎么查看自己云服务器信息吗
  10. 乐山计算机学校搬迁,【骨头再次发贴】谈谈新校区。