PowerShell - сервер 2012 - выходит с пользовательской загрузкой модулей

У меня есть расстраивающая проблема с нашим сценарием развертывания, который в настоящее время работает над Сервером 2 008 R2, и я не могу добраться для запуска на Server 2012 из-за проблем с PS, не распознающей наши пользовательские модули, которые мы копируем и импорт.

Ошибка:

Модуль импорта: указанный модуль 'LoggingModule' не был загружен, потому что никакой допустимый файл модуля не был найден ни в каком каталоге модуля.

Я проверил переменную среды PSModulePath и изменил ее вручную для включения нашего пути набора, и я даже установил наш сценарий для вызова файлов модуля непосредственно. Вот раздел соответствующих норм:

try {
. ".\CopyModules.ps1" -debug:$debug
$moduledir = ($env:USERPROFILE + "\Documents\WindowsPowerShell\Modules")

Import-Module $moduledir\LoggingModule\LoggingModule.psm1 -DisableNameChecking -Args $debug

InitializeLogging -LogPathArg "$LocalBuildDirectory\build-log-$(get-date -f yyyy-MM-dd).txt"

if (-not (Get-Module WindowsModule)) {
    Import-Module $moduledir\WindowsModule\WindowsModule.psm1 -DisableNameChecking
}

if (-not (Get-Module WebRequestModule)) {
    Import-Module $moduledir\WebRequestModule\WebRequestModule.psm1 -DisableNameChecking
}
}
catch {
Write-Error "Error importing modules to local system. Application cannot continue without modules being installed correctly"
Write-Error $_
exit
}

CopyModules.ps1:

Param([switch]$debug)

function Get-WorkingDirectory
{
$dir = [System.String]::Empty;

if($hostinvocation -ne $null)
{
    $dir = Split-Path $hostinvocation.MyCommand.path
}
else
{
    $dir = Split-Path $script:MyInvocation.MyCommand.Path
}

return $dir
}

#  "Include" these, with ClientSetup.ps1 first - it defines the globals 
# and functions needed by the other files.

$BuildModulesPath = "$(Get-WorkingDirectory)\Modules\*"
$PSModulePath = (New-Item -ItemType Directory -Path ($env:USERPROFILE + "\Documents\WindowsPowerShell\Modules") -Force -ErrorAction Stop)# | Out-Null

try {
Copy-Item $BuildModulesPath -Destination $PSModulePath -Recurse -Force
if ($debug)
{
    Write-Host "DEBUG: Modules copied from: $BuildModulesPath"
    Write-Host "DEBUG: Modules copied to: $PSModulePath"
}
}
catch {
Write-Error "Could not copy modules to module directory"
throw
}

CopyModules не перестал работать, и я вижу файлы в их каталоге.

Сценарий называют посредством этой команды:

powershell.exe -ExecutionPolicy Bypass \\deployserver.com\Staging\Builds\Scripts\StartBuild.ps1 -build Server2012 -debug

Как примечание стороны это не происходит, когда я добавляю - Версия 2 к команде сценария. Однако я не могу выполнить развертывание в Версии 2 из-за проблем с модулем ActiveDirectory, не загружающимся на Сервере 2012 под режимом Версии 2 (это требуемая версия 3 или выше).

Эта ситуация также происходит при выполнении вышеупомянутой команды с - добавленная Версия 3.

0
задан 21 February 2015 в 01:05
1 ответ

Проблема была в самом файле LoggingModule.psm1. Был сегмент кода, который создал ошибку, которую мне не хватало из-за окна PowerShell и его размера буфера (обрезано вверху). Файл модуля был исправлен, и оставшиеся модули были загружены.

0
ответ дан 5 December 2019 в 12:58

Теги

Похожие вопросы