5

作为一个刚接触 Powershell 的人,我一度不是 100% 清楚:

如果

“在 PowerShell 中,管理任务通常由 cmdlet(发音为 command-let)执行, 这是实现特定操作的专用 .NET 类。”

编写脚本而不是使用这些类编写 .Net 可执行文件并将它们编译为控制台应用程序的原因是什么?

4

2 回答 2

8

您可以很容易地问一个问题,当您可以在 PowerShell 中轻松创建完全成熟的桌面和服务器软件时,使用 .NET 编写应用程序的原因是什么?

有理由在不同的情况下同时使用两者。PoSH 脚本本身就是简单的小文本文件,非常容易编写和维护。作为一个涉足两者的人,我想说在很多情况下,使用快速生成的 PoSH 脚本比使用 .NET 应用程序更容易完成系统维护任务。

也就是说,有些事情在 .NET 中更容易完成(我自己使用 C#),但是开发这些事情的过程要麻烦得多,并且需要额外的技能,这在 SysAdmins 中并不常见。

简而言之,PoSH 面向系统管理员,.NET 面向开发人员,但这并不是说没有交叉空间。

于 2012-12-03T22:28:28.783 回答
0

我完全同意@Matt G 的回答。

我只想补充一件事,那就是围绕文化。Windows SysAdmins 文化更多的是“点击”驱动(由图形用户界面管理)而不是编程驱动。

我曾经在 Unix 世界中工作,在那里,系统管理员可以为脚本编写者(sh、csh、ksh ...)提供支持,并且在需要时,他们可以在桌子的一角编写一个小的“C”程序(以提高性能,或充当复杂的文件过滤器等)。

自 .NET (2001) 开始以来,Windows 系统管理员可以使用 C# 编译器(可从 .NET 目录中以 CSC.EXE 的形式获得),因为 Linux 或 Unix 能够使用“cc”编译器,但他们不能。最好的方法是使用 WSH(Window Script Shell),但 VBScript 并不那么容易使用,需要为每种情况发现不同的 COM 对象。

微软,通过多种方式促使 Windows 系统管理员使用命令行和脚本(WSH、netsh、wmic 等)。几年来(2006 年),Microsoft 决定亲自接管系统管理员,并为他们提供了一个 Power 工具,从用户界面中移除了权力(Exchange 2007)。所以现在 SysAdmin 除了使用 PowerShell 之外什么也做不了。但由于他们不是 devolppers,所以语言被解释了,“对象文化”不知何故对初学者来说是隐藏的。

现在优秀的 Windows 系统管理员可以开发自己的 C# 类并将它们内联到他们的 PowerShell 脚本中,系统管理员不是开发人员,他们只需要自动化他们的过程。

于 2012-12-04T04:27:13.813 回答