一个老微软产品和Linux系统从业人员的“吐槽”:关于PowerShell不得不说的那些事

举报
xenia 发表于 2020/02/10 12:43:54 2020/02/10
【摘要】 本帖最后由 檸檬dё單純 于 2016-01-16 23:01 编辑出处:http://bbs.chinaunix.net/thread-4216542-4-1.html作为一个老微软产品和Linux系统的从业人员,我不得不吐槽一下,一本Windows PowerShell的书籍试读活动,竟然发布到linux论坛举行。没有任何其他意思,只是觉得术业有专攻,发表在这里的确有点不伦不类,看大部分...

本帖最后由 檸檬dё單純 于 2016-01-16 23:01 编辑
出处:http://bbs.chinaunix.net/thread-4216542-4-1.html


作为一个老微软产品和Linux系统的从业人员,我不得不吐槽一下,一本Windows PowerShell的书籍试读活动,竟然发布到linux论坛举行。没有任何其他意思,只是觉得术业有专攻,发表在这里的确有点不伦不类,看大部分人的回复都有点门外汉瞎点评的感觉。很多都是墨守成规,先入为主的老观念在作祟,这样是没法对PowerShell进行一个客观又公正的点评的。

在试读活动展开之前,我想先回一下人气比较高的9楼版主的帖子,话说在前面,没有半点对您不敬的意思,只是就PowerShell展开技术讨论,希望多多谅解。

您对PowerShell的优势阐述得很清楚,我很认可,也能看出来你对PowerShell应该是比较了解的,但是对于PowerShell的不足部分,我有自己的几点如下个人看法:

1、命令太长,记不住,Linux/Unix的ps,top,df,非常简单的字符,用几次就能记住,PowerShell中的命令,5个字符以下的极少,像我这种半路出家的英文水平,拼写起来很有难度。要定个脚本,基本上满屏幕都是字母,很壮观,但是可读性不好;

命令长是优势,PowerShell的命名全是通俗易懂的“动-名词”结构,所以可读性非常好。而且微软在设计PowerShell的时候就提出了一个要求:要求非英语母语的用户能够从命令命名上就能看懂这个命令的用途,基本上全是很简单的英文单词拼接而成。回到linux,df命令对于linux新手来说,乍一看还真不知道是哪两个单词的缩写,PowerShell则完全不会有这个困惑。

linux主流的命令几乎全能在PowerShell里找到,PowerShell以一种别名的方式完美的保留了Linux管理员在使用powershell时的操作习惯。你可以不知道powershell里怎么查看进程情况,但是你仍然可以输入ps来实现同样的效果,它实际上是powershell命令get-process的别名。由此可见,微软拿出了足够的诚意来让linux管理员更快的熟悉powershell,而不用花太多的转换代价。

2、跟.net结合过于紧密,是优点的同时,也继承了.net的缺点;

首先得承认我不是专业的开发人员,所以冒昧的问问.net的缺点是?由于是相对linux的其他脚本语言来说,.NET的缺点是?

我唯一能猜测的您可能指的是跨平台的互操作性?咱这个话题不就是讨论PowerShell在微软产品上带来的管理体验的提升吗?应该没讨论linux平台。另外话说回来,PowerShell随着.NET的开源,已经能够进行跨平台管理了。

3. 在使用方面(比如复制、粘贴、字符替换等操作)也不如Linux/Unix的花样多。

这个我同意。Linux主要是基于文本进行操作,擅长的就是进行字符操作。PowerShell面向对象,心比较大一点,关注点不一样。另外复制粘贴在powershell V5.0版本里已经支持。

4. 最根本的原因,一直认为windows在server方面性能都不太好,玩server就用Linux/Unix,这是很多人的共识了。

误解,这个就是我说的先入为主的观念误解。

您也不用回我的贴,我能看懂你说的所有,相信您也能看懂我说的所有。我不想变成一个孰好孰坏的讨论了。我自己曾经是Linux从业人员,见过太多的为了这种无意义的争论了,windows好还是linux好啊,linux shell好还是powershell好啊等等。

回到最初的话题上来,

1.在工作中哪些场景中用到PowerShell,PowerShell管理的产品有哪些?(Windows,AD,Exchange,SQL Server,Azure...)

几乎天天会和PowerShell打交道。工作上、项目上都会有。涉及到的产品有windows、AD、Exchange、Lync(SFB)、SharePoint、SQL Server、O365等等。

我曾在项目上无数次的通过powershell脚本来实现效率提升、复杂的功能实现等。目前最高写过几万行后台的PowerShell脚本。

2.你认为PowerShell在windows平台下有哪些优势?

a.面向对象我认为是最大的优势。直接就拉平到主流的开发语言一个档次,我说的是开发语言,不是脚本语言,充分体现了Power这个字。

b.另外9楼版主说得很对,有.NET当爹,家大业大也是很大的优势,无缝调用各种类不要太爽。

c.微软自家产品主推powershell管理也是一个优势。就拿Exchange来说,后台全是PowerShell在管理,甚至很多GUI或者WEB界面做不了的事情都交给powershell去做了。深刻说明了那句话:以后做微软产品的,只有两类人,一类懂PowerShell,一类不懂powershell。

d.不止是微软,其他主流的商业软件供应商也几乎都提供了PowerShell管理方式。VMware、Quest、Syamantec等等。

f. powershell几乎是无所不能,这个话看上去有点大,熟悉powershell的人会觉得一点也不言过其实。

3.你更期待powershell加入一些什么特性?对下一版有什么期待?

a.希望加入更多的原生cmdlet,微软提供的总比自己去写函数,脚本块要来得方便。虽然PowerShell V5里提供了数以千计的cmdlet,而1.0版本才100来个,但是我还是希望多多益善。

b. 另外希望能加强GUI开发的能力,虽然现在也能写出很牛逼的GUI工具了。

c. 最后希望ISE能更powerful一点,原生的ISE稳定性是第三方无法比拟的,但是功能总是比人家差那么一丢丢。

最后谈谈试读体验,这本书我让几个下属买了几本,截止到今天,我也阅读了前四章,有如下几点心得:

1. 这本书比我想象中的要好!这是我第一个最直观的感受。因为我之前看过这本书的目录,觉得是适合一个超级菜鸟入门的教材,结果发现深度还是有的,或者说是以一种深入浅出的教学方式讲了一些不是菜鸟的知识点,很赞。尤其是讲帮助系统的第三章,cmdlet的参数部分讲得很好,我就碰到不少朋友经常会问,中括号、尖括号是干什么,什么可选参数、必选参数、位置参数之类,什么情况下参数值必须输入,什么情况下只接受单个值输入,什么情况下又接受多个值输入等等,都讲到了。

2. 这本书几乎没讲语法。没有讲变量、常量、数据类型、循环、中断、异常抛出、错误处理、函数等等,但是这本书的定位就是入门,所以这样的安排是合理的。我买过不少powershell的书籍,要么就是通篇讲PowerShell的枯燥语法,要么就是从网上摘录一大段一大段的运维脚本敷衍了事。结果就造成新手看了几页后知难而退,然后厚厚的书就开始结灰尘。这本书的目录和内容编排符合这本书的定位。我相信大部分新人会从头到尾看完。

3. 这本书的翻译比较接地气。很多老外的书本身写得不错,但是一到国内就被蹩脚的翻译者破坏得面目全非,感觉也就比机器翻译稍微好点。

4. 如第二点所说,如果这本书能出个姊妹篇,来个进阶版讲点语法就好了。语法是无法避开的部分,否则新手永远只停在入门阶段,永远只会用一些微软提供的原生cmdlet命令,一旦有复杂的需求就会磕磕碰碰,也就是vscript时代说的“最后一英里”问题。当然这个有点跑题,本书的定位是没问题,只是个人希望还能出个提升版。

5. 试读样章和书本里第六页有个空格排版失误。安装powershell ISE的命令应该是add-windowsfeature powershell-ise,书上写成了add-windowsfeaturepowershell-ise



本文转载自异步社区

原文链接:https://www.epubit.com/articleDetails?id=NC7E3EF913E800001D821190015008C30

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。