Экспорт .PST в именованные папки в двух местах на основе значений свойств

Здравствуйте, я все еще зеленый с PS и мне нужна помощь.

Обратите внимание: это также первый раз, когда вы задаете вопрос здесь, поэтому, пожалуйста, будьте добры :)

У меня есть группа пользователей, которым нужно экспортировать .pst в \file\location, однако, если пользователь находится в судебном процессе, мне нужно поместить .pst в местоположение ALT. Мне удалось настроить скрипт, который создаст папку в папке \file\location с именем и датой пользователя, а затем экспортирует .pst в этот файл. это работает

$Users = Get-Content "C:\Disabledusers.csv"
$date = Get-Date
$date = $date.ToString("MM-dd-yyyy")
ForEach ($user in $users){ $newPath = Join-Path "\\network-location\t$\Users$" -childpath "$user $date"
New-Item $newPath -type directory}

ForEach ($user in $users){ New-MailboxExportRequest -Mailbox $user -FilePath \\network- location\t$\Users$\"$user $date"\$user.pst}

Теперь я пытаюсь проверить каждого пользователя, чтобы убедиться, что LitigationHoldEnabled = True выполняет тот же процесс в \file\location2

Вот где я застрял

$Users = Get-Content "C:\Disabledusers.csv"
$date = Get-Date
$date = $date.ToString("MM-dd-yyyy")

ForEach ($user in $users) {Get-Mailbox $user | Select-Object LitigationHoldEnabled}

if(???) 
     {$newPath = Join-Path "\\network-location\t$\Users$\Legalhold" -childpath "$user $date"
New-Item $newPath -type directory 

New-MailboxExportRequest -Mailbox $user -FilePath \\network-location\t$\Users$\Legalhold\"$user $date"\$user.pst}
 
else 
{$newPath = Join-Path "\\network-location\t$\Users$" -childpath "$user $date"
New-Item $newPath -type directory

New-MailboxExportRequest -Mailbox $user -FilePath \\network-location\t$\Users$\"$user $date"\$user.pst}

Любая помощь или подсказки были бы замечательными Спасибо - Шон


person Sean Mieth    schedule 30.10.2020    source источник
comment
Привет, Шон. Итак, вы помещаете дополнительную копию в альтернативное местоположение? То, как вы это сформулировали, звучит как либо, либо, но код указывает, что это и то, и другое.   -  person Doug Maurer    schedule 31.10.2020


Ответы (1)


Если я правильно понимаю, вы хотите экспортировать тех, у кого нет судебного разбирательства, в первый путь, а тех, у кого LitigationHoldEnabled, - в путь LegalHold. Вы можете объединить все шаги в следующие.

$Users = Get-Content "C:\Disabledusers.csv"
$date = Get-Date
$date = $date.ToString("MM-dd-yyyy")
ForEach ($user in $users)
{

    if((Get-Mailbox $user).litigationholdenabled -eq $true)
    {
        $newPath = Join-Path "\\network-location\t$\Users$\Legalhold" -childpath "$user $date"
        $null = New-Item $newPath -ItemType directory
        $exportpath = Join-Path $newPath "$user.pst"
        New-MailboxExportRequest -Mailbox $user -FilePath $exportpath
    }
    else
    {

        $newPath = Join-Path "\\network-location\t$\Users$" -childpath "$user $date"
        $null = New-Item $newPath -ItemType directory
        $exportpath = Join-Path $newPath "$user.pst"
        New-MailboxExportRequest -Mailbox $user -FilePath $exportpath
    }
}
person Doug Maurer    schedule 30.10.2020
comment
Эй, Дуг, спасибо за ваш ответ, конечная цель - разделить две группы. Папка A = только законное удержание. Папка B = все остальные. - person Sean Mieth; 31.10.2020
comment
Вы, сэр, мой герой, работает именно так, как нужно... Еще раз спасибо за вашу помощь! - person Sean Mieth; 31.10.2020
comment
Пожалуйста, примите это как решение, нажав на галочку. - person Doug Maurer; 31.10.2020
comment
Извините, как я уже сказал .. Впервые задаю вопросы здесь .. Я знаю, что у меня будет больше Проверено, как ответили - person Sean Mieth; 31.10.2020