首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Ansible删除回收站中的内容

如何使用Ansible删除回收站中的内容
EN

Stack Overflow用户
提问于 2019-03-23 05:12:32
回答 1查看 464关注 0票数 0

我正在对Windows VM运行攻略,以删除回收站的内容,任务成功运行,表明已经进行了更改。但是,当查看服务器本身时,回收站的内容仍然保留。

有几种方法可以删除回收站的内容。以下是我尝试过的方法:

使用不同的Ansible攻略:

代码语言:javascript
复制
- 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时,回收站的内容会保留下来。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-26 04:37:51

所以我意识到运行powershell命令只会删除特定用户的回收站内容,而不是所有用户的内容。

我决定使用powershell命令收集驱动器号,因为我没有使用win_disks_facts获得所有的驱动器号。然后,我将遍历驱动器号并运行cmd.exe命令,该命令将为所有用户清理回收站。

代码语言:javascript
复制
- 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 }}"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55307836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档