我们通过PowerShell来做一个小程序。实现什么功能呢?我们用它来查看Windows的计划任务。完成计划任务的一些常见运维操作。
首先我们看看操作界面,如果对这个界面都不满意,那基本就不要往下看了。PowerShell做出来的图形化程序,标准造型都是这个样子的,有变化,但是不会太多。(如果想要更加个性化的,定制化图形界面,也可以,但是这属于UI和美工的工作了,我相信多数人不能胜任)
PowerShell的图形工具,用什么开发?
首先我们要介绍一下今天所用到的开发工具 PowerShell Studio 2015 ,这是除了ISE之外,我用的另一个开发工具。和ISE相比,它写图形界面非常简单。所做的基本就是拖拽一下控件就可以了。在微软的脚本库里面,也有不少的作者是用这个工具做的开发。而且它上手非常简单。如果是写PowerShell,同时想写图形化程序。那么PowerShell Studio 2015是最好的选择,没有之一。
PowerShell为什么要写图形化工具
我想大家都知道,在企业中,作为一个小工程师,你不是一个人在战斗,你会遇到很多人很多事。如果你只能写命令行的脚本完成工作,当然也可以。但是要知道更多的人是不懂这些的,它们需要简单的工具去完成基本工作,所以,写个图形化工具可以帮助你提升自己的社会地位。”人被需要才有价值”
项目背景:做这个工具的时候,起因很诡异。那是因为我有一台Windows 8的电脑做文件服务器。用Windows8做文件服务器是个很简单的工作,但是问题也有。那就是磁盘动不动就转,导致我担心硬盘寿命,同时对于噪音也比较讨厌。
所以最初的目的,我只是想优化一下系统,解决Windows8没事老读取磁盘的问题。
你看,需求就是这么奇葩。在盆盆的群里面也大概了解了一些方法,无外乎停止一些服务,处理一些计划任务。
但是新的问题来了,Windows8的计划任务远比你想象的要多。如果你想每一个计划任务都看一下,学习一下,很明显这样鼠标一步步的点过去就消耗掉所有的耐心。
这个工具写起来不是太复杂,我感觉我的效率比较低,大概用了不到一天时间。
项目目标:因为以上原因,我做了这个小工具,目标也很明确
针对特定的几个服务,也就是让Windows8硬盘不停读取的服务,我设置一些按钮,一键关闭。
能够列表所有计划任务,我需要在一个视图中展示所有数据,这一点是微软原装MMC所没有的功能。
可以单选、多选删除不需要计划任务。或者禁用它
我觉得程序作为图形化入门还是不错的,整体只有278行。同时我也会提供原始的代码。方便大家学习。
注意的细节:
200行总不能一行行介绍,在阅读代码之前,需要你对PowerShell有一定了解,或者能够看懂PowerShell。毕竟PowerShell的图形化,前提是PowerShell。
对了,在窗体的load中,我们设置下面这条语句,可以解决在运行ps1文件时执行权限不足的问题,这种设置有一定风险,但是比较简单。大家可以尝试一下。
举个栗子:
比如这个一键关闭xxx,界面是这样的,作用是点击一个按钮,实现多种功能。
在PowerShell Studio 中,我们双击superfetch按钮,就可以进入到这个按钮的”点击”后的动作。这里可以针对点击”superfetch”按钮后所进行的操作进行配置。
可以看到,这里的一键关闭服务。只是两条cmd命令。在PowerShell中调用CMD命令,需要使用 cmd /c 的方式运行。
本文转自 九叔 51CTO博客,原文链接:http://blog.51cto.com/jiushu/1771692,如需转载请自行联系原作者