注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

奕克

爱家人爱工作爱生活

 
 
 

日志

 
 

假如你想让计算机自动完成一些配置,就应该看看这篇文章  

2010-04-07 14:07:59|  分类: 技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Scriptomatic 工具如果您和我们大多数人一样,长时间无精打采地凝视着窗外,看着同道的系统管理员们驾着美洲虎和保时捷飞驰而过,前往蒙特卡洛或其他外地。毫无疑问,您会扪心自问,“伙计,我懂得的系统管理知识并不比那些人少,可是为什么他们就有高档汽车、游艇和劳力士手表?”
好,我们这就来告诉您一点小秘密。因为他们知道如何编写 WMI 脚本,而您却不知道!
事实上,这是一个假象。实际情况是,学习如何编写 WMI 脚本并不会使您变富和出名(我们真希望做这项工作之前就有人告诉我们这一点)。另一方面,Windows 管理工具 (WMI) 脚本可以使系统管理工作更加轻松,脚本可以完成工作日许多单调、重复的琐碎事务,为您节省出大量时间去做其他事情。
当然,您可能在想,“为什么我要浪费时间编写 WMI 脚本呢?那些编写脚本的人已经写出了每个可能的 WMI 脚本并把它发送到了TechNet 脚本中心?”
对不起,让您失望了,但我们并没有让您失望。实际上,如果您曾浏览过脚本中心,那么,您可能有两种反应。首先,您会说:“哇!看看所有这些脚本!”然后,屏住呼吸,您很可能会添上一句“等等,返回有关视频卡信息的 WMI 脚本在哪儿?返回有关网络适配器信息的 WMI 脚本在哪儿?返回下列信息的 WMI 脚本在哪儿? [选择任一及所有适合的选项:处理器、主机板、电池、USB 口、IDE 控制器、键盘、监视器、声卡,等等,等等。]”
嗨,好,承认这一点。真实情况是,我们自己太懒,并没编写所有那些脚本(另外,脚本也是太多)。但是我们做了另外一件很好的事,就是开发了没有申请专利的 Scriptomatic,这种神奇的新工具可以帮助您编写 WMI 脚本即使您一点不懂 WMI下载 Scriptomatic (Scriptomatic.exe),成为区中第一人
免责声明:这表示我们建议您不要学 WMI 吗?毫无疑问,答案是否定的。毕竟,我们正在编写一本旨在教授 WMI 脚本的书。事实上,对于有兴趣从头学习 WMI 的人,我们有在线的 WMI 脚本自学材料.
另外,我们知道您很忙,您访问如脚本中心等 Web 站点是因为您没有时间学 WMI,更不用说坐下来编写 WMI 脚本了。这也是我们创建 Scriptomatic 的原因。只要您可以接受一些限制,Scriptomatic 就会替您编写 WMI 脚本。它甚至可以替您洗车、给地板打蜡、切菜!
好。但是它确实可以为您编写 WMI 脚本。
微软的标准支持程序或服务不支持 Scriptomatic。Scriptomatic “概不保证”,不以任何形式进行担保。微软进一步声明,所有保证包括但不限于适销性﹑特殊用途适宜性的默示保证。对因使用 Scriptomatic 及其文档而产生的全部风险由用户负责。即使微软已被告知可能存在这样的损害,微软、作者或任何与创造、生产或传送脚本相关的人都不对因使用或无法使用 Scriptomatic 或样例脚本或文档而造成的损害负责(包括但不限于商业利润损失、业务中断损失、商务信息丢失或其他金钱上的损失带来的损害)。
在做其他事情之前,我们先来解释一下 Scriptomatic,它是干什么的。Scriptomatic 是超文本应用程序的一个例子,实质是使用 .hta 文件扩展名的网页。启动 Scriptomatic 后,它将自动把所选组的 WMI 的类名(例如,Win32_SoundDevice 和 Win32_NetworkAdapter)加载到下拉列表框中。Scriptomatic 完成加载后,只要选择所需的类—— 瞧!您这就拥有了从 Win32_SoundDevice 或 Win32_NetworkAdapter 返回信息的脚本。
简要说明为什么 Scriptomatic 是超文本应用程序?有两个原因。第一,我们希望利用脚本代码和具有无与伦比、强大功能的记事本来编写 Scriptomatic。这种方法构建 Scriptomatic 不仅快速、简单,而且还可以示范我们所讲授的东西。我们确实是在用脚本来完成有效的工作。(尽管挪用脚本仍然还是个很遥远的梦想。)
第二,虽然网页界面看起来感觉不错,但是,WMI 脚本被认为是不安全的。如果您在一个常规的网页(也就是,有.htm 文件扩展名的网页)内嵌入 WMI,则您将连续不断地收到告警消息框:WMI 用于脚本是不安全的。因为 hta 文件所遵循的严格安全预防措施与常规的网页不同,hta 文件提供了一种避开所有这些告警的方法。(实际上,有几种方法都是针对着这个问题的,但 ……)
简要说明 2。别担心。Hta 文件也许能够使您避开“脚本不安全”的警告,但它们不能避开其他种类的安全问题,如 NTFS 权限。如果您从一个远程计算机检索信息,您必须是那台远程计算机的管理员。hta 文件也是不会让您避开这些限制的。
Scriptomatic 依赖于两个重要原则,首要的原则就是这样的事实:可以使用 WMI 来返回有关 WMI 的完整信息。这样说似乎并没有多大意义,因此可以这样说:可以写一个简单的 WMI 脚本,该脚本告知在计算机上哪些 WMI 类可用,并告知在每个类中哪些属性和方法可用。这就是 Scriptomatic 背后的全部思想。Scriptomatic 利用 WMI 来确定哪些 WMI 类可用,用 WMI 来推断某一特定类的属性,并自动构建一个可以用来返回这些属性值的脚本。
 
背后的第二个指导原则是大多数 WMI 脚本遵循同一格式(参见我们的在线 WMI 脚本自学材料,可以解释这种格式)。一般情况下,设计 WMI 脚本是为了返回有关某部件的信息,可能是一个监视器、不间断电源或硬盘。大多数脚本遵循同样的格式:连接到计算机,连接到所需的类,回应每个类内的各个属性值。通过遵循这种同样的格式,我们能够创建一个通用的脚本模板,可以返回计算机上大多数感兴趣的 WMI 类的信息。(我们马上来解释我们所指的感兴趣的意思)。
但实际上您并不关心这个,是吧?您只想实际看看运行中的 Scriptomatic,是吧?没问题。下载文件,启动起来。这时,您就可以看到类似于下面的内容:
假如你想让计算机自动完成一些配置,就应该看看这篇文章 - wucccsk - wucccsk的博客
很兴奋,是吧?但坐稳了,过一两分钟,Scriptomatic 中将弹出最有趣、最有用的 WMI 类。然后,Scriptomatic 看起来如下:
假如你想让计算机自动完成一些配置,就应该看看这篇文章 - wucccsk - wucccsk的博客

 

那么,现在怎样用 Scriptomatic 来编写脚本?信不信由你,这只需要两个步骤:1) 单击包含所有可用类名的下拉列表框,2) 选择所需的类。一个新的脚本随即就出现在 Scriptomatic 中,如下所示:
假如你想让计算机自动完成一些配置,就应该看看这篇文章 - wucccsk - wucccsk的博客

 

这就像是梦想成真了,对吧?(您们确实需要找寻更美好的梦想。)
就本身来说,这相当不错。但 Scriptomatic 可以做更多的事情,而不仅仅是为您编写脚本。例如,Scriptomatic 自动返回各个属性值。但是,如果您要是不需要每个属性的值呢?要是您只想要某几个所选属性的返回值呢?没问题。Scriptomatic 生成的脚本是完全可编辑的。只要删除您不想要的代码行就可以了。
本日提示,第一点。 Scriptomatic 是用来返回本地计算机的信息的,但要是您想返回远程计算机的信息呢?很简单。您可能注意到了每个 Scriptomatic 脚本的第二行都是这样的:
strComputer = . 
对远程计算机运行脚本,只要把点(.)改为远程计算机的名称即可。例如,要从一个名为 MyWebServer 的计算机返回信息,则把脚本的第二行改为:
strComputer = MyWebServer 
如果脚本碰巧是您想挂起的守护程序,这样您就可以反复地使用它(或者,也可以返回,还可以日后更改),这又该怎么办呢?只要单击Save按钮,给脚本命一个名,(确保使用 .vbs 文件扩展名)。随后,Scriptomatic 将保存该编辑框中当时发生的一切变化。
如果您不相信我们,那怎么办?要是您不相信这些都是实实在在、活生生的、现成的脚本呢?如果您认为,“当然,我能解决所有的问题从而保存该脚本,随后我可以找到该脚本并运行它,做完这些却什么也没发生”,这又该怎么办呢?那么,如果要运行该脚本,只需单击Run按钮。则出现一个命令窗口,该脚本就开始运行。
免责声明:运行任一 Scriptomatic 脚本都绝对安全,因为它们所做的就是返回信息。Scriptomatic 脚本不需要在计算机上配置任何信息。说真的,下面就是最糟糕的情况。在计算机上创建返回有关磁带驱动器信息的脚本。运行该脚本,结果在计算机上没有磁带驱动器,仅此而已!天哪,接着发生了什么事?脚本继续运行,却不返回任何信息。这就是所发生的最糟糕的事情。
本日提示,第二点。我们设计 Scriptomatic 原本是为了可以快速、简单地编写脚本。但是完成后,我们才意识到我们已经无意间创建了一个便利的小型管理入口。想知道计算机内装有什么服务吗?启动 Scriptomatic,选择Win32_Service类,然后单击Run。想了解计算机上共享文件夹的更多信息吗?选择Win32_Share,单击Run。急切想了解安装的硬盘情况吗?选择Win32_DiskDrive即可。利用这样的一个工具(与之对应的是微软管理控制台 [MMC] 的嵌入式管理单元集合),就可以查出计算机上各种感兴趣的信息。如果想查出有关远程计算机的信息,则更改计算机的名称,就可以了。
如我们上面所指,这些都是实实在在、活生生的、现成的脚本。例如,下面是选择 Win32_Registry 类而实际生成的脚本,(假设您运行于微软的 Windows??XP 之上,如果您运行不同版本的 Windows,则 Win32_Registry 的属性可能略微不同):
On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_Registry,,48") For Each objItem in colItems    Wscript.Echo "Caption: " & objItem.Caption    Wscript.Echo "CurrentSize: " & objItem.CurrentSize    Wscript.Echo "Description: " & objItem.Description    Wscript.Echo "InstallDate: " & objItem.InstallDate    Wscript.Echo "MaximumSize: " & objItem.MaximumSize    Wscript.Echo "Name: " & objItem.Name    Wscript.Echo "ProposedSize: " & objItem.ProposedSize    Wscript.Echo "Status: " & objItem.Status Next 
下面是该脚本实际生成的输出:
Caption: Registry CurrentSize: 3 Description: Registry InstallDate: 20011029113047.000000-480 MaximumSize: 41 Name: Microsoft Windows XP Professional|C:\WINNT|\Device\Harddisk0\Partition1 ProposedSize: 41 Status: OK 
这是否非常美妙?
那么,Scriptomatic 是所有编写脚本要求的答案吗?不是。尽管有许多优点,Scriptomatic 确实还有一定的局限性:
•设计的 Scriptomatic 只与类的一个子集协同工作,即返回属性值的 Win32 类。WMI 类有数百种,但很多类对脚本编写人员都没用,主要是因为它们并不返回数据(这对很多的 CIM 类都是如此,如 CIM_Service,它返回计算机上所装服务的数据)。与其显示所有的类,让您试图找出哪些是有用的,哪些是没用的,倒不如我们做一些行政决策,将所显示的类限制为:1) 返回数据的类;2) 能在 root\cimV2 命名空间下找到的类,还有,3) 名字以 Win32_ 开头的类。这使 Scriptomatic 工作起来更简单,并且囊括了大约百分之 98 的更有用、也更感兴趣的 WMI 类。当然,这也意味着百分之 2 的更有用、也更感兴趣的类被漏掉(在 Microsoft Windows Server??2003 上该值更大,该平台将大量既感兴趣又有用的类放置在命名空间内而不是 root\cimv2 中)。
我们认为,初级脚本编写人员在 Windows 2000 上工作,并没有太大问题。在 Scriptomatic 的未来版本中,我们会考虑是否可以提出一种方法来获得更全面的覆盖范围。但如果您已经是一位高级的脚本编写人员,并且已经在 Windows Server 2003 上工作,该怎么办呢?记住,Scriptomatic 只是一个 .hta 文件。这意味着您可以用记事本把它打开,更改加载类的代码。如果您是位很有经验的 WMI Scripting Guy,那么这不过是一件微不足道的事情。
如果您不是位很有经验的 WMI Scripting Guy,则要预先警告您:以记事本打开 Scriptomatic 会立即使您的授权无效。
或者说,如果我们确实提供了授权,那么至少会是这样。
•Scriptomatic 不会返回所有属性的值。我们承认,在开发 Scriptomatic 时,我们有些投机取巧。某些 WMI 属性以阵列的形式返回,(例如,Win32_Printer 类有一种 Capabilities 属性,可以返回打印机性能阵列)。迭代阵列需要附加码,我们必须查看是否每个属性都是阵列,如果是的话,必须添加特殊代码以进行迭代。无论如何,这都是可能完成的工作,但我们只是没有时间去做。结果,您就不能返回某个属性的任一值,如 Win32_Printer Capabilities。
好,我们将把它添加到版本 2 中。哇。
•Scriptomatic 不会为您解释返回值。当您向 WMI 询问装在计算机上的所有服务的状态时,您将得到类似下面的信息:服务 A — 运行,服务 B — 停止,服务 C — 运行,非常一目了然, 是吗?但是,当您向 WMI 询问由打印服务器管理的所有打印机的状态时,您将得到类似下面的信息:打印机 A—4; 打印机 B—4; 打印机 C—7。换句话说,您将得到一个整数值,这需要依靠您来添加代码以解释该数值吗? 4 解释为正在打印而数值 7 解释为 离线.
Scriptomatic 不能替您做这种解释。另外,Scriptomatic 不能提供查看这些返回值的意义的方法。现在,您只好依赖WMI SDK。将来,我们将考虑研究采取不同的方法把这种信息集成到 Scriptomatic 中。
•Scriptomatic 只能返回属性值;它不能用来运行方法。如果您想要了解装在计算机上的所有服务的详细信息,则 Scriptomatic 是您最理想的工具。它是真正的信息检索机。但是如果您想停止某项服务或启动某项服务,利用 WMI 仍然可以完成这些操作吗?对不起,在当前的版本中,Scriptomatic 还不能做这些。但是如果有足够的兴趣,在将来,我们会研究添加这种功能的可能性。
•Scriptomatic 只与 WMI 协同工作。这看起来可能并不是一种局限。毕竟,WMI 是这样的一种方法:获得有关计算机、运行于该计算机上的软件、连接到计算机上的外围设备等等的信息。WMI 不能做的事情(或者做得不是很好的事情)就是获得存储在“当前目录”中的信息吗?目录服务。这表示您不能使用 Scriptomatic 来编写返回有关用户帐户或组织单元或安全小组信息的脚本。但是稍等一下,当 Scriptomatic 的子产品在不久的将来登台亮相时,我们希望能够加入写 ADSI 和 WMI 脚本的功能。
说实话,我们列出的所有这些局限性,只是为了防止有人说,“嗨,您从来未告诉我们 Scriptomatic 不能……” 但是不要让这些局限性妨碍了您。Scriptomatic 完美吗?是的,它很完美。哦,等等,不,它并不完美。但是它非常出色,而且,它有趣、简单,我们是否可以这样说——它是编写 WMI 脚本的一种入门培训手段。而且是免费!您还要求什么呢?
嗯,这被认为是一个带修辞色彩的问题。只要下载 Scriptomatic,看看它是不是并没使您的生活更加美好。制定计划,在回家的路上顺便到美洲虎经销店处看一看。
产品支持注释。我们为 Scriptomatic 提供了哪种产品支持?当然没有。您靠的是自己。但是,我们的确对您喜爱(和不喜爱)Scriptomatic 的哪些方面感兴趣,希望得到您们的建议以备未来版本之需。给我们写信到[email=scripter@microsoft.com] scripter@microsoft.com[/email]。
系统需求注释。我们承认,我们并没有经过多年严格的测试,来精确地运行 Scriptomatic。但是,我们所做的测试表明它运行在装有 Windows?XP、Windows?2000 和 Windows Server?2003 的计算机上应该没有任何问题。如果您安装了 Service Pack?6.0、Internet Explorer?5、WMI 以及 Microsoft Windows Script?5.6 (whew!),那么,它还可以运行在装有 Microsoft Windows?NT? 4.0 的计算机上。在装有 Windows?98 的计算机上,Internet Explorer?5、WMI 和 Windows Script?5.6 看起来运行得也不错。
  评论这张
 
阅读(210)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017