如果我通过 RDP 连接到我的 Windows 2016 服务器(称为 LAUREL)并运行此 powershell,它可以正常工作:
Clear-RecycleBin -DriveLetter C -force
但是,如果我从以域管理员身份登录的 Windows 10 工作站运行,则命令:
icm -ComputerName laurel -ScriptBlock {Clear-RecycleBin -DriveLetter C -force}
我得到:
The system cannot find the path specified At line:1 char:1 + icm -ComputerName laurel -ScriptBlock {Clear-RecycleBin -DriveLetter ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (RecycleBin:String) [Clear-RecycleBin], Win32Exception + FullyQualifiedErrorId : FailedToClearRecycleBin,Microsoft.PowerShell.Commands.ClearRecycleBinCommand + PSComputerName : laurel
关于如何清除远程服务器上的回收站,您有什么想法吗?此 powershell 代码片段将集成到自动化 VM 构建中。
答案1
目前,我建议忽略错误,使用-ErrorAction SilentlyContinue
icm -ComputerName laurel -ScriptBlock {Clear-RecycleBin -DriveLetter C -force -ErrorAction SilentlyContinue}
尽管出现错误,但至少在我的环境中,回收站实际上已被清空,忽略错误将使您的脚本继续运行。
我可以重现此问题,但尚未弄清楚原因 - 但会将其传递给相应的团队。有趣的是,如果您删除 -Force,您将收到确认操作的提示,确认后不会出现任何错误。
答案2
我发现了一个问题已关闭这就解释了这是一个错误ClearRecycleBinCommand.cs
建议使用错误查找器Clear-RecycleBin -ErrorAction SilentlyContinue
来防止不相关的ErrorRecord。
此错误已在 PowerShell v7.0.0-preview.6 中修复。