我需要在网络共享

时间:2017-06-20 18:41:43

标签: powershell

当此文件夹可以嵌套在我的用户主文件夹中的任何位置时,如何找到名为BlueMountain的文件夹

\\Server\Users\<personsname>\

最终我想要删除文件夹,但只是为了安全起见。 BlueMountain文件夹必须具有其中一个子文件夹

Certs
Config
Macros
Scripts
Spool
Traces
Transfer

这是我到目前为止所拥有的

Get-ChildItem -Path \\Server\Users -Recurse -Directory -Filter $_.FOLDERNAME | ForEach-Object {
        If $_.FullName --eq "BlueMountain" {

        }

    }

2 个答案:

答案 0 :(得分:4)

您可以使用-recurse递归查找路径中的最后一件事。所以这个:

Get-ChildItem \\server\Users\BlueMountain -recurse

将查看&#34; \ server \ Users&#34;的所有子文件夹任何名为&#34; BlueMountain&#34;。然后你只需要确保它有一个你的文件夹。

$SubFolders = 'Certs','Config','Macros','Scripts','Spool','Traces','Transfer'
Get-ChildItem \\server\Users\BlueMountain -recurse | Where{Get-ChildItem "$($_.FullName)\*" -Include $SubFolders}

这应该只列出在\ server \ Users中递归找到的BlueMountain文件夹,其中包含一个指定的子文件夹。然后您可以将其传递给Remove-Item -force并将其称为一天。或者,如果您想跟踪事件,请将其移至tee-object,然后转至remove-item

答案 1 :(得分:1)

试试这个:

$SubFolders = 'Certs','Config','Macros','Scripts','Spool','Traces','Transfer'
$wordtosearch="BlueMountain"
$SearchPattern= ($SubFolders | %{ "$wordtosearch\\$_" }) -join "|"

get-childitem "\\Server\Users" -directory -Recurse | 
    where FullName -match $SearchPattern | 
        Split-Path -path {$_.FullName} -Parent | 
            remove-item -Recurse -ErrorAction SilentlyContinue