代码之家  ›  专栏  ›  技术社区  ›  Jim Rush

我正在设计一个厚UI诊断工具,它是否应该与PowerShell直接集成

  •  6
  • Jim Rush  · 技术社区  · 15 年前

    是否值得将PowerShell执行嵌入到工具UI中?其他开发团队在做什么?

    脚本仍然可以在任何PowerShell窗口或工具中独立运行。从用户的角度来看,他们将获得从我们的UI启动脚本的能力。而且,由于UI可以监视脚本作用的相同设备,因此它为脚本的执行和结果的监视带来了一些统一性。嵌入脚本执行为项目带来了更多的工作,我不确定我们希望如何处理显示脚本结果的问题。

    大多数PowerShell用户是否希望在自己的shell环境中或在产品供应商提供的工具中运行脚本?请注意,我们的诊断工具不会像某些Microsoft工具那样自动为用户生成脚本(这对于没有经验的PowerShell用户可能很有价值,但我们希望大多数脚本相当简单,比如在一系列设备上执行命令)。

    3 回复  |  直到 15 年前
        1
  •  5
  •   Keith Hill    15 年前

    幸运的是,嵌入PowerShell引擎和执行命令/脚本并返回结果非常简单。也就是说,我不确定您的场景是否是我将嵌入PowerShell的场景。您询问人们是喜欢从自己的shell还是从工具供应商环境中运行脚本。我不能代表所有人说话,但我使用的shell和编辑器支持一些用于调试、代码折叠、语法突出显示、多个运行空间等的漂亮功能。我不确定您是否愿意努力提供类似的功能。

    嵌入PowerShell的一个原因是作为核心诊断和监视引擎的一部分执行相同的PowerShell cmdlet。这样,您就不必在诊断工具app engine和客户用于自动化的cmdlet之间复制功能。听起来您用于在应用程序中执行诊断和监视的代码与cmdlet中的代码不同?或者应用程序和cmdlet之间是否共享公共代码?

    嵌入PowerShell的另一个原因是允许应用程序本身可以编写脚本,但这似乎不适合您的场景。

    我在应用程序中嵌入PowerShell的另一个原因是,我知道我可以用比等效C#代码少得多的代码获得某些结果。这是一个较弱的原因,我可能不会在商业应用程序中这样做,但我已经将其用于一次性程序。

        2
  •  2
  •   Thomas Lee    15 年前

    我同意Jaykul和Keith Hill的观点——答案是肯定的。

    您可以使用几种方法。但一般来说,我建议您a)创建关键cmdlet作为应用程序UI的一部分,b)在PowerShell上构建GUI(与Exchange团队的做法相同)。

    这样做遵循了微软的领导(所有应用程序都必须具有PowerShell接口),其他应用程序(如VMware,甚至Symantec)也在采用PowerShell。

    创建cmdlet(可能还有提供程序)非常简单-最近发布了一个很棒的cmdlet设计器(请参阅 http://blogs.msdn.com/powershell/archive/2009/10/16/announcing-open-source-powershell-cmdlet-and-help-designer.aspx )对于这个工具。

    希望这有帮助!

        3
  •  0
  •   Jaykul    15 年前

    是的,我认为在这个场景中嵌入PuxBeS壳的主要原因是如果你的UI可以 PowerShell为用户在UI中执行的操作编写脚本,这样他们就可以看到发生了什么,并轻松了解如何实现自动化。这需要从一开始就基于PowerShell设计UI。。。因此,在我看来,您最好只提供cmdlet和示例;)