Как правильно игнорировать ошибки Import-Module в PowerShell

В настоящее время у меня возникают проблемы при вызове Import-Module с помощью Powershell, и я был бы признателен за некоторые советы.

Согласно предыдущим вопросам и ответам здесь, следующую ошибку, полученную при попытке импортировать модуль с помощью PowerShell, можно игнорировать:

Файл пропущен, поскольку он уже присутствовал в «Microsoft.PowerShell».

Проблема в том, что он будет перехвачен, если команда импорта находится внутри оператора try/catch.

Я читал несколько сообщений об этом (пример PowerShell на SCOM не удалось импортировать модуль), и в одном из них упоминалось о попытке добавить «-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: $_" 
}

7
задан Community 23 May 2017 в 11:56
поделиться