У меня есть расширенная функция 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, чтобы скопировать ее, поскольку она теперь происходит автоматически, пока она доступна только в модуле. Поэтому мне просто нужно выяснить, как захватить вывод в файле журнала.
Благодарим за помощь.