PowerShell Invoke-Command для расширенной функции

У меня есть расширенная функция Copy-FilesHC, доступная в файле модуля. Эта функция копирует некоторые файлы из папки Source в папку Destination и создает некоторые выходные данные в файле журнала.

Функция отлично работает локально:

Copy-FilesHC -Source $Src -Destination $Des *>> $Log

Он также работает на удаленной машине:

# For remote use we need to make it available first
Import-Module (Get-Command Copy-FilesHC).ModuleName

Invoke-Command -Credential $Cred -ComputerName $Host -ScriptBlock ${Function:Copy-FilesHC} -ArgumentList $LocalSrc, $LocalDes

Однако я не могу понять, как я могу передать вывод в файл журнала, как в первой команде. Когда я пытаюсь сделать следующее, это не удается:

Invoke-Command -Credential $Cred -ComputerName $Host -ScriptBlock ${Function:Copy-FilesHC *>> $Log} -ArgumentList $LocalSrc, $LocalDes

Invoke-Command : Cannot validate argument on parameter 'ScriptBlock'. The argument is null. Provide a vali
d value for the argument, and then try running the command again.

Как указано здесь, я думал, что $ sign для ScriptBlock был неверным. Но таким образом мне не нужно помещать мою расширенную функцию в ScriptBlock, чтобы скопировать ее, так как теперь это происходит автоматически, пока она доступна только в модуле. Поэтому мне просто нужно выяснить, как записать вывод в файл журнала.

Спасибо за помощь.


person DarkLite1    schedule 30.01.2015    source источник


Ответы (1)


Несколько минут назад нашел решение:

# For remote use we need to make it available first
Import-Module (Get-Command Copy-FilesHC).ModuleName

Invoke-Command -Credential $Cred -ComputerName $Host -ScriptBlock ${Function:Copy-FilesHC} -ArgumentList $LocalSrc, $LocalDes *>> $Log
person DarkLite1    schedule 30.01.2015