微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PowerShell Remove-Item -Force 不会删除从 CSV 文件导入的非拥有目录

如何解决PowerShell Remove-Item -Force 不会删除从 CSV 文件导入的非拥有目录

我对此很陌生,希望得到任何建议。 我使用的是 PowerShell 5.1 版,并且可以使用以下代码

$dir = 导入-Csv DirectoryList.csv $dir | ForEach-Object {$_."目录" | Remove-Item -Force -Recurse}

删除“DirectoryList.csv”中指定的目录列表;但是,它不会删除我不是其所有者的文件夹。是的,我是盒子的管理员,我知道这不会转化为所有者 ;)

我确定有一种方法可以确保对于 CSV 文件中列出的每个目录,如果特定 AD 管理员组(例如:ArchiveAdministrators)不是所有者,则将其更改为所有者,然后删​​除文件夹及其所有内容,但我不知道该怎么做。

我尝试将脚本修改为:

$dir = 导入-Csv DirectoryList.csv $dir | ForEach-Object {$_."目录" | Set-NTFSOwner -account ArchiveAdministrators\tfl | Remove-Item -Force -Recurse}

现在当它运行时,它什么也不做,我得到这个错误

+ CategoryInfo          : SecurityError: (:) [],ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnauthorizedAccess

感谢任何帮助。

解决方法

Set-NTFSOwner 不输出 directory 信息对象,因此您不能将其输出直接通过管道传输到 Remove-Item;使用两个不同的语句:

Import-Csv DirectoryList.csv $dir | ForEach-Object {
  $_.Directory | Set-NTFSOwner -account ArchiveAdministrators\tfl
  if ($?) { $_ | Remove-Item -Force -Recurse }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。