PowerShell / WMI泥潭

最近PowerShell有个问题一直困扰着我。事实上,这件事可能一直困扰着我。但是,当我看到这个系列时:Hyper-V WMI使用PowerShell脚本在虚拟化团队的博客上。不知什么原因,我很生气。

事情是这样的。在我看来,PowerShell已经陷入了一个WMI泥潭。由于某种原因,默认方法变成了“类似powershell”的脚本,使用WMI完成系统管理任务。换句话说,WMI不是创建一组cmdlet,而是成为完成手头任务的工具。

别误会,我喜欢WMI。事实上,我经常在自己的脚本中使用WMI。然而,使用WMI是一件非常痛苦的事情(是的,PowerShell极大地改善了这种体验),而我是一个脚本极客。另一方面,PowerShell应该是为it专业人士设计的。我认识很多it专业人士,他们甚至不喜欢在PowerShell中使用WMI。

例如,在我之前提到的Hyper-V例子中,有一个帖子的标题是:使用PowerShell的Hyper-V WMI -第4部分和负1".在这篇文章中,给出了两个示例,展示了如何使用WMI关闭虚拟机。第一个示例使用PowerShell,只有三行。

$Vm = Get-WmiObject -Namespace root\virtualization -Query "Select * From Msvm_ComputerSystem Where ElementName='Vista'"

$ShutdownIC = Get-WmiObject -Namespace root\virtualization -Query "Associators of {$Vm} Where AssocClass=Msvm_SystemDevice ResultClass=Msvm_ShutdownComponent"

ShutdownIC美元。initiateshudown ("TRUE", "Need to shutdown")

第二个示例使用c#,大约有40行。显然,PowerShell方法是一个巨大的改进。然而,这并不意味着没有进一步改进的空间。看一下PowerShell示例,我仍然看到一团混乱,一组cmdlet将极大地改善管理员体验。也许类似:

$VM = get-hvvm -name "myvm123"

stop-hvvm VM美元关闭

这看起来很简单,然而,由于某些原因,微软产品组和其他第三方似乎坚持要将PowerShell + WMI推向大众。而不是开发一组健壮的cmdlet,供管理员用来管理他们的系统。我们得到了一个WMI提供者。: < (

幸运的是,Hyper-V并没有失去所有的东西。似乎有人接过了火炬,创造了一套 cmdlets功能。你可以在这里得到这些函数:Hyper-V的PowerShell管理库".

加入网络世界社区足球竞猜app软件脸谱网LinkedIn对自己最关心的话题发表评论。
相关:

版权©2008足球竞彩网下载

2021年IT薪资调查:结果在