首先,我希望我没有重复发帖。如果重复,我会立即删除。
我浏览过本网站上的许多问题/答案,试图找到我应该使用哪种脚本语言,并且我看到很多人推荐 PowerShell,特别是如果他们像我一样对脚本完全陌生。
我的工作环境大约有 150 台机器,装有各种 MS 操作系统,从 XP 到 Server 2008 R2 Enterprise。
我发现我的一个同事在很多工作中都使用 CSSCRIPT……我们给他起了个绰号叫“脚本之王”。他把代码记住得如此彻底,以至于他似乎根本不知道有什么好的建议,比如我该如何学习它,或者哪种脚本语言最适合我。
正如我所说,我正在研究 PowerShell,因为其他帖子似乎也建议这样做。我不想在所有 150 台机器上安装某些东西才能使我的脚本正常工作。我希望能够远程运行一个脚本来移动文件、更新文件、收集有关机器及其注册表和其他各种信息等。
在这两种脚本语言或任何其他脚本语言之间(因为我对此完全陌生并想学习),有什么建议?
如果这是重复的,我很抱歉。我找不到与这个特定问题相关的任何内容,但有很多非常非常密切相关的内容。
答案1
如果您在 Microsoft 环境中工作,那么答案就是 Powershell。
Powershell 实际上是 Microsoft 管理员今后的必备工具。它旨在从各个方面取代和超越 VBscript。
更不用说这几乎是 MS 迄今所做的最令人敬畏的事情了……也许是有史以来最令人敬畏的事情!
对于您同事使用什么脚本编写的问题——我不知道“csscript”,但我知道“cscript”是 VBScript 脚本主机的命令行版本。所以也许您看到的是 VBscript。这也是一种非常流行的 Microsoft 脚本语言。但它不像 Powershell 那样现代。
答案2
除了 Ryan 的回答之外,Powershell 脚本功能今后将成为 Microsoft CEC(通用工程标准)的一部分,这意味着今后发布的所有 MS 产品都必须提供一些 Powershell 脚本功能。
许多产品都牢记这一点,在 VMM 中,所有管理工作都通过 Powershell 完成。事实上,GUI 只是构建 powershell 脚本来执行您要求它执行的操作。在 Exchange 2007 和 2010 中,有些管理操作只能通过 Powershell 执行(当然,这些操作并不常见)。
Powershell 的好处是它基于 .Net 构建并且能够访问所有 .Net 功能(您通常可以使用 C# 示例来了解如何在 Powershell 中直接从 .Net 执行操作)。
您无需通过管道传递文本,而是传递完整形式的对象,从而允许管道下方的 cmdlet 访问对象的所有属性和方法,而无需任何中间的 cmdlet 关心它们。这也可以使代码非常具有可重用性。
最后,Powershell 是以管理员为中心,而不是以开发人员为中心。Powershell 的标准允许管理员以相当直观的方式发现语言和功能,同时仍允许开发人员和高级脚本编写者访问所有底层功能。在理想情况下,您将有一个 cmdlet 来完成所有需要完成的小任务,如果没有,您可以通过 powershell 对 .Net 的访问编写一个,直接在 .Net 中编写一个 cmdlet,或者找一个开发人员来做同样的事情。