2

我们有一个使用 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 命令行实用程序,我会得到管理单元。否则,不会“添加”任何内容。

谢谢 !

4

1 回答 1

0

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

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

一旦你知道了区别 - 你只需要放入任何导致问题的代码,if {} else {}你应该很高兴。

于 2013-04-08T21:49:12.283 回答