【问题标题】:PowerShell Invoke-Command on an advanced function高级功能上的 PowerShell 调用命令
【发布时间】:2015-01-30 08:26:55
【问题描述】:

我有一个高级函数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.

here 所示,我认为ScriptBlock$ sign 不正确。但是这样我就不需要将我的高级函数放在 ScriptBlock 中来复制它,因为它现在会自动发生,而它只在模块中可用。所以我只需要找出如何在日志文件中捕获输出。

感谢您的帮助。

【问题讨论】:

    标签: powershell remoting invoke-command


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 1970-01-01
      • 2021-12-24
      • 2016-12-12
      • 1970-01-01
      相关资源
      最近更新 更多