Start-Job и ошибка PSVersion

Мне нужно удалить чертовски много записей с помощью веб-сервиса. Модуль Microsoft.Xrm.Data.Powershell предоставляет несколько командлетов для выполнения этой работы. .

Следующий скрипт должен выполняться разными заданиями:

$packageCmd = {
    param($jobName, $crmConnection, $package)

    # Xrm is not a module that is system-wide loaded 
    Import-Module Microsoft.Xrm.Data.Powershell

    $counter = 0

    write $jobName

    foreach($record in $package) {

        Remove-CrmRecord -conn $crmConnection -EntityLogicalName 'foobar' -Id $record.foobarid
        $counter++
    }
}

Это код, который я использую для выполнения своих заданий:

foreach($p in $packages) {

    $jobname = $jobName =  ('Del_Data_Pak_{0}' -f $packageNumber)
    Start-job  -Name $jobname -ScriptBlock $packageCmd -ArgumentList $jobName, $crmConnection, $p

    $packageNumber++
}

Когда я выполняю свой код, внутри заданий появляется следующее сообщение об ошибке:

Der aktuelle Windows PowerShell-Host ist: "ServerRemoteHost" (Version 1.0.0.0). Zum Ausführen 
des Moduls "C:\Users\foobar\Documents\WindowsPowerShell\Modules\Microsoft.Xrm.Data.Powershell\Micro
soft.Xrm.Data.Powershell.psd1" ist mindestens Version 4.0 des Windows PowerShell-Hosts 
erforderlich.
    + CategoryInfo          : ResourceUnavailable: (C:\Users\foobar\Do...Powershell.psd1:String) [ 
   Import-Module], InvalidOperationException
    + FullyQualifiedErrorId : Modules_InsufficientPowerShellHostVersion,Microsoft.PowerShell.Co 
   mmands.ImportModuleCommand
    + PSComputerName        : localhost

В сообщении об ошибке говорится, что для модуля «Microsoft.Xrm.Data.Powershell» требуется версия 4.0 PowerShell, но текущий узел использует версию 1.0.

На основе онлайн документации для Start-Job я могу передать параметр -PSVersion, но только со значениями 2.0 или 3.0.

Означает ли это, что просто невозможно выполнить задание, использующее модуль, для которого требуется PowerShell 4.0/5.0?

Обновление 2016-02-04: я закомментировал следующую строку в файле «Microsoft.Xrm.Data.PowerShell.psd1»..

# Minimum version of the Windows PowerShell host required by this module
#PowerShellHostVersion = '4.0'

... но теперь я получаю эту ошибку внутри заданий:

Die Argumenttransformation für den Parameter "conn" kann nicht verarbeitet werden. 
Der Wert "Microsoft.Xrm.Tooling.Connector.CrmServiceClient" vom Typ 
"Deserialized.Microsoft.Xrm.Tooling.Connector.CrmServiceClient" kann nicht in den 
Typ "Microsoft.Xrm.Tooling.Connector.CrmServiceClient" konvertiert werden.
    + CategoryInfo          : InvalidData: (:) [Remove-CrmRecord], ParameterBindin. 
   ..mationException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,Remove-CrmRecord
    + PSComputerName        : localhost

Я не понимаю, почему у меня сейчас "Deserialized.Microsoft.Xrm.Tooling.Connector.CrmServiceClient" и "Microsoft.Xrm.Tooling.Connector.CrmServiceClient"


person thuld    schedule 04.02.2016    source источник
comment
ИМХО, это баг модуля. Версия PowerShell и версия хоста — это две разные вещи. Указание PowerShellHostVersion без PowerShellHostName мне кажется странным. Попробуйте прокомментировать эту строку PowerShellHostVersion = '4.0' в манифесте модуля Microsoft.Xrm.Data.PowerShell.psd1 и повторить попытку.   -  person user4003407    schedule 04.02.2016
comment
@PetSerAl Я изменил упомянутый файл, но теперь столкнулся с другой проблемой. Смотрите обновленный вопрос.   -  person thuld    schedule 04.02.2016
comment
@PetSerAl Хорошо, я нашел ваш комментарий по другому вопросу: заголовок stackoverflow.com/questions/34237490/; поэтому я предполагаю, что не могу передавать такие объекты между разными сеансами PowerShell....   -  person thuld    schedule 04.02.2016
comment
Да, вам нужно создать новое соединение внутри задания.   -  person user4003407    schedule 04.02.2016
comment
Я предполагаю, что мне следует переключиться на Runspace, я нашел очень хорошее видео на эту тему: The Art of PowerShell Runspace(youtube.com/watch?v=qyTm-bQrkLY), в этом видео также упоминается поведение сериализации объектов.   -  person thuld    schedule 05.02.2016