部分读者反应太多知识要学了,学完一轮又一轮,笔者也不想单单为了制造学习而学习,所有Excel催化剂所发布的内容,都是笔者所亲自使用到的,当然很多领域也没有深挖到很底的程度。
PowerShell使用场景
虽然说PowerShell也是在dotNET体系内,凡是dotNET语言可以完成的,它也几乎可以同样完成,但完成的代价可能不一,有些部分可能没有使用其他语言如C#等语言来得方便好用。
详细的PowerShell优势可以参考下文所述。
在Windows系统运维人员中使用面广
《PowerShell实战指南》一书,是面向运维人员的角度而写,如果想更深入地去了解,不妨看看。
例如一个系统管理员,需要管理几百台电脑,对他们安装补丁、软件等操作,可以用PowerShell直接自动化脚本完成,它擅长远程访问控制其他电脑。
同样地,因为PowerShell是跨平台的语言工具,在MAC和Linux上也可以使用,具体能否在这些系统上做运维就不得而知了。
在熟悉DOS命令的群体中,使用PowerShell可以完美替代CMD命令行工具,并且功能更强大,而很多命令也可以复用,无需重新学习,如dir/cd/config等经典的命令。
对其他微软系产品的自动化管理
同样地笔者非运维人员,在这一块也没有太深入了解,据笔者所知,使用PowerShell可以管理微软系绝大部分的产品如Exchange、SharePoint、Sqlserver、OFFICE365,而笔者主要的使用场景,目前为止,只有Azure的资源的运维管理。
因为Azure是微软的未来,所以作为认真追随微软的人来说,没有理由会不跟上去先学习一下PowerShell,为了日后更好地运维Azure的资源。
Azure上使用PowerShell真实场景
分享一点点笔者真实的项目应用,使用PowerShell对Azure的Azure SQL和Azure AS的资源开关升降自动化。
因笔者使用了Azure SQL和Azure AS两项服务,用于PowerBI的项目中,通过资源的开关升降操作,可以为企业节省出不少的Azure消耗费用,非常有实际推广价格。
我们Azure SQL仅用于数据仓库存储数据的作用,更准确地说只是为了给Azure AS分析服务提供更新多维数据模型时的数据源作用,所以整个使用时段是非常短的。
我们只需在数据ETL的时候,将Azure SQL的定价层性能调高,让旧数据删除与新数据插入性能更高,再就是数据ETL结束后Azure AS分析服务需要读取Azure SQL数据源时,读取的性能更高。这两个环节需要使用,其他时候可以关闭(Azure SQL不能关闭,只能降低到最低一层,最低层非常廉价,98元一个月全开,相当于关闭差不多。)
同样地在Azure AS分析服务供用户查询报表时使用,提供底层的计算能力,也因为用户只会在上班时间才有必要开通此服务,在节假日和下班时间,可以关闭。在上班时间,可能一个星期也只有某一段时间段才会有大量的用户同时访问报表,其他时段使用的人很少,这样也给我们很大的优化空间,忙时将定价层性能调主,闲时调低。
最后我们开发一个手动接口,让手动临时需要更改资源的状态可以实现,综合上述所述的场景,最终用PowerShell来控制Azure的资源,也是非常容易的事情,只需简单了解下PowerShell的语法和照着官方示例小改一下即可完成。
PowerShell的使用方式
当写好了PowerShell脚本后,我们想执行它或使用任务调试的方式来完成固定周期的自动执行步骤,笔者暂时发现的方法用如下几种。
直接PowerShell ISE上执行
使用PowerShell ISE,打开保存的脚本文件,直接在上面执行即可。
使用CMD或PowerShell控制台执行
可以在控制台上引用文件路径,也可以执行PowerShell脚本。
使用批处理的方式执行
可以用CMD执行,当然也可以将其封装成bat批处理任务,双击即可完成执行。
使用任务计划的方式定时执行
我们更想要的真正自动化执行是定时给我们去执行代码,用Windows的任务计划就可以非常简单地完成定时任务。
因为PowerShell.exe的所在文件夹已经有环境变量了,所以直接给出程序名就可以。当然全路径也是可以的。
添加参数的位置加上PowerShell脚本的路径即可,这里前面加了个运行策略参数,Bypass是什么警告都不通知,比较顺畅运行,也可以不加。
完整的参数是:-ExecutionPolicy Bypass E:\test.ps1
使用Sqlserver代理作业去运行
这种方式也是笔者在项目实际中所使用的,代理的方式,更好用一些,可以同时执行多个步骤,例如执行完PowerShell脚本后,下一步再执行其他任务。
当然这里可以直接写脚本内容,引用脚本文件也可以,记得加个英文句号在前面。
其他语言调用
据笔者所知,在dotNET语言可以轻松调用PowerShell脚本,至于如何实现,笔者没有深入研究过,有兴趣的可以自行google一下。
在其他语言中调用PowerShell功能,也是非常有优势的,可以实现强强联合,也是像笔者这样的业余人员所钟爱的。
结语
此篇简单给大家分享了一些PowerShell的应用场景和其对应的实现方式,对于特定的场景来说,PowerShell还是非常有优势的,并且学习成本真心不高,非常值得推荐使用。
下一篇给大家介绍一点PowerShell的轮子世界,可以怎样复用现有轮子加快我们的功能实现,欢迎继续关注。
笔者未来聚焦在数据领域的分享,不限于Excel,会分享更多Sqlserver、dotNET、Azure、PowerBI等话题,升级数据分析的能力,欢迎继续关注。*
关于Excel催化剂
Excel催化剂先是一微信公众号的名称,后来顺其名称,正式推出了Excel插件,插件将持续性地更新,更新的周期视本人的时间而定争取一周能够上线一个大功能模块。Excel催化剂插件承诺个人用户永久性免费使用!
Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!
Excel催化剂插件下载链接:https://pan.baidu.com/s/1Iz2_NZJ8v7C9eqhNjdnP3Q
取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道Excel能够做什么而停留在不断地重复、机械、手工地在做着数据,耗费着无数的青春年华岁月。所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。
最后Excel功能强大,其实还需树立一个观点,不是所有事情都要交给Excel去完成,也不是所有事情Excel都是十分胜任的,外面的世界仍然是一个广阔的世界,Excel只是其中一枚耀眼的明星,还有其他更多同样精彩强大的技术、工具等。*Excel催化剂也将借力这些其他技术,让Excel能够发挥更强大的爆发!
关于Excel催化剂作者
姓名:李伟坚,从事数据分析工作多年(BI方向),一名同样在路上的学习者。
技术路线从一名普通用户,通过Excel软件的学习,从此走向数据世界,非科班IT专业人士。
擅长技术领域:Excel等Office家族软件、VBA&VSTO的二次开发、Sqlserver数据库技术、Sqlserver的商业智能BI技术、Powerbi技术、云服务器布署技术等等。
2018年开始职业生涯作了重大调整,从原来的正职工作,转为自由职业者,暂无固定收入,暂对前面道路不太明朗,苦重新回到正职工作,对Excel催化剂的运营和开发必定受到很大的影响(正职工作时间内不可能维护也不可能随便把工作时间内的成果公布于外,工作外的时间也十分有限,因已而立之年,家庭责任重大)。
和广大拥护者一同期盼:Excel催化剂一直能运行下去,我所惠及的群体们能够给予支持(多留言鼓励下、转发下朋友圈推荐、小额打赏下和最重点的可以和所在公司及同行推荐推荐,让我的技术可以在贵司发挥价值,实现双赢(初步设想可以数据顾问的方式或一些小型项目开发的方式合作)。