我们有一个使用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 {}
中放入任何会引起问题的代码,就可以了。