Forum Discussion

Zeff Wheelock's avatar
Zeff Wheelock
Iron Contributor
Oct 31, 2017

Suppressing Text after New-DistributionList

I have a script which I am creating a distribution list (New-DistributionList).  However, the format of the output gets screwed up when the following text appears:

 

New! Office 365 Groups are the next generation of  distribution lists.
Groups give teams shared tools for collaborating using email, files, a calendar, and more.
You can start right away using the New-UnifiedGroup cmdlet.

 

How do you suppress this text?  I tried to pipe it to out-null to no avail.

  • Could you post the script?

     

    What you could do is to store the output in a variable, then output it with a small delay.

    • Zeff Wheelock's avatar
      Zeff Wheelock
      Iron Contributor
      Function Loop([string]$Person)
      {
          $People = @()
          while ($Person -ne "")
          {
              $temp=Get-msoluser -UserPrincipalName $Person -ErrorAction SilentlyContinue
              if ($temp) {$People+=$Person}
              else {Write-Host "Not a valid email address: $Person"}
              $Person = Read-Host " "
          }
          return $People
      }
      Function Create-VacationCalendar
      {
          "Logging into Office 365"
          " "
          .\ConnectToOffice365.ps1
          " "
      
          $RoomMailbox = Read-Host "New vacation calendar name"
          $ApproversGroup = "SG-$RoomMailbox Approvers"
          $RegularGroup = "SG-$RoomMailbox"
          " "
      
          "Creating the two security groups for the calendar:  $ApproversGroup and $RegularGroup"
          " "
      
          "Enter the owners of the $ApproversGroup group (Press just the Enter key to finish)"
          $ApproverOwner = Read-Host " "
          $ApproverOwners = Loop $ApproverOwner
          " "
      
          Write-Host "Enter the internet address of the approvers for the calendar (Press just the Enter key to finish)"
          $Approver = Read-Host " "
          $Approvers = Loop $Approver
          " "
      
          "Enter the owners of the $RegularGroup group (Press just the Enter key to finish)"
          $UserOwner = Read-Host " "
          $UserOwners = Loop $UserOwner
          " "
          "Enter the people who will be accessing the calendar (Press just the Enter key to finish)"
          $User = Read-Host " "
          $Users = Loop $User
          " "
      
          Write-Host -NoNewline "Creating security group: $ApproversGroup..."
          New-DistributionGroup -Name $ApproversGroup -Type "Security" -ManagedBy $ApproverOwners -CopyOwnerToMember -Members $Approvers -PrimarySmtpAddress "$($ApproversGroup.Replace(' ','_'))@domain.com" | Out-Null
          Write-Host "Done."
      
          Write-host -NoNewline "Creating security group: SG-$RoomMailbox..."
          New-DistributionGroup -name "SG-$RoomMailbox" -Type "Security" -ManagedBy $UserOwners -CopyOwnerToMember -Members $Users -PrimarySmtpAddress "$($RegularGroup.Replace(' ','_'))@domain.com" | Out-Null
          Write-Host "Done."
      
          Write-Host -NoNewline "Creating Room Mailbox: $RoomMailbox..."
          New-Mailbox -name $RoomMailbox -Room -PrimarySmtpAddress "$($RoomMailbox.Replace(' ','_'))@harvardpilgrim.org"
          Write-Host "Done."
      
          Write-Host -NoNewline "Setting calendar options..."
          while (-not (Get-CalendarProcessing -Identity $RoomMailbox -ErrorAction SilentlyContinue)) {Write-host -NoNewline ".";Sleep 10}
      
      
          $AutomateProcessing = "AutoAccept"
          $AllowRecurringMeetings = $True
          $AllowConflicts = $True
          $MaximumDurationInMinutes = 0
          $ConflictPercentageAllowed = 100
          $MaximumConflictInstances = 10
          $BookingWindowInDays = 365
          $EnforceSchedulingHorizon = $False
          $AddOrganizerToSubject = $True
          $DeleteComments = $False
          $DeleteSubject = $False
      
          Set-CalendarProcessing -Identity $RoomMailbox `
              -AutomateProcessing $AutomateProcessing `
              -AllowRecurringMeetings $AllowRecurringMeetings `
              -AllowConflicts $AllowConflicts `
              -MaximumDurationInMinutes $MaximumDurationInMinutes `
              -ConflictPercentageAllowed $ConflictPercentageAllowed `
              -MaximumConflictInstances $MaximumConflictInstances `
              -BookingWindowInDays $BookingWindowInDays `
              -EnforceSchedulingHorizon $EnforceSchedulingHorizon `
              -AddOrganizerToSubject $AddOrganizerToSubject `
              -DeleteComments $DeleteComments `
              -DeleteSubject $DeleteSubject `
              -BookInPolicy $ApproversGroup `
              -ResourceDelegates $ApproversGroup | Out-Null
          Write-Host "Done."
      }
      Create-VacationCalendar

       Each time I run it, I try to format the output, but the info for using groups keeps messing the output up.

      • Zeff Wheelock's avatar
        Zeff Wheelock
        Iron Contributor

        THe output looks like this:

        PS>.\Create-VacationCalendar.ps1
        Logging into Office 365
        
        Importing Module:  MSOnline...........Done.
        Importing Credentials To Variable.....Done.
        Setting Variable For New-PSSession....Done.
        Importing PSSession...................Done.
        Connecting To MSOLService.............Done.
        
        New vacation calendar name: Zeff Calendar
        
        Creating the two security groups for the calendar:  SG-Zeff Calendar Approvers and SG-Zeff Calendar
        
        Enter the owners of the SG-Zeff Calendar Approvers group (Press just the Enter key to finish)
         : zeff_wheelock@domain.com
         :
        
        Enter the internet address of the approvers for the calendar (Press just the Enter key to finish)
         : zeff_wheelock@domain.com
         :
        
        Enter the owners of the SG-Zeff Calendar group (Press just the Enter key to finish)
         : zeff_wheelock@domain.com
         :
        
        Enter the people who will be accessing the calendar (Press just the Enter key to finish)
         : zwheeloc@domain.com
         :
        
        Creating security group: SG-Zeff Calendar Approvers...New! Office 365 Groups are the next generation of distribution lis
        ts.
        Groups give teams shared tools for collaborating using email, files, a calendar, and more.
        You can start right away using the New-UnifiedGroup cmdlet.
        Done.
        Creating security group: SG-Zeff Calendar...New! Office 365 Groups are the next generation of distribution lists.
        Groups give teams shared tools for collaborating using email, files, a calendar, and more.
        You can start right away using the New-UnifiedGroup cmdlet.
        Done.
        Creating Room Mailbox: Zeff Calendar...
        Name                      Alias                ServerName       ProhibitSendQuota
        ----                      -----                ----------       -----------------
        Zeff Calendar             ZeffCalendar         bn6pr02mb2434    99 GB (106,300,440,576 bytes)
        Done.
        Setting calendar options....Done.

        it should look like this:

        PS>.\Create-VacationCalendar.ps1
        Logging into Office 365
        
        Importing Module:  MSOnline...........Done.
        Importing Credentials To Variable.....Done.
        Setting Variable For New-PSSession....Done.
        Importing PSSession...................Done.
        Connecting To MSOLService.............Done.
        
        New vacation calendar name: Zeff Calendar
        
        Creating the two security groups for the calendar:  SG-Zeff Calendar Approvers and SG-Zeff Calendar
        
        Enter the owners of the SG-Zeff Calendar Approvers group (Press just the Enter key to finish)
         : zeff_wheelock@domain.com
         :
        
        Enter the internet address of the approvers for the calendar (Press just the Enter key to finish)
         : zeff_wheelock@domain.com
        : Enter the owners of the SG-Zeff Calendar group (Press just the Enter key to finish) : zeff_wheelock@domain.com : Enter the people who will be accessing the calendar (Press just the Enter key to finish) : zwheeloc@domain.com : Creating security group: SG-Zeff Calendar Approvers...Done. Creating security group: SG-Zeff Calendar...Done. Creating Room Mailbox: Zeff Calendar...Done. Setting calendar options....Done.

        For the Creating Room Mailbox line, I just put an Out-Null to suppress the result, so the result above should be the expected outcome if it ran successfully.

  • deniskoutser's avatar
    deniskoutser
    Copper Contributor
    hi, any update?? its 2 years passed since the last reply..I'm now have the issue and don't know how to hide this info banner..
    thanks

Resources