我知道这种问题已被多次提出,但从来没有人强调我面临的问题。
我有一个脚本,它会查看用户个人资料,并将超过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中使用的相同删除命令?
提前致谢。
答案 0 :(得分:0)
尝试此答案,它会向您展示如何删除符号链接,并将其合并到您的代码中:: Delete broken link
发布错误,如果它不起作用。
答案 1 :(得分:0)
对我而言,这与文件夹集上的read-attribute有关。如果我创建了一个交汇点,我习惯立即更改它的图标,如资源管理器中所示。这将设置您无法使用资源管理器更改的联结的readonly属性,但我可以使用attrib命令更改它:
attrib -r /d /s Junk
其中Junk是文件夹的符号链接。之后,我可以使用'rm'命令
删除该文件夹