2018年4月16日 星期一
07:43
早就想开展这个工作了,因为前不久SA有一个Windows计划任务的监控需求,需要从各个版本的Windows中采集计划任务。任务看似简单,但实际投入将近40个小时(纯工作时间)。
在解决问题的过程中,遇到了以下几个问题:
- ,这个是OS层面的的;
- Powershell获取计划任务的
cmdlet
在Windows 2008上木有; - 命令、参数一样的情况下,在Windows 2008/2012上运行结果不同。
最终,为了解决这个需求,最终通过如下方式解决:
- Batch脚本调用
schtasks.exe
命令采集信息。 - Powershell通过
Get-ScheduledTask
和Get-ScheduledTaskInfo
这两个cmdlet
采集信息 - Powershell调用COM对象来采集信息。
归根结底,做运维的,从脚本开发之初就应该从兼容性方面考虑。
个人是想在保证开发效率的情况下,用尽可能快捷的方式来解决问题,无奈坑是一个接一个。
不过在解决问题的过程中,发现Powershell比Batch强大多了,但也不标准多了。为了避免后续继续踩坑、浪费时间,从现在开始就准备系统性的学习Powershell。
在知乎上看到一些问题,说Powershell不仅能够编写脚本,还能够架构大型应用程序。突然感觉和Python一样了,于是,好奇心就来了,花100个番茄学习一下。
学习的目标
学习的目标很简单:
- 整体了解Powershell的编写模式;
- 了解Powershell适合做什么,不适合做什么;
- Powershell在不同系统上支持的功能区别;
当然,个人还有一个其他的想法:
- 是否可以通过某种方式,当我下次要用的时候,直接通过搭积木的方式来进行程序编写?