我有以下脚本:
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
仍然输出成功。怎么会来?