第三版和第二版的不同


在第三版中增加了很多实用的技巧和经验,比第二版的层次更加的丰富,增加了很多不容易注意到的知识点,这些知识点掌握了之后,可以很好的避免在实际的应用中踩坑。


关于本书的介绍请参考


http://www.pstips.net/learn-powershell-3-in-a-month-of-lunches.html


关于PowerShell与cmd有何不同


https://www.zhihu.com/question/22611859


个人备注:


Powershell是一个面向对象的脚本编写工具,在powershell中,输出的内容均为对象,可以去调用它的属性和方法,也可以使用PS自己写function(函数),Powershell是一个高级的脚本编写语言,底层已经封装好了大量可用的cmdlet和函数、类。可以在powershell中使用WMI、调用C#接口、调用cmd命令、输出xml、json等等。未来微软几乎所有主流的服务器产品都将基于powershell去做远程或者本地的管理。目前powershell已经有对应的开源版本powershell core,可以去管理Linux平台。powershell是Windows平台进行自动化运维和配置管理的首选工具。


Get-wmiobject与get-ciminstance的优缺点


传统的WMI方式去管理操作系统,面临的问题是:语法复杂、难以理解、参数难以查询。当WMI需要去管理多个远程的操作系统时,有两个弊端:

1)需要使用RPC进行通讯,而不是基于HTTPS;

2)远程执行是串行的,也就是说需要一台台去执行操作,效率低下;

使用CIM的方式,优点是:

1)采用WS-MAN协议;

2)远程执行是并行的,可以用于分布式计算,并行执行完成后,返回结果;

CIM的弊端在于不支持比较老的早期的操作系统版本和PowerShell版本。


关于PowerShell命令别名


不建议在交付的脚本或者代码中频繁使用别名,因为可读性较低,难以理解。


write-host和write-output的区别


简单来说,write-host是绕过了powershell的默认管道输出机制,直接把要输出的信息打印到了屏幕上;而write-output则是通过powershell默认的管道将输出打印到屏幕上。这就解释了为什么在powershell studio图形化编程中,可以把write-output的输出进一步输出到richtextbox中,而write-host不行。不行的原因是write-host直接输出到屏幕的内容程序是无法捕获的。


关于powershell的隐式远程处理


其实说白了利用的还是会话建立远程管道,然后通过远程管道在目标计算机上导入对应的管理模块。好处是脚本或者工具在执行的时候无需安装对应的模块或管理工具,因为命令是通过远程会话传输到目标服务器上执行的,本地只是一个反序列化以后的结果而已。弊端是反序列化之后的输出没有属性和方法可供继续调用。

此次阅读的是Powershell实战指南的第三版,之前阅读第二版的时候,针对前七章做了思维导图,需要的可移步到:

链接: https://pan.baidu.com/s/1HiX8u4eZSsuwnct0NBXHJQ 提取码: gzue


更多资讯请关注下方微信公众号:

qrcode_for_gh_7159fb337d37_258.jpg