我们有两家公司,在AD的两个独立容器中,访问所有扫描文件的一个共享目录。我们需要每晚运行一个自动脚本,并且只清除一个公司AD容器(Office1)中用户文件夹中的文件。我在这里找到了一个非常有用的脚本,我可以修改以匹配和删除这些特定用户的文件夹,但我需要这个只能删除这些文件夹中的文件。
这是脚本:
$UserNames = Get-ADUser -Filter * -SearchBase "OU=Office1,DC=US,DC=parent,DC=net" |
Select -ExpandProperty SamAccountName
$UserRegex = ($UserNames | ForEach {[RegEx]::Escape($_)}) -join "|"
Get-ChildItem -Path "\\share\scanfiles\Test" -Directory -Recurse |
Where {$_.Name -match $UserRegex -and !$_.PSIsContainer} |
Remove-Item -Force
答案 0 :(得分:1)
尝试以下方法:
Get-ChildItem -Path "\\share\scanfiles\Test" -Directory -Recurse |
Where { $_.Name -Match $UserRegex } |
ForEach-Object { Remove-Item "$($_.FullName)\*" -Force -WhatIf }
-WhatIf
预览将被删除的内容;删除它以执行实际删除。
注意管道的前两个段仅输出目录对象,而最后一个段然后删除里面每个目录中的文件。