如何解决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 举报,一经查实,本站将立刻删除。