好的,所以,我正在编写一个脚本来执行MMC管理单元中的一些命令,我对执行这种脚本并不是很有经验,但我遇到了很多progress...the问题,如果每次脚本运行时我都创建一个新对象,那么在加载管理单元和其中的所有内容时,它将极大地延迟整个脚本(这可能需要长达五分钟的时间)。如果它可以加载一次管理单元内容,然后根据需要控制它,并且只有在没有打开的对象时才创建一个新对象,那么当我在一天内有时运行100次脚本时,我将节省大量的时间。
问题是,我不完全确定如何实现这一点。我认为,在一些研究之后,它应该是GetObject,但当我这样做时
Dim objMMC
Set objMMC = GetObject("", "MMC20.Application")它似乎创建了一个没有加载管理单元的新mmc窗口,而不是我想要的加载了管理单元的现有mmc窗口。
有什么建议吗?我是不是完全错了,使用了完全错误的命令,或者我可以做一些简单的更改来修复这个问题?
编辑:有没有一些奇怪的变通方法可以实现这一点,比如将一个对象存储到一个临时文件中,这样我至少可以通过一个会话重用它。
我已经做了很多研究来弄清楚如何用vbscript来做这件事(我仍然不确定所有的事情),所以在我继续之前,我猜我会试着弄清楚这是否可行(用vbscript或c#或c++或任何其他有人推荐的语言)……
总的来说,我要做的是检查是否打开了包含DHCP管理单元的MMC窗口。如果是,则将其赋给一个变量。如果没有,请创建一个。然后,它将读取csv或txt文件,并使用这些值来确定在管理单元中导航到哪个节点(DHCP>ServerName>IPv4>ScopeName>Scope选项)。(我已经在vbscript中解决了这一部分,但不知道如何在C++或C#中做到这一点)。最后,我需要能够执行右键单击菜单项来“配置选项”,导航到弹出窗口的选项卡中,输入一个值,然后应用更改/点击ok关闭弹出窗口。然后,我基本上只需要以某种方式提醒powershell脚本我已经“完成”,这样它就可以继续运行,或者在出现错误时发出警报。
我并不是要求任何人带我经历这一切,我只是想知道这些步骤中是否有任何步骤不像我所描述的那样是可行的,特别是如果我必须切换到c++或c#来实现第一部分,从而重新学习所需的命令。
发布于 2016-01-07 23:04:40
...并且只有在没有打开的对象时才创建一个新对象...
不,这在VBS中是不可能的,您需要这样做
Dim objMMC
Set objMMC = WScript.CreateObject("MMC20.Application")如果每次脚本运行时都创建一个新对象,则会大大延迟整个脚本
在这种情况下是VBS的错误语言,你需要使用C#或C++可执行文件。
https://stackoverflow.com/questions/34658264
复制相似问题