簡體   English   中英

如何使用 Ansible 刪除回收站中的內容

[英]How to delete contents in Recycle Bin using Ansible

我正在針對 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 時,回收站的內容仍然存在。

所以我意識到運行 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 }}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM