При попытке запустить командлет из установленного на компьютере модуля PowerShell может появится ошибка:
The command XXX was found in the module, but the module YYY could not be loaded.
В моем случае эта ошибка появилась при попытке подключиться к тенанту Microsoft 365 с помощью модуля Exchange Online PowerShell.
Connect-ExchangeOnline : The 'Connect-ExchangeOnline' command was found in the module 'ExchangeOnlineManagement', but the module could not be loaded. For more information, run 'Import-Module ExchangeOnlineManagement'. + CategoryInfo : ObjectNotFound: (Connect-ExchangeOnline:String) [], CommandNotFoundException + FullyQualifiedErrorId : CouldNotAutoloadMatchingModule
Чаще всего эта ошибка означает, что у вас на компьютере запуск сторонних модулей ограничивается настройками PowerShell Execution Policy.
Выполните команду:
Get-ExecutionPolicy
В данном случае политика Restricted запрещает запуск сторонних скриптов.
Попробуйте загрузить модуль командой:
Import-Module ExchangeOnlineManagement
Должна появится ошибка:
Import-Module: File C:\Program Files\WindowsPowerShell\Modules\ExchangeOnlineManagement\3.3.0\netFramework\ExchangeOnlineManagement.psm1 cannot be loaded because running scripts is disabled on this system.
Можно разрешить запускать команды из внешних PowerShell модулей только в текущей сессии:
Set-ExecutionPolicy RemoteSigned -scope Process
Или можно запустить запуск любых локальных скриптов для текущего пользователя:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Если при попытке импортировать модуль появится ошибка вида:
Import-Module : Could not load file or assemblyor one of its dependencies. The system cannot find the file specified.
В этом случае скорее всего модуль загружен не полностью или поврежден. Удалите каталог с модулем с диска и переустановите модуль. PowerShell модули устаналиваются в одну из следующих директорий:
-
C:\Users\YourUserName\Documents\WindowsPowerShell\Modules
– в профиле текущего пользователя -
C:\Program Files\WindowsPowerShell\Modules
– обычно сюда устаналиваются сторониие модулиЮ доступные для всех пользователей -
C:\Windows\system32\WindowsPowerShell\v1.0\Modules
– встроенные в Windows модули
Еще один вариант ошибки импорта модуля:
import-module : File …\…\modulename.psm1 cannot be loaded. The file …\…\modulename.psm1 is not digitally signed. You cannot run this script on the current system
Кроме исправления настроек политики запуска PowerShell скриптов причина такой ошибки может быть в том, что указанный файл модуля был вручную скачан с Интернета. В этом случае нужно просто разблокировать скачанный файл командой:
Unblock-File …\…\modulename.psm1