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

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

我遇到的问题是,当我启动此内部应用程序时,以上代码行会引发错误。

我的问题是,有没有一种方法(在我的个人资料脚本中)可以测试WHO或正在尝试打开个人资料并相应地执行操作的内容?

示例可能是:
if (!internalApplication)
{
    Add-PSSnapIn CompanySnapin
    Add-PSSnapin PowerShellTestTools
    Add-PSSnapin SqlServerCmdletSnaps -ErrorAction SilentlyContinue
}

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

谢谢 !

最佳答案

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

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

一旦知道了区别-您只需要在if {} else {}中放入任何会引起问题的代码,就可以了。

08-15 17:00