2016-03-19 8 views
-1

J'ai un fichier CSV avec 19 utilisateurs avec un quota de boîte aux lettres différent, je veux être en mesure d'ajouter 200mb de plus à leur taille de boîte aux lettres actuelle. si j'ai essayé set-mailbox il va changer leur taille actuelle et ils auront tous le même quota de boîte aux lettres que je ne veux pas !! Je veux seulement ajouter 200MB à leur taille actuelle.Powershell Augmenter la taille de la boîte aux lettres pour 19 par 200 Mo 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} 

Pour trouver script quota de boîte aux lettres

$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

Bienvenue sur Stackoverflow.com, nous vous aiderons avec votre script si vous êtes bloqué mais ce n'est pas un service d'écriture de script. Vous souhaitez rechercher des informations sur les boîtes aux lettres, renvoyer la taille de la boîte aux lettres, puis ajouter 200 Mo et enfin définir ce quota de boîtes aux lettres. Veuillez rechercher et publier votre script avec toutes les erreurs. – user4317867

+0

Merci User437867 pour votre réponse :) ne cherchez pas quelqu'un pour écrire mon script, mais je pensais que les utilisateurs sont ici experts dans powershell \ excahnge et ils partagent des idées alors je cherchais des idées sur la façon d'accomplir ma tâche :) Mon script va définir tous les utilisateurs ont la même taille de boîte aux lettres que je ne veux pas J'essaie de trouver un moyen d'ajouter plus d'espace à leur taille actuelle, car ils ont tous un quota de boîte aux lettres différent en raison de leurs besoins de travail. Encore merci pour votre réponse rapide – Yallabina

+0

Donc vous cherchez à changer toutes les valeurs de quota de 200mb qui n'utilisent pas le quota par défaut pour leur base de données? – Matt

Répondre

1

Vous avez juste besoin d'ajouter 200MB aux quotas valeurs actuelles à l'intérieur de la boucle foreach-donc la nouvelle valeur est unique pour chaque utilisateur dans la boucle. Je n'ai aucune idée de comment votre csv ressemble, donc j'ai créé un sample-csv.

Je n'ai pas un échange environnement si cela est code non testé

de list.csv

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

Exemple:

$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 
} 

Si votre csv ne contient pas les valeurs de quota actuelles, vous pouvez utiliser Get-MailBox pour les obtenir.

$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 
}