gpt4 book ai didi

powershell - 如何将 -Verbose 参数传递给 Invoke-Command 内部调用的函数?

转载 作者:行者123 更新时间:2023-12-02 03:18:10 25 4
gpt4 key购买 nike

我尝试使用详细输出远程调用以下函数,但我不知道如何正确传递 VerbosePreference?

function TestVerbose()
{
[CmdletBinding()]
Param()
Write-Output "output test"
Write-Verbose "verbose test"
}

Invoke-Command -ComputerName computerB -ScriptBlock ${function:TestVerbose}

问题How to Write-Verbose from Invoke-Command?很好地描述了如果我有一个非函数脚本 block ,如何写一些冗长的东西:

Invoke-Command -ComputerName computerB {$VerbosePreference='Continue'; Write-Verbose "verbose test"}

但是,我想传递一个函数,并且还表示详细的偏好。如何做到这一点?

我已经尝试将函数与一些内联脚本 block 结合起来,但它使函数根本无法运行:

Invoke-Command -ComputerName computerB -ScriptBlock {$VerbosePreference='Continue'; ${function:TestVerbose}}

最佳答案

一种解决方法。存储 verbosepreference 的当前值,在您的函数中更改它,然后重置为原始值。

function TestVerbose()
{
[CmdletBinding()]
Param()
begin
{
$VerbosePreference_original = $VerbosePreference
$VerbosePreference = 'continue'
Write-Verbose ('Begin:Original value of VerbosePreference : {0}' -f $VerbosePreference_original)
Write-Verbose ('Begin:New value of VerbosePreference : {0}' -f $VerbosePreference)

}

process
{
Write-Output 'output test'
Write-Verbose 'output test'
}
end
{

Write-Verbose ('END:ReSetting value of VerbosePreference to default : {0}' -f $VerbosePreference_original)
$VerbosePreference = $VerbosePreference_original


}
}

关于powershell - 如何将 -Verbose 参数传递给 Invoke-Command 内部调用的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35311855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com