Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 将变量传递给远程会话Powershell中使用的多个脚本块_Session_Logging_Powershell_Parameter Passing_Remoting - Fatal编程技术网

Session 将变量传递给远程会话Powershell中使用的多个脚本块

Session 将变量传递给远程会话Powershell中使用的多个脚本块,session,logging,powershell,parameter-passing,remoting,Session,Logging,Powershell,Parameter Passing,Remoting,我有一个从域服务器运行的脚本,它在域服务器上“工作” 工作被划分为脚本块中的作业,这些作业使用存储的PSsession调用invoke命令 结果记录在域服务器上的日志文件中,日志文件名中包含日期戳 现在,我需要添加另一个日志,它需要驻留在完成工作的远程设备上。日志名格式还需要包含日期和时间戳 我的问题是将日志的名称传递给每个作业,以便它们写入同一个文件。我已经使用了-ArgumentList、@args和$args,它们可以正常运行,但不做任何操作,因此我没有正确地传递日志文件名 下面是我如何构

我有一个从域服务器运行的脚本,它在域服务器上“工作”

工作被划分为脚本块中的作业,这些作业使用存储的PSsession调用invoke命令

结果记录在域服务器上的日志文件中,日志文件名中包含日期戳

现在,我需要添加另一个日志,它需要驻留在完成工作的远程设备上。日志名格式还需要包含日期和时间戳

我的问题是将日志的名称传递给每个作业,以便它们写入同一个文件。我已经使用了-ArgumentList、@args和$args,它们可以正常运行,但不做任何操作,因此我没有正确地传递日志文件名

下面是我如何构建脚本的超级简化版本

将开始作业嵌套在另一个脚本块中是错误的吗?如何将唯一的日志文件名传递给这些脚本块,以捕获成功/失败和特定点



您可以向脚本块传递参数,如下所示:

$code = {
  param( $foo )
  Write-Host $foo
}

$bar = "bar"
Invoke-Command -ScriptBlock $code -ArgumentList $bar
$code = {
  param( $foo )
  Write-Host $foo
}

$bar = "bar"
Invoke-Command -ScriptBlock $code -ArgumentList $bar