【问题标题】:Conditional loading of snapins in profile有条件地加载配置文件中的管理单元
【发布时间】:2013-03-31 02:29:01
【问题描述】:

我们有一个使用 PowerShell 的内部应用程序。在我的个人资料 (Microsoft.PowerShell_profile.ps1) 中,我添加了对我们创建的各种管理单元的引用:

#
# Profile for Joe Blow
#
Add-PSSnapIn CompanySnapin
Add-PSSnapin PowerShellTestTools
Add-PSSnapin SqlServerCmdletSnaps -ErrorAction SilentlyContinue

我遇到的问题是,当我启动这个内部应用程序时,上面的代码行会抛出错误。

我的问题是,有没有办法(在我的个人资料脚本中)可以测试谁或什么试图打开个人资料并做相应的事情?

示例可能是:

if (!internalApplication)
{
    Add-PSSnapIn CompanySnapin
    Add-PSSnapin PowerShellTestTools
    Add-PSSnapin SqlServerCmdletSnaps -ErrorAction SilentlyContinue
}

因此,如果我启动 PowerShell 命令行实用程序,我将获得管理单元。否则,不会“添加”任何内容。

谢谢!

【问题讨论】:

    标签: powershell command conditional loading


    【解决方案1】:

    这确实取决于自定义应用程序/主机的实现。这也意味着至少有几种方法可以给猫剥皮。

    您可以先检查$Host.Name 是否不同。 接下来 - 检查是否存在/设置了某些属性(例如 $Host.UI.RawUI.BackgroundColor)。

    一旦您知道区别 - 您只需将任何导致问题的代码放入 if {} else {} 即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-05
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多