2016-03-19 6 views
-1

У меня есть файл CSV с 19 пользователями с различным почтовым ящиком Quota, я хочу, чтобы иметь возможность добавить 200 мб к их текущему размеру почтового ящика. если я попытаюсь установить почтовый ящик, он изменит их текущий размер, и все они будут иметь такую ​​же квоту почтового ящика, которую я не хочу! Я хочу только добавить 200 МБ к их текущему размеру.Powershell Увеличить размер почтового ящика для 19 на 200MB Exchange 2007

$list = import-csv c:\list.csv 
foreach ($user in $list) {set-mailbox -identity $user.user -UseDatabaseQuotaDefaults $false -IssueWarningQuota 200MB -ProhibitSendQuota 250MB -ProhibitSendReceiveQuota 280MB} 

Чтобы найти квоты почтового ящика сценарий

$List = Import-Csv C:\temp\Users_size.csv 
foreach ($user in $List){ 
    Get-Mailbox $user.user_id | fl name, *Quota | Out-File -Append c:\size.csv 
    Get-MailboxStatistics $user.user_id | fl TotalItemSize | Out-File -Append c:\size.csv} 
+0

Добро пожаловать в Stackoverflow.com, мы поможем с вашим скриптом, если вы застряли, но это не служба написания сценариев. Вы хотите найти информацию о почтовом ящике, вернуть размер почтового ящика, затем добавить 200 МБ и, наконец, установить квоту почтового ящика. Просматривайте и публикуйте свой скрипт вместе с любыми ошибками. – user4317867

+0

Спасибо User437867 за ваш ответ :) не ищу, чтобы кто-то написал мой скрипт, но я думал, что пользователи здесь являются экспертами в powershell \ excahnge, и они делятся идеями , поэтому я искал идеи о том, как выполнить мою задачу :) Мой скрипт будет установлен все пользователи имеют один и тот же размер почтового ящика, который я не хочу, я пытаюсь найти способ добавить больше места в их текущий размер, поскольку все они имеют разные квоты почтовых ящиков из-за их потребностей в работе. Еще раз спасибо за ваш быстрый ответ – Yallabina

+0

Итак, вы хотите изменить все значения квот на 200mb, которые не используют квоту по умолчанию для своей базы данных? – Matt

ответ

1

Вам просто нужно добавить 200MB к текущей квоте значений внутри Еогеасп петли, так что новое значение уникально для каждого пользователя в цикле. Я понятия не имею, как выглядит ваш csv, поэтому я создал образец-csv.

Я не обменно-среды, так что это все непроверенный код

list.csv

User,IssueWarningQuota,ProhibitSendQuota,ProhibitSendReceiveQuota,SomeOtherColumns 
User1,209715200,262144000,293601280,SomeOtherValue 
User2,314572800,367001600,398458880,SomeOtherValue2 

Пример:

$list = Import-Csv -Path c:\list.csv 
foreach ($user in $list) { 
    #Create variables with new quota-values for readability. Can be replaced with -IssueWarningQuoa ([int]$_.IssueWarningQuota + $AddQuota) -Prohi.... in the command itself. 
    #Values from CSV are string by default, so we need to cast the value to int before adding (unless it will append to string). 
    $IssueWarningQuota = [int]$_.IssueWarningQuota + 200MB 
    $ProhibitSendQuota = [int]$_.ProhibitSendQuota + 200MB 
    $ProhibitSendReceiveQuota = [int]$_.ProhibitSendReceiveQuota + 200MB 

    Set-mailbox -identity $user.user -UseDatabaseQuotaDefaults $false -IssueWarningQuota $IssueWarningQuota -ProhibitSendQuota $ProhibitSendQuota -ProhibitSendReceiveQuota $ProhibitSendReceiveQuota 
} 

Если CSV не содержит текущие значения квот, вы можете использовать Get-MailBox, чтобы получить их.

$list = Import-Csv -Path c:\list.csv 
foreach ($user in $list) { 
    $mb = Get-Mailbox $user.user 

    $IssueWarningQuota = $mb.IssueWarningQuota + 200MB 
    $ProhibitSendQuota = $mb.ProhibitSendQuota + 200MB 
    $ProhibitSendReceiveQuota = $mb.ProhibitSendReceiveQuota + 200MB 

    Set-mailbox -identity $user.user -UseDatabaseQuotaDefaults $false -IssueWarningQuota $IssueWarningQuota -ProhibitSendQuota $ProhibitSendQuota -ProhibitSendReceiveQuota $ProhibitSendReceiveQuota 
}