Запустить Powershell.exe из командной строки (cmd.exe) с ключами -Command и -File?

У меня есть простой модуль под названием MyModule.psm1 определяется как

function Show-Text($p)
{
    Write-Host $p
}

Export-ModuleMember Show-Text

Модуль сохраняется здесь - (все работает нормально, обычным способом через ISE или прямую командную строку Powershell)

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\Modules\MyModule (because 64-bit OS)

Теперь у меня есть скрипт Test.ps1 как это

Show-Text "Hello World"

NB: я не хочу делать модуль импорта MyModule в файле ps1

Я запускаю следующую команду из окна cmd.exe

C:\>Powershell -Command "& {Import-Module MyModule}" -File "C:\temp\Test.ps1"

Я получаю следующую ошибку

Модуль импорта: указанный модуль "MyModule" не был загружен, поскольку ни в одном каталоге модулей не было найдено допустимого файла модуля. В строке:1 символ:17 + & {Import-Module <<<< MyModule} -File Show.ps1 + CategoryInfo: ResourceUnavailable: (MyModule: String) [Import-M odule], FileNotFoundException + FullyQualifiedErrorId: Modules_ModuleNotFound, Microsoft.PowerShell.Comm
ands.ImportModuleCommand

Может кто-нибудь помочь мне, как выполнить exactly what I have stated выше через cmd.exe ТОЛЬКО без жесткого кодирования или без указания полного пути модуля, пожалуйста?

Что-то похожее мы делаем для загрузки SystemModules - powershell.exe -ImportSystemModules

2 ответа

Решение

Вы используете 32-разрядный cmd.exe? Если это так, то импорт-модуль должен работать. Если вы используете 64-битный cmd.exe, он запустит 64-битный PowerShell.exe, если вы не укажете полный путь к 32-битной версии PowerShell.exe (c:\windows\syswow64\windowspowershell\v1.0\powershell.exe).

Вы понимаете, что SysWOW64 32-битный и System32 64-битный верно?

Модуль присутствует в пути поиска 32-битного модуля Powershell и, следовательно, будет виден только 32-битной консоли Powershell. Если вы вызываете powershell из 64-битного cmd консоль, вы откроете 64-битную.

Либо откройте 32-битную командную строку или переместите ее на путь 64-битных модулей,

Другие вопросы по тегам