PowerCLI对决PowerShell 谁才是最好的脚本

系统 Windows
拿VMware的PowerCLI与微软的PowerShell作比较似乎是太可能,因为前者需要后者先安装好,且它仅是一个针对核心PowerShell环境的供应商指定附加物。

拿VMware的PowerCLI与微软的PowerShell作比较似乎是太可能,因为前者需要后者先安装好,且它仅是一个针对核心PowerShell环境的供应商指定附加物。

 

某人仅仅基于其脚本功能而去选择一个虚拟化平台也是不可能的。因此,我这里的比较并不是为了设置一个让两家公司竞争的恶意比赛,我将告诉你各个方案中我喜欢和不喜欢的地方。希望我可以解释两家公司提高其脚本产品的方法。让我们从微软开始吧。

微软的PowerShell

关于SCVMM,我喜欢虚拟化管理的一个方面是其内置的观察脚本窗口。这就像一个脚本记录器,它赋予你如同PowerShell脚本一样的抓取管理行为的能力。当你正在SCVMM内执行一个把一个虚拟机转移到另一个Hyper-V主机的转移任务时,这是这一点的很好举例。在这个向导结束时,将出现一个“查看脚本”按钮,显示一个脚本需要的确切PowerShell命令。

微软PowerShell
图1

从某种程度上讲,这完全是一个来自于SCVMM研发方式的福音。最初,SCVMM是由PowerShell管理的,后来一个图形管理壳的研发围绕它开展起来,因此Windows管理员并不需要了解它背后的PowerShell。

对于微软来说,揭示在后台运行的PowerShell并不难。虽然这不利于管理员使用每个循环、错误检查以及日志的变量来编写PowerShell脚本,但是这对接触PowerShell的新手们来说是非常有用的,至少可以让他们克服在学习如何通过基本的PowerShell命令集来执行普通的管理任务时的困难阶段。

目前,Hyper-V还没有一个官方的命令集,但是James O'Neill创建了一个集合并存储在Codeplex网站。O'Neill采用了应用程序接口并编写了基于此的命令集。随着SCVMM 2012的发布,命令集的数量将会显著增加,人们在SCVMM中可以做的任务量通常也会大幅增加。

VMware的PowerCLI

VMware已经大步前进地在PowerShell中增加了许多新功能,它被称为PowerCLI。在连续的发布中,公司已经显著增加了产品中命令集的数量,差不多有250个命令集。之前的补充缺乏控制ESX主机iSCSI堆栈的命令集,虽然最近的vSphere4.1版本已经填补了这一缺口。

但仍然到处存在奇怪的漏洞。例如,没有任何有意义的有关VMware分布式虚拟网络切换器的命令集。看来公司赞同将其“Host Profiles”功能作为新创建的ESX主机的主要配置工具。购买Enterprise和SKU的客户有权使用分布式虚拟网路切换器和Host Profiles。

未来版本中会有新的部署方法,它们强调会在部署新的ESX主机时在PowerCLI上使用host profiles。值得一提的是,虚拟化专家Luc Dekens已经研发出考虑到DvSwitches管理的功能。如此说来,PowerCLI在VMware社区的主要用途是报告和检查vSphere环境。诸如virtu-al.com的“健康检查”脚本也已经非常受欢迎。

VMware的软件开发包就是一切。这个极其丰富的接口让访问人几乎可以执行每一个想要的行动,无论是在主机上还是vCenter管理服务器上。这与微软唯一官方支持的命令集只针对SCVMM形成了对比。VMware和微软之间存在一些共同之处:都对其管理程序所谓的“免费”版本提供极其有限的PowerShell支持。对于客户可能得到一个免费的管理程序,并用命令行工具管理它而不是为这个管理块支付溢价这一点,两家公司都持谨慎态度。

vCenter自身没有将PowerCLI直接集成到vSphere客户端。想要寻找一些将管理“记录”成PowerCLI代码的方法,你可以查看VMware Onyx,它是一个放置在vSphere客户端和vCenter之间的免费设备,它将行为以原始的PowerCLI SDK代码形式输出。附带说一下,它也把行为以适合VMware的Orchestrator的Java脚本格式输出。

Onyx的输出可能会有点让人不知所措,但请不要被吓到。通过一个图形用户界面和在任务完成之后收集的PowerCLI代码,我们用于执行管理任务的方式更为友好。人们应该利用PowerGUI的前端以及可扩展其功能的各种PowerPacks。PowerGUI对包括活动目录在内的种类繁多的管理任务有效,但是从虚拟化的角度来看,为VMware的vSphere、Citrix的XenServer、Microsoft的HyperV、虚拟磁盘分析、HP的虚拟连接以及Quest的vWorkspace准备了PowerPacks。

VMware,PowerCLI
图2

与此同时,VMware正在试图将PowerCLI支持扩展到其他技术,这也是微软已经准备要在今后做的事情。这里有一个PowerCLI作为VMware的虚拟桌面解决方案,称为View,但是这个实施方案与vSphere PowerCLI的实施大不相同。感觉起来它更像一个DOS命令行系统而不是PowerShell,并且它允许流水线技术以及查询对象的属性和特性。截至目前,虽然像虚拟机站点恢复管理这样的技术不具有PowerCLI,但是它很有可能出现在虚拟机的雷达屏幕上。

对于那些没有生活在Windows世界的人来讲,PowerShell和PowerCLI已经在系统管理世界引起了巨大冲击波。但是基于Linux的脚本编写者也许会觉得遭受了冷落。VMware提供了Perl语言,而微软没有,但这是指日可待的。

相似的老版CLI和远程CLI似乎也正在消亡,就像VMware到vCLI和vCLI设备的“ESX”命令行端口一样。现在,它们想要一个中间步骤,想让VMware客户对老版“服务控制台”环境的依赖。现在,似乎PowerShell和PowerCLI为为可预见的未来规定系统管理员的休息场所。

【编辑推荐】

  1. 如何使用PowerShell管理微软Hyper-V
  2. PowerShell函数的基本指南与特性
  3. 利用PowerShell缩短SharePoint备份时间
  4. PowerShell与.NET框架之间的点连接
  5. WMI中的Windows PowerShell脚本使用方法

责任编辑:张浩 来源: TechTarget中国
相关推荐

2011-07-11 09:35:52

VMwarePowerCLI微软

2019-12-11 15:50:12

数据库数据页面

2021-02-22 10:54:28

AI 数据人工智能

2023-08-29 08:57:03

事务脚本架构模式业务场景

2023-09-05 07:04:51

PowerShell运维

2011-04-25 13:19:07

2017-11-15 05:21:58

物联网企业软件IoT

2017-10-28 08:28:18

物联网产业链互联网

2011-09-06 14:16:09

VMware微软

2018-12-04 15:46:53

编程语言Python

2024-03-20 09:00:00

人工智能AI大模型深度学习

2013-07-23 15:10:34

PowerShell

2009-05-18 09:12:59

JavaRuby on RaiMVC

2011-10-18 17:00:02

2022-10-21 14:28:17

商家平台消费者

2022-07-10 07:51:46

元宇宙3DWeb

2023-05-15 12:33:47

JavaPython编程语言

2015-10-19 11:28:49

WebAPP未来

2016-08-01 15:06:28

混合SDN

2022-05-31 09:57:36

编程语言Go语言Python
点赞
收藏

51CTO技术栈公众号