Oct 31 2017 11:12 AM
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.
Oct 31 2017 03:35 PM
Could you post the script?
What you could do is to store the output in a variable, then output it with a small delay.
Nov 01 2017 02:15 PM
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.
Nov 02 2017 09:53 AM
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.
Nov 06 2017 02:27 PM
Couldnt you do something like this?
Store it to a variable, then give the output depending if its $null or not.
$newDB = New-DistributionGroup -Name $ApproversGroup -Type "Security" -ManagedBy $ApproverOwners -CopyOwnerToMember -Members $Approvers -PrimarySmtpAddress "$($ApproversGroup.Replace(' ','_'))@domain.com" If($newDB -ne $null) { "Completed successfully" } Else{"Error"}
Nov 07 2017 05:57 AM
Dec 05 2017 05:09 AM
You create an array and the results to it, similar to below:
$DlArray = @()
$DlArray += "UserPrincipalName" + "," + "Comment"
$DlArray += "Creating security group:" + $_.ApproversGroup
$DlArray += "Creating security group: SG-" + $_.RoomMailbox
This will refine the results, you can add some logic to catch the errors.
Dec 06 2017 05:49 AM - edited Dec 06 2017 05:50 AM
I experience the same issue and I agree. We should not have to put some crap code to deal with the message. Microsoft should just not present that message or allow us to turn it off via the cmdlet.
Common MS think things through would you?
Dec 06 2017 06:08 AM
Aug 07 2018 07:35 AM
Aug 20 2018 06:26 AM
I don't have the Cmdlet in front of me but that output could be minor warning message from the Cmdlet.
Trying adding in -warningaction 'silentlycontinue' *or* -informationaction silentlycontinue to see if that suppresses the message.
Silly question... what Colour is the message? (that can help identify the type of message)
RED = Error, YELLOW = Warning
If it's neither then it might just be information in which case ideally -informatinaction silentlycontinue should let you go on without being pestered.
Sean
Good friend of Dr. Scripto
Aug 20 2018 06:38 AM - edited Aug 20 2018 06:47 AM
White. So it is not a warning or an error. It is a forced statement that cannot be blocked by sending it to Null.
PS> New-DistributionGroup -name "TEST DELETE" -type "Security" -CopyOwnerToMember -ManagedBy "my_email_address@domain.com" -PrimarySmtpAddress test_delete@domain.com| out-null
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.
[ADMIN] [Connected] [Unrestricted] 08/20/2018 09:37:29 O:\Office365
PS>
It still displays the feature. Messes up my formatting on the page.
Aug 20 2018 07:30 AM
It appears to be "Information" which normally could be re-directed using "InformationAction" however that parameter has not been exposed in the New-DistributionGroup Cmdlet for Exchange Online.
I've created an entry in UserVoice for the Exchange Online Administration.
But you are correct, at this time the content cannot be captured or redirected.
Aug 20 2018 07:44 AM
Thanks. Already put my 3 votes in... <smile>
Dec 23 2020 09:05 AM
Dec 23 2020 09:06 AM
Sep 29 2022 02:49 AM