我目前在使用 Powershell 调用 Import-Module 时遇到问题,不胜感激。
根据此处先前的问题和答案,在尝试使用 PowerShell 导入模块时收到以下错误,可以忽略:
文件已跳过,因为它已经存在于“Microsoft.PowerShell”中。
问题是如果 import 命令在 try / catch 语句中,它将被捕获。
我已经阅读了许多关于此的帖子(例如SCOM 上的 PowerShell 无法导入模块),其中一个确实提到尝试将“-ErrorAction SilentlyContinue”添加到 Import-Module 命令中,但不幸的是这并没有什么区别。
下面是我目前用来测试问题的代码,它可以让您更好地理解我想要实现的目标。
有没有人成功地忽略了这些关于模块导入的警告,而之前包裹在 try/catch 中?
谢谢你的时间,
安德鲁
function load_module($name)
{
if (-not(Get-Module -Name $name))
{
if (Get-Module -ListAvailable | Where-Object { $_.name -eq $name })
{
Import-Module $name
return $true
}
else
{
return $false
}
}
else
{
return $true
}
}
$moduleName = "ActiveDirectory"
try
{
if (load_module $moduleName)
{
Write-Host "Loaded $moduleName"
}
else
{
Write-Host "Failed to load $moduleName"
}
}
catch
{
Write-Host "Exception caught: $_"
}