Если я подключу 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 будет интегрирован в автоматизированную сборку виртуальной машины.
На данный момент я бы предложил проигнорировать ошибку, используя -ErrorAction SilentlyContinue
icm -ComputerName laurel -ScriptBlock {Clear-RecycleBin -DriveLetter C -force -ErrorAction SilentlyContinue}
Несмотря на ошибку, по крайней мере, в моей среде, корзина фактически очищена, и игнорирование ошибки позволит продолжить выполнение сценария.
Я могу воспроизвести это, но пока не понял почему, но передам его соответствующей команде. Интересно, что если вы удалите -Force, вы получите запрос на подтверждение действия, и никаких ошибок после подтверждения.
Я нашел вопрос закрыт что объясняет, что это ошибка в ClearRecycleBinCommand.cs
Средство поиска ошибок рекомендует использовать Clear-RecycleBin -ErrorAction SilentlyContinue
чтобы предотвратить несоответствие ErrorRecord.
Эта ошибка исправлена в PowerShell v7.0.0-preview.6.