删除所有内容的用户文件夹,Powershell

时间:2014-04-29 07:33:12

标签: powershell windows-7 scripting

我知道这种问题已被多次提出,但从来没有人强调我面临的问题。

我有一个脚本,它会查看用户个人资料,并将超过X天的那些标记为要删除的,然后删除它们。 Remove-Item,使用-Force和-Recurse使其删除除所有用户的标准NTFS交接点之外的所有文件夹/文件。对于这些类型的文件夹,它将被拒绝访问。我甚至尝试先取得用户文件夹的所有权 - 但它确实发生了。 W7上的这些文件夹就像:

C:\Users\<NAME>\My Documents
C:\Users\<NAME>\Start Menu

无论我如何编写脚本,它都无法删除顶级用户文件夹。使用相同的帐户,相同的PC - 如果我只是使用Windows资源管理器右键单击并删除,该文件夹将与子文件夹一起删除。

对于记录,这些是我尝试过的方法:

Remove-Item (with -force -recurse)
[io.directory]::delete()
$variablename.delete()

我可以发布脚本,但它有点无关紧要,因为它的大部分工作只是这些连接点。

我想这是我的问题 - 如何调用Windows资源管理器在PowerShell中使用的相同删除命令?

提前致谢。

2 个答案:

答案 0 :(得分:0)

尝试此答案,它会向您展示如何删除符号链接,并将其合并到您的代码中:: Delete broken link

发布错误,如果它不起作用。

答案 1 :(得分:0)

对我而言,这与文件夹集上的read-attribute有关。如果我创建了一个交汇点,我习惯立即更改它的图标,如资源管理器中所示。这将设置您无法使用资源管理器更改的联结的readonly属性,但我可以使用attrib命令更改它:

attrib -r /d /s Junk

其中Junk是文件夹的符号链接。之后,我可以使用'rm'命令

删除该文件夹