但是存在一个巨大的问题 – 我的Windows同事几乎都没有真正对学习脚本感兴趣.他们似乎对手动点击鼠标的工作感到满意,并且对于使用脚本代表他们进行工作的前景并不感到兴奋.尽管效率明显提高,但我努力说服他们学习脚本技能.之后,我离开了那份工作,追求全职的软件开发生涯.
在不同的环境和不同的客户工作近十年,我仍然遇到Windows管理员主要拥有这种一般的“情绪”,他们会尽可能避免编写脚本.尽管可访问性越来越高,但Windows服务器技术正在为脚本和自动化开放.我几乎可以肯定大多数管理员都是管理员,因为他们绝对讨厌执行任何编程职责.有哪些方法可以鼓励和激励管理员,从长远来看脚本可以真正帮助他们?
我的意思是,WTF是这个吗?
Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
我认为,部分问题在于有一个API.在Unix下,管理员主要编写他们已经使用的命令行实用程序的自动化脚本.在Windows下,您必须在每个级别使用不熟悉的API.例如,“冒充”是什么意思?这对于Unix管理员来说是一个微不足道的概念,他可能会使用sudo和su并且已经熟悉setuid脚本.但Windows管理员不太可能熟悉其中任何一个;他们可能知道“runas”(或等效的GUI选项),但是当他们需要管理员时,他们更有可能以管理员身份登录.
Windows中的脚本编写文档非常糟糕.首先,它比脚本更“解释语言”,因为它们使用的是(不熟悉的)API而不是他们已经熟悉的命令.但我认为我从来没有在微软的文档中找到任何有用的东西,而这些文档并没有找到那些已经做了我想要的东西的人,这些东西指向了正确的方向.似乎没有任何地方可以列出你可以做的事情.这就像你必须熟悉Windows内部才能做最基本的事情.
并非Unix脚本通常不像线路噪声.但Unix管理员可以从一个脚本开始,该脚本除了运行他已经知道的简单命令外什么也不做. (“我总是必须连续运行这三个命令.如果我只是将它们放在一个文件中,我可以在一个命令中完成它!”)然后他可以随后进展,因为他对这种情况感到满意.相比之下,管理员无法编写“以管理员身份登录服务器”的脚本;单击“开始”→“设置”→“控制面板”;双击“系统”;单击“计算机名”选项卡;等等.是的,他试图去的地方可能是通过某个地方的API提供的,但是他没有办法逐步找到它.
因此,要回答“我们如何让Windows管理员更多地编写脚本?”这一问题,答案是,使脚本编写更不陌生.怎么办,我不知道.
老实说,答案在微软手中.他们没有理由不能使用命令行实用程序来完成通过GUI完成的所有操作. (现在实际上有很多它们,但它们没有被广告,它们的文档记录很差,并且它们不一致.)也没有理由在GUI中没有一些关于什么的暗示那个按钮实际上.有一个工具提示,显示正在修改的API对象.或者在“帮助”窗口中记录它.