为什么Verbose无法使用Invoke-Command?

时间:2019-04-03 23:52:03

标签: powershell

我有以下脚本:

try {
    Invoke-Command -Computer $Server -ScriptBlock {
        Get-ChildItem -Path $Directory |
            Where {$_.Name -Match "$DB"} |
            Remove-Item -Confirm:$false -Recurse $VerbosePreference='Continue'; -Verbose
    } #-Verbose

    Write-Host "`r`nsuccessfull! " -ForegroundColor yellow -BackgroundColor black
} catch {
    Write-Host "`r`nFAILED!" -ForegroundColor red -BackgroundColor black
    Write-Host "$($error[0])`r`n" -ForegroundColor magenta -BackgroundColor black
}

-Verbose不会产生这样的详细信息:

  

VERBOSE:对目标执行“删除文件”操作...

如果我尝试以下命令:

Get-ChildItem -Path 'E:\' |
    Where{$_.Name -Match "text"} |
    Remove-Item -Confirm:$false -Recurse -Verbose

我实际上回来了:

  

详细:在目标“ E:\ text.xml”上执行“删除文件”操作。
  详细信息:在目标“ E:\ text.txt”上执行“删除文件”操作。

根据问题How to Write-Verbose from Invoke-Command?,我应该使用$VerbosePreference='Continue';,但是正如您所见,我已经尝试过了,但仍然无法输出任何东西!

此外,即使没有删除任何文件夹,显然我的try..catch仍然输出成功。怎么会来?

0 个答案:

没有答案