2015-01-30 10 views
0

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

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

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. 

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

Благодарим за помощь.

ответ

0

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

# 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