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