[PowerShell]人人都值得学一点PowerShell实现自动化(2)有哪些可用的场景及方式?

部分读者反应太多知识要学了,学完一轮又一轮,笔者也不想单单为了制造学习而学习,所有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,打开保存的脚本文件,直接在上面执行即可。

640?wx_fmt=png

使用CMD或PowerShell控制台执行

可以在控制台上引用文件路径,也可以执行PowerShell脚本。

640?wx_fmt=png

使用批处理的方式执行

可以用CMD执行,当然也可以将其封装成bat批处理任务,双击即可完成执行。

640?wx_fmt=png

使用任务计划的方式定时执行

我们更想要的真正自动化执行是定时给我们去执行代码,用Windows的任务计划就可以非常简单地完成定时任务。

因为PowerShell.exe的所在文件夹已经有环境变量了,所以直接给出程序名就可以。当然全路径也是可以的。

添加参数的位置加上PowerShell脚本的路径即可,这里前面加了个运行策略参数,Bypass是什么警告都不通知,比较顺畅运行,也可以不加。

完整的参数是:-ExecutionPolicy Bypass E:\test.ps1

640?wx_fmt=png

使用Sqlserver代理作业去运行

这种方式也是笔者在项目实际中所使用的,代理的方式,更好用一些,可以同时执行多个步骤,例如执行完PowerShell脚本后,下一步再执行其他任务。

当然这里可以直接写脚本内容,引用脚本文件也可以,记得加个英文句号在前面。

640?wx_fmt=png

其他语言调用

据笔者所知,在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

640?wx_fmt=png
联系作者
640?wx_fmt=png
公众号

取名催化剂,因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催化剂一直能运行下去,我所惠及的群体们能够给予支持(多留言鼓励下、转发下朋友圈推荐、小额打赏下和最重点的可以和所在公司及同行推荐推荐,让我的技术可以在贵司发挥价值,实现双赢(初步设想可以数据顾问的方式或一些小型项目开发的方式合作)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[2021.1.13多校省选模拟2]T1(动态规划/轮廓线dp)

[2021.1.13多校省选模拟2]T1 一个经典的轮廓线dp,可以发现一定可以找到一条轮廓将这个图形分开,然后使得左半部分由左边处理,右半部分由右边处理,然后我们只需要处理这个折线即可,具体实现需要处理前缀和的前缀最大值&…

[PowerShell]人人都值得学一点PowerShell实现自动化(1)在VisualStudio上使用PowerShell...

最近学PowerShell的知识比较多,也开始有一点点可以分享的知识给大家输出,学一门语言,理当首先找准一个好用的IDE来帮助我们提高学习效率,本文给大家介绍如何在宇宙第一的IDE-Visual Studio上写PowerShell脚本。关于PowerShell的基…

[2021.1.17多校省选模拟4]T1(莫比乌斯反演/组合数学/枚举倍数)

[2021.1.17多校省选模拟4]T1 一般人都会想着去枚举直线的斜率,但是枚举斜率之后就会产生多条直线,并且这些直线的长度不一,难以快速求解,所以我们考虑换一种方法枚举。 枚举最远点对的横纵坐标之差,这样很容易计算这…

程序员35岁不转型就退休,是真的吗?

周六下午,DevOps群里,有人贴出来这么一张图:据说,这张图来自于谷歌,Google程序员之间存在这一条鄙视链,站在顶端的是C工程师,其次是Java工程师,再次是Python工程师,接下来…

.net测试篇之Moq框架简单使用

Moq简介Moq是.net平台下的一个非常流行的模拟库,只要有一个接口它就可以动态生成一个对象,底层使用的是Castle的动态代理功能.它的流行赖于依赖注入模式的兴起,现在越来越多的分层架构使用依赖注入的方式来解耦层与层之间的关系.最为常见的是数据层和业务逻辑层之间的依赖注入,…

A. 树与路径(树论/多项式/分治FFT)

A. 树与路径 首先考虑一个dp的方法,对于这种链划分的题目,有一个很重要的思想就是按照每个点的角度考虑,实际上链划分就是匹配问题,每个点只能出一条边和入一条边,所以我们拆点之后就是匹配,这也是网络流最…

.NET Core on K8S学习实践系列文章索引(持续更新)

近期在学习Kubernetes,基于之前做笔记的习惯,已经写了一部分文章,因此给自己立一个2019年的flag:完成这个《.NET Core on K8S学习实践》系列文章!这个系列会持续更新,先发个草稿列表,后续更新&a…

TomatoLog-1.1.0实现ILoggerFactory

TomatoLogTomatoLog 是一个基于 .NETCore 平台的产品。The TomatoLog 是一个中间件,包含客户端、服务端,非常容易使用和部署。客户端实现了ILoggerFactory,使用服务注入成功后即可使用,对业务入侵非常小,也支持通过客户…

Docker(二)-在Docker中部署Nginx实现负载均衡(视频)

一、前言在前面的文章中我们已经介绍了如何在Centos7系统中安装Docker以及利用Docker进行Asp.Net Core应用的部署。在本文中,我们将继续介绍利用Docker部署Nginx服务实现负载均衡,我们通过视频方式向大家进行演示。注:查看公众号历史文章&…

P4389 付公主的背包(生成函数/多项式)

P4389 付公主的背包 https://www.luogu.com.cn/problem/solution/P4389 经典生成函数问题 求解无限背包问题,我们可以将每个物品看作一个多项式,那么最后的结果就是这些多项式的卷积的系数,然后我们实际上就可以考虑分治NTT了,但…

Docker系列之镜像瘦身(五)

本节我们来讲讲在我们在构建镜像过程中不出问题,同时使得最后所构建的镜像文件大小尽可能最小。缓存(cache)Docker的优势之一在于提供了缓存,加速镜像迭代构建,我们知道构建镜像使用docker build命令,也就是说通过docker build的缓…

一张图了解.Net Core和.NetFx和.Net Standard和Xamarin关系

一张图了解.Net Core和.Net Framework和.Net Standard和Xamarin关系总结.NET Standard是一项API规范,每一个特定的版本,都定义了必须实现的基类库。.NET Core是一个托管框架,针对构建控制台、云、ASP.NET Core和UWP应用程序进行了优化。每一种…

Java修炼之路——基础篇——String

String 1:字符串的不可变性 什么是不可变对象?不可变对象是指创建后无法变更的对象 String为什么是不可变的?String类为final,并且内部字符数组也为final。所以String对象是不可变对象。 String类为什么要设计为不可变&#xff1…

VS, VS Code, VS Online, VS xxx, 你都分清了吗?

首先说说部分童鞋容易混淆的 Visual Studio 和 Visual Studio Code 吧。其实,它们俩的关系,就相当于 Java 和 JavaScript,没啥关系。再说说 Visual Studio Online。这就复杂了。历史上,出现过两个 Visual Studio Online&#xff0…

Java修炼之路——基础篇——Java关键字

1:transient 当对象被序列化时,transient阻止其修饰的对象进行序列化;当反序列化时,此对象的值不会被恢复。 2:instanceof 判断引用指向的对象,是不是某个类及其子类的实例对象; class Person …

.NetCore从零开始使用Skywalking分布式追踪系统

将本文从0开始搭建两个webapi项目,使用Skywalking来追踪他们之间的调用关系及响应时间。开发环境为VisualStudio20191:安装Skywalking,可参考:https://www.cnblogs.com/sunyuliang/p/11422576.html,本列中搭建好后的Skywalking服务…

通过Service访问应用 (1)

目录通过Service访问应用 通过Pod IP访问应用 通过ClusterIP Service在集群内部访问 通过Service访问应用通过之前的操作,应用部署完成了,我们的Demo网站已经成功启动了,那么如何访问网站呢?通过Pod IP访问应用我们可以通过Pod IP…

13张PPT带你了解主动式消息队列处理集群

前言偷偷和你们说,我搞了一份内部资料,该内部资料共有13张PPT,据作者透露,该PPT至少花了整整1周时间才编写完成,其内容简洁明了,内容深度足够,易于初学者理解,也给深度开发人员分享了…

.Net Core 三大Redis客户端对比和使用心得

前言稍微复杂一点的互联网项目,技术选型都可能会涉及Redis,.NetCore的生态越发完善,支持.NetCore的Redis客户端越来越多,下面三款常见的Redis客户端,相信大家平时或多或少用到一些,结合平时对三款客户端的使…

队长开卖自家产“翠香”猕猴桃

猕猴桃品种有很多,但不是所有的果子都叫翠香。这两天我在公众号里卖了这个翠香猕猴桃,可能是有同学以为是做广告卖水果,其实是家里的亲戚猕猴桃成熟了,辛苦一年下来地里一共结了3000斤猕猴桃,遇到了一个难题就是如何把…