我正在对Windows VM运行攻略,以删除回收站的内容,任务成功运行,表明已经进行了更改。但是,当查看服务器本身时,回收站的内容仍然保留。
有几种方法可以删除回收站的内容。以下是我尝试过的方法:
使用不同的Ansible攻略:
- name: Clean recycle bin
win_shell: |
$recycleBin = (New-Object -ComObject Shell.Application).NameSpace(0xa)
$recycleBin.Items() | ForEach-Object -Process { Remove-Item -Path $_.Path -Force -Recurse }
- name: Clean recycle bin
win_shell: Clear-RecycleBin -Force
- name: Clean recycle bin
win_command: cmd.exe /k rd /s /q %systemdrive%\$Recycle.Bin使用powershell命令,它将删除所有内容,而不会提示我确认。我不希望运行cmd.exe命令,因为它只删除与C:\驱动器相关的内容,除非我指定了驱动器号。
当在服务器上运行时,所有这些命令都成功地删除了回收站的内容,但当使用Ansible时,回收站的内容会保留下来。
发布于 2019-03-26 04:37:51
所以我意识到运行powershell命令只会删除特定用户的回收站内容,而不是所有用户的内容。
我决定使用powershell命令收集驱动器号,因为我没有使用win_disks_facts获得所有的驱动器号。然后,我将遍历驱动器号并运行cmd.exe命令,该命令将为所有用户清理回收站。
- name: Get disk drives
win_shell: |
$driveinfo = Get-WmiObject -Class Win32_logicaldisk | where {$_.drivetype -eq 3} | select DeviceID
$driveinfo.DeviceID
- name: Clean recycle bin
win_command: cmd.exe /k rd /s /q {{ item }}\$Recycle.Bin
with_items:
- "{{ disk_drives.stdout_lines }}"https://stackoverflow.com/questions/55307836
复制相似问题