Quantcast
Channel: TechNet Blogs
Viewing all 34890 articles
Browse latest View live

Support Tip: Ignite 2018

$
0
0

Heading to Ignite? Do you have Intune support questions? Intune Support-as-a-Feature experts (including many of the folks behind the @IntuneSuppTeam and this blog) will be at Ignite and would be happy to answer any Intune supportability questions you have. The team will be helping our peers in engineering staff the Intune booth on the show floor. Feel free to bring questions on active cases, share recent support experiences, or provide service communications feedback. If we don’t have an expert at the booth that can help you right away, we’ll be there all week and will be happy to follow-up in between sessions. Not every ticket or question can be resolved in person, but it’s always good to make the connection. See you at Ignite!

 


Infrastructure + Security: Noteworthy News (September, 2018)

$
0
0

Hi there! Stanislav Belov here to bring you the next issue of the Infrastructure + Security: Noteworthy News series!  

As a reminder, the Noteworthy News series covers various areas, to include interesting news, announcements, links, tips and tricks from Windows, Azure, and Security worlds on a monthly basis.

Microsoft Azure
Azure AD B2B Collaboration support for Google IDs is now in public preview
The B2B Google federation allows organizations to invite Gmail users to use their Google identity to sign in to Azure AD. Google is the first third-party identity provider that Azure AD supports.
Microsoft Authenticator companion app for Apple Watch now in public preview
We heard our customers loud and clear—they want support for the Microsoft Authenticator app on Apple Watch. So, that's why I'm thrilled to announce we are starting to roll out the public preview of the Microsoft Authenticator companion app for Apple Watch and plan to release to general availability within the next few weeks. This experience will allow you to approve sign-in notifications that require PIN or biometric on your Watch without having to use your phone. The Microsoft Authenticator app on Apple Watch supports Microsoft personal, work, and school accounts that are set up with push notifications. All supported accounts automatically sync to the Watch.
Azure subscription and service limits, quotas, and constraints
This document lists some of the most common Microsoft Azure limits, which are also sometimes called quotas. This document doesn't currently cover all Azure services. Over time, the list will be expanded and updated to cover more of the platform. Please make sure you check against these limitations before deploying a new Azure resource to avoid potential pitfalls.
How to choose the right encryption technology for Azure SQL Database or SQL Server
Transparent Data Encryption (TDE) and Always Encrypted are two different encryption technologies offered by SQL Server and Azure SQL Database. Generally, encryption protects data from unauthorized access in different scenarios. They are complementary features, and this blog post will show a side-by-side comparison to help decide which technology to choose and how to combine them to provide a layered security approach.
Windows Server
PowerShell is open sourced and is available on Linux

Today's customers live in a multi-platform, multi-cloud, multi-OS world – that's just reality. This world brings new challenges and customers need tools to make everything work together. Microsoft is working company-wide to deliver management tools that empower customers to manage any platform, from anywhere, on any device, using Linux or Windows. This shift to a more open, customer-obsessed approach to deliver innovation is one of the things that makes me most excited to come to work every day.

Migrating Roles and Features in Windows Server

This article contains links to information and tools that help guide you through the process of migrating roles and features to Windows Server 2016, Windows Server 2012 R2, and Windows Server 2012. Many roles and features can be migrated by using Windows Server Migration Tools, a set of five Windows PowerShell cmdlets that was introduced in Windows Server 2008 R2 for easily migrating role and feature elements and data.

Upgrade Domain Controllers to Windows Server 2016

This topic provides background information about Active Directory Domain Services in Windows Server 2016 and explains the process for upgrading domain controllers from Windows Server 2012 or Windows Server 2012 R2.

Windows Client
Helping customers shift to a modern desktop

IT is complex. And that means it can be difficult to keep up with the day-to-day demands of your organization, let alone deliver technological innovation that drives the business forward. In desktop management, this is especially true: the process of creating standard images, deploying devices, testing updates, and providing end user support hasn't changed much in years. It can be tedious, manual, and time consuming. We're determined to change that with our vision for a modern desktop powered by Windows 10 and Office 365 ProPlus. A modern desktop not only offers end users the most productive, most secure computing experience—it also saves IT time and money so you can focus on driving business results.

Security
Two seconds to take a bite out of mobile bank fraud with Artificial Intelligence

The future of mobile banking is clear. People love their mobile devices and banks are making big investments to enhance their apps with digital features and capabilities. As mobile banking grows, so does the one aspect about it that can be wrenching for customers and banks, mobile device fraud.

Microsoft Threat Modeling Tool GA Release
The Threat Modeling Tool is a core element of the Microsoft Security Development Lifecycle (SDL). It allows software architects to identify and mitigate potential security issues early, when they are relatively easy and cost-effective to resolve. As a result, it greatly reduces the total cost of development. Also, we designed the tool with non-security experts in mind, making threat modeling easier for all developers by providing clear guidance on creating and analyzing threat models.
How Security Center and Log Analytics can be used for Threat Hunting
If you need to do threat hunting, there are several considerations that you should consider. You not only need a good analyst team, you need an even larger team of service engineers and administrators that worry about deploying an agent to collect the investigations related data, parsing them in a format where queries could be run, building tools that help query this data and lastly indexing the data so that your queries run faster and actually give results. ASC and Log Analytics take care of all of this and will make hunting for threats much easier. What organizations need is a change in mindset. Instead of being just alert driven, they should also incorporate active threat hunting into their overall security program.
Protecting user identities
Microsoft 365 security solutions help you protect users and corporate accounts. By making identity the control plane, Microsoft 365 offerings manage identities as the first step to providing access to corporate resources and restricting users who are high risk. Tools like single sign-on (SSO), Multi-Factor Authentication (MFA), and Windows 10 Hello for Business help you secure access. Additionally, there are actions you can take if an identity is compromised and ways to lock down or wipe devices to protect sensitive data in case of loss or theft.
Small businesses targeted by highly localized Ursnif campaign
Cyber thieves are continuously looking for new ways to get people to click on a bad link, open a malicious file, or install a poisoned update in order to steal valuable data. In the past, they cast as wide a net as possible to increase the pool of potential victims. But attacks that create a lot of noise are often easier to spot and stop. Cyber thieves are catching on that we are watching them, so they are trying something different. Now we're seeing a growing trend of small-scale, localized attacks that use specially crafted social engineering to stay under the radar and compromise more victims.
Office VBA + AMSI: Parting the veil on malicious macro
Macro-based threats have always been a prevalent entry point for malware, but we have observed a resurgence in recent years. Continuous improvements in platform and application security have led to the decline of software exploits, and attackers have found a viable alternative infection vector in social engineering attacks that abuse functionalities like VBA macros. Microsoft, along with the rest of the industry, observed attackers transition from exploits to using malicious macros to infect endpoints. Malicious macros have since showed up in commodity malware campaigns, targeted attacks, and in red-team activities.
Vulnerabilities and Updates
Microsoft on September 11, 2018, released security updates to provide additional protections against malicious attackers. As a best practice, Microsoft encourages customers to turn on automatic updates. More information about this month's security updates can be found in the Security Update Guide.
Support Lifecycle
The next End of Support deadline is October 9, 2018. The following products and Service Packs will NO longer be supported after this date:
  • SQL Server 2012 SP3
  • Enterprise Desktop Virtualization (MED-V) 1.0
  • Windows 10 Mobile (released in Aug. 2016)
  • Expression Studio 2
Extended Security Updates for SQL Server and Windows Server 2008/2008 R2: Frequently Asked Questions (PDF)

On January 14, 2020, support for Windows Server 2008 and 2008 R2 will end. That means the end of regular security updates. Don't let your infrastructure and applications go unprotected. We're here to help you migrate to current versions for greater security, performance and innovation.

Microsoft Premier Support News
Onboarding Accelerator – Implementing Visual Auditing Security Tool is a 5-Day Engagement and delivered by a Microsoft Premier Field Engineer (PFE). Visual Auditing Security Tool (VAST) is a cloud-based PowerBI dashboard solution that provides security professionals visibility about the many of the most common types of security weaknesses in an IT environment. It also provides specific, actionable KPI-based metrics to measure your organization's effectiveness in mitigating well-established, known attack playbooks.
The Architectural Service – Microsoft Azure: Cloud Ready Datacenter service helps to assess the current state of your on-premises environment, perform a gap-analysis with focus on your architectural capabilities, and ensure that the IT environment is cloud-ready. This 4-day service includes Remediation Planning Services that provides a step-by-step roadmap to enabling your environment and teams to be cloud ready. This assessment provides you with a recommendation report and overall plan of action to correct existing network and server configurations that are incompatible with hybrid cloud architecture.
Check out Microsoft Services public blog for new Proactive Services as well as new features and capabilities of the Services Hub, On-demand Assessments, and On-demand Learning platforms.

Office 365: Challenges with Distribution Groups for Migrated Mailboxes and a Script Based Solution

$
0
0

===========================================================================================

Group Migration Script v1.0 –> https://github.com/timmcmic/DLConversion/blob/master/src/DLConversion.ps1

===========================================================================================

Distribution groups are an excellent way to organize multiple recipients under a single address.  Like Exchange Server on-premises, Office 365 supports mail-enabled distribution groups, security groups, and dynamic distribution groups.  When Active Directory and Exchange are used on-premises, distribution groups are typically created in the on-premises Active Directory and Azure Active Directory Connect is used to maintain and replicate the distribution groups to Office 365.

Generally, there are two types of administration models that use distribution groups (which can co-exist or be used exclusively):

1. The first model uses centralized administration for all configuration and membership changes. When a member needs to be added or removed, the help desk or an admin typically processes the request.  When co-existing with Office 365 this type of administration model is very effective.  With all changes originating on premises – Azure AD Connect can easily replicated them into the Azure AD where Office 365 workloads can process them.

2. The second model delegates some or all to the user that owns the distribution group. In this model, Outlook is used for management of the distribution group.  In a hybrid configuration, this model often creates management challenges. Outlook processes the membership changes by modifying membership on the domain controller provided to the user’s mailbox by Active Directory. After the membership change is made, Azure AD Connect pushes the requested changes to Azure AD where Office 365 workloads can process them. Office 365 mailboxes receive their list of domain controllers from Exchange Online, which prevents distribution group synchronized from on-premises from being modified in Office 365. Therefore, anyone whose mailbox has been migrated to Office 365 can no longer managed distribution groups. The same is also true for administrators that attempt to manage the distribution group in Office 365.

When asked how to allow migrated mailboxes to manage distribution groups that are owned by the mailboxes the answer is to migrate the distribution groups to Office 365. For some, this involves manually deleting and recreating the distribution groups. Others have also found scripts to do this, but they don’t always address all the attributes associated with a distribution group and instead focus on simple attributes like proxy addresses, membership, name, etc.

In this post, I’ll show you a script that addresses these concerns and allows you to migrate distribution groups to Office 365 with full fidelity. Before we get into the script, let’s look at some of the challenges encountered when attempting to migrate distribution groups.

Group Membership

Distribution groups created on-premises are managed using AD tools or Exchange management tools. When managing distribution groups with Exchange tools, membership rules are enforced (for example, a member can be added only if the object is mail-enabled). This can include mail contacts, mail users, and mailboxes. Groups and users, both mail-enabled and not, can be added using Exchange tools.  AD tools are more forgiving, though; the administrator can add any valid AD object to the group membership (for example, a contact that is not mail-enabled could be added to the distribution group, although this would have no effect on mail flow).

Exchange Online has a set of rules for objects that are replicated from Azure AD to Exchange Online Active Directory.  If an object is not mail-enabled, it is not represented in Exchange Online AD. This includes any groups that are members of an on-premises distribution group but not mail-enabled.  An exception to this rule is user accounts. User account objects are replicated to Exchange Online even if they are not mail-enabled.

When migrating distribution groups, all objects that are not mail-enabled or users must be filtered out. Here is an example of a distribution group that contains a mix of members.

PS C:> Get-DistributionGroupMember -Identity Migrate

Name              RecipientType
----              -------------
Domain Users      Group
Journal Mailbox   UserMailbox
Brian Murphy      MailContact
Timothy McMichael MailUser
Migrate1          MailUniversalSecurityGroup
Migrate2          MailUniversalDistributionGroup
Team Manager      User
Dynamic           DynamicDistributionGroup
Test Contact      Contact


Users and Groups

For users and groups to be members of a distribution group they must exist in Office 365.  There are common scenarios where Organizational Units are intentionally excluded from replication to Azure Active Directory.  Before migrating any distribution groups you must ensure that the members exist in Office 365.  If they don’t, attempts to create the distribution group through automation will fail.  Since it is possible for groups to have other group as members, any type of migration of a group to Office 365 will require removal of the on-premises group. If the groups that are members are not migrated first, their membership in that group would be lost.

Multivalued Attributes

Distribution groups have several multi-valued attributes that require consideration before migrated.  The attributes managedBy, moderatedBy, acceptMessagesOnlyFromSendersOrMembers, grantSendOnBehalfTo, rejectMessagesFromSendersOrMembers, and bypassModerationFromSendersOrMembers, for example, store their member references as distinguished names of objects.  Here is a sample output:

PS C:> $a=Get-DistributionGroup migrate
PS C:> $a.managedBy
domain.local/Organization/Users/Officers/Timothy McMichael
domain.local/Organization/Users/Officers/Bill Smith
PS C:> $a.moderatedBy
domain.local/Organization/Users/Officers/Timothy McMichael
PS C:> $a.AcceptMessagesOnlyFromSendersOrMembers domain.local/Organization/Users/Officers/Bill Smith
domain.local/ConvertedDL/Migrate1
PS C:> $a.BypassModerationFromSendersOrMembers
domain.local/ConvertedDL/Migrate1
PS C:> $a.RejectMessagesFromSendersOrMembers
domain.local/ConvertedDL/Migrate2
PS C:> $a.GrantSendOnBehalfTo
domain.local/Organization/Users/Officers/Timothy McMichael

If these attributes were extracted as arrays and then used with Office 365, the references would not work because the DNs of the objects stored in Office 365 needs to reference the DN of the object in Exchange Online. 

The managedBy attribute is a shared attribute with Active Directory, and it can be set to a non-mail-enabled user.  In Exchange Online, only a valid recipient object can be entered in the managedBy field.  Thus, before you can convert the distribution group, you must ensure that all members of the managedBy field are Exchange Online recipients.

The remaining multi-valued attributes can only be set via Exchange cmdlets, which ensures that the objects are mail-enabled user objects.

Proxy / Email Addresses

The email addresses field is a multi-valued attribute.  If the proxy addresses are not in use on another object in Exchange Online, they can be moved to the new distribution group.  Note, that it is important to preserve the Reply To functionality.  Migrated distribution groups don’t really change – they have the same name, same proxy addresses, and same members.  But the nickname cache in Outlook uses the distinguished name of the group (which points to on-premises).  If a user were to address an email to the migrated group by selecting the group from nickname cache, the message would NDR.

Other Attributes

Other attributes of a distribution group are mostly text based, allowing them to be exported and imported as text. There are also several Boolean values that can be translated to the equivalent on the new distribution group, including custom attributes.

Group Migration Script

The group migration script described in this post considers all the factors presented above. Executing the script starts by preparing some pre-requisites.

Prerequisites

The first pre-requisite is to establish an Organizational Unit (OU) within Active Directory that is not synchronized to Azure Active Directory. This OU will be where the group objects will be moved during the conversion process. The conversion process in v1 of the script retains the original distribution group.  The distinguished name of this group will need to be recorded as it will be a script variable.

The second pre-requisite involves creating a secure credentials XML file that can be used by the script. The administrator must note the file names and the path where they are stored. These are variables within the script that must be updated, or the administrator can match the files contained in the script.  Create one file for on-premises credentials and one file for cloud credentials. If using XML files is not your preferred method of handling credentials, you can modify the script to prompt for credentials or consider storing credentials using other methods supported by PowerShell.

$cred = get-credential

$cred | export-cliXML –path c:Scriptscredentials.xml

One caveat to using these files is that they are signed to the user and machine on which they were created.  Therefore, all admins using the script have to create their own sets of files.

The third pre-requisite is to ensure that the PSLOGGING module from the PowerShell Gallery is installed. This module is necessary to create files that record operations along with clean-up and logging when an error has occurred.

install-module PSLOGGING

The fourth pre-requisite is to configure Basic authentication on a local PowerShell directory.  By default, Basic authentication is not enabled in on-premises, which limits the ability to create a “remote” PowerShell session to on-premises Exchange server. Administrators often work around this by identifying one server where Basic authentication is enabled or by enabling Basic authentication on all PowerShell virtual directories behind a load-balanced name.  Whether a single server or multiple servers are used, it is a requirement to establish an SSL session to the name provided, which means there must be a public certificate installed on the specified endpoint.

Get-PowerShellVirtualDirectory –server <SERVERNAME> | Set-PowerShellVirtualDirectory –basicAuthentication:$TRUE

The last pre-requisite is to review the variables contained within the script for any necessary modifications. Variables that are recommended for the admin to adjust are noted with ###ADMIN### in front of their definition. These variables include PowerShell URLs, paths, and file names.

Script Mechanics

With the pre-requisites covered, let’s dive into the mechanics of how the script works and review the individual functions.

The process starts by gathering the credentials XML files and preparing them for use in subsequent functions. The success or failure of these operations is largely dependent on ensuring the credentials stored in the files are accurate and that the associated variables with the files have been updated successfully.

The script then proceeds to create the necessary PowerShell sessions for operations to be performed.  There are three PowerShell sessions created:

1. The first session is to an on-premises server where commands will operate against on-premises recipient objects.

2. The second session is to Office 365 where Office 365 recipient commands will be executed.

3. The third session is to the Azure AD Connect server, which will be used to invoke synchronization as recipient objects are modified.

To activate the on-premises and Office 365 PowerShell sessions, they must be imported.  When importing remote PowerShell sessions, you can often have the same cmdlets returned in each session.  In this case, there is definite overlap between Exchange and Exchange Online.  To avoid any confusion when importing the Office 365 PowerShell session we append the cmdlets with O365.  This effectively takes a cmdlet like Get-Recipient and makes it Get-O365Recipient. PowerShell is smart enough to detect the correct cmdlet and invoke it within the appropriate session.

After the underlying PowerShell sessions are started, the script exports all properties of the on-premises distribution group and all properties of the Office 365 distribution group to variables for later use.  The Office 365 distribution group should match the on-premises group as the source of authority for the Office 365 group is on-premises.

After the data has been extracted, the script performs a safety check against the distribution group, which reviews the directory synchronization flag of the distribution group in Office 365. If this flag is set to FALSE, it indicates that the distribution group is cloud-only.  If this scenario occurs, the script is automatically ended. The script can only be so smart, and it uses the SMTP address of the on-premises distribution group to locate the replicated copy in Office 365. Because it’s possible for a group in Office 365 and on-premises to share the same address even though they are not directory synchronized, the script must stop because if it continued, the Office 365 group would be removed and replaced with the on-premises group which could have unintended consequences.

After the safety check is complete, the script records and exports the information for the on-premises and Office 365 groups to XML files defined by the administrator. XML output allows us to retain full fidelity of the multivalued attributes in case something goes wrong, or we need to manually correct a failure condition.

The last portion of data collection (membership) and backup then proceeds. Membership is obtained and written to a variable that will be used in later operations. It is also exported to XML file to ensure that we have a copy of the information prior to starting any of the conversion activities.

With all the pertinent information stored within variables and backup XML files, the next step is processing this information. In the previous section, I outlined some of the challenges in working with this data.  There can be non-mail-enabled objects that need to be accounted for – these will not have primary SMTP addresses. There are mail-enabled objects that need to be accounted for but may be stored as distinguished names on certain attributes. Knowing that we need to account for all these differences forces us to develop a method to translate those individual users and recipients to objects that can be located in Exchange Online. To that end, we know that we can locate recipients via their primary SMTP address or a user account through the user principal name. So, the script iterates through all the multi-valued attributes and attempts to normalize the data into references that can be found in Exchange Online. If the object is a recipient class, we record the primarySMTPAddress of the object.  If the object is a non-mail-enabled user, we record the userPrincipalName of the object.  For each multi-valued attribute this culminates in an individual array of references that will allow us to find the objects in Exchange Online.

When the arrays of normalized data have been built we need to validate that the objects can be found in Exchange Online. The script looks for objects in Exchange Online using Get-Recipient and Get-User cmdlets in the Office 365 PowerShell. If the object is found, the recipient or user is valid and is synchronized by Azure AD Connect.  If an object is not found, the process stops and allows the administrator to correct any issues. Groups can also be members of distribution groups, so the script reviews all groups that are members and determines if they have been migrated to Office 365. Assuming all users are found, and all member groups have been migrated, it is safe to proceed with the migration.

The first step in finalizing the migration is to move the distribution group to the OU that does not synchronize. As the script proceeds, Azure AD Connect will see this as a group deletion and eventually remove it from Office 365.  The removal from Azure AD will propagate to Exchange Online Active Directory, resulting in the distribution group becoming deleted.

To ensure that all domain controllers show that the group was moved to the OU, repadmin is used to force replication across all domain controllers in the domain.  If your domain is very large, consider changing this function to a list of domain controllers or to a single domain controller.  You can also comment out the function and just increase the wait time to allow for normal replication to occur.

With domain replication underway/completed, next is to remove the distribution group from Azure AD. This process uses a remote PowerShell session to perform a delta synchronization.  A delta synchronization may already be in progress, so the script is designed to retry every 1 minute until it can assure that at least one delta sync was triggered by the script.  A delta sync can take several minutes to run depending on the size of the environment, and it only removes the group from Azure AD. The forward synchronization process will detect the groups removal from Azure AD and synchronize the change to Exchange Online.  Because there really is no way to monitor progress once the delta synchronization is issued, the script begins issuing calls to Azure AD for the group. If the call is successful, the group still exists, and the script waits 1 minute between attempts, looping until the group is not found (basically, an error occurs locating the group, which confirms the group is no longer in Office 365).

Once the group has been removed the script can now create the new replacement group using the base settings.  Next, all the non-multivalued attributes of the distribution group are set, including email addresses, custom attribute, extension attributes, and other Boolean variables that control mail flow, delivery, etc.  Next, multi-valued attributes are set by using the normalized arrays that were built previously. After all attributes have been addressed, the new distribution group in Office 365 now mirrors the original distribution group on-premises.

The final step is to gather all the settings of the new distribution group and export them to XML, which serves as a record of the operation. At the end of the script, all created PowerShell sessions are removed in preparation for the next migration.

Frequently Asked Questions

Q:  How can I prevent PowerShell sessions from timing out?

A:  There is really no method to prevent the PowerShell settings from timing out.  During testing, we determined that the operation that ran the longest was building the array of normalized SMTP addresses for the distribution group membership.  When the PowerShell session to Office 365 was left open during this process it would often be closed before we were ready to proceed with other portions.  It was also determined that when processing long arrays (for example, adding all the distribution group membership), the session may time out.  To overcome this, we routinely reset the session to Office 365 after portions of the script that took more time to process data.

Q:  Can the script be run in bulk?

A:  It is possible to feed the script a list of proxy addresses for distribution groups to migrate by calling the script multiple times.  The process through would repeat in terms of domain controller replication, Azure AD Connect synchronization, etc.  The original design of the script approached this from the perspective of servicing one-off requests for migration and not necessarily bulk migrations or conversions.

Q:  Is the script efficient?

A:  Efficiency is always relative…is it more efficient then trying to do all of this by hand and manage all the attributes? Certainly. The script must rely on several processes that do not necessarily have any guaranteed timelines.  For example, we can’t predict how long a delta sync or forward sync will take.  Thus, it’s not possible to give you a 100% accurate estimate of how long it takes to migrate a distribution group.  There is also a great deal of logging that occurs during the script which adds some overhead, but given the nature and importance of distribution groups, having the additional information is important.

Q:  What is the largest distribution group size that was tested?

A:  The script was validated using a distribution group with 10,000 members and had a minimum of 10 members in each of the multi-valued attributes.

Q:  How long did it take to migrate a group with 10,000 members?

A:  A little more than 3 hours:

Days              : 0
Hours             : 3
Minutes           : 6
Seconds           : 57
Milliseconds      : 768
Ticks             : 112177687252
TotalDays         : 0.129835286171296
TotalHours        : 3.11604686811111
TotalMinutes      : 186.962812086667
TotalSeconds      : 11217.7687252
TotalMilliseconds : 11217768.7252

Q:  What happens to mail flow during the migration process?

A:  It depends.  The distribution group is maintained on-premises during this entire process.  If messages enter the on-premises environment first and are addressed to the distribution group, you can expect that expansion will occur and message delivery will happen. The group in Office 365 is in flux during the entire migration process.  If the group is missing and a message is received, it may NDR.  If the group has been created but member addition is in-progress, then only some of the members may receive it.  I recommend that you provide warnings to distribution group owners that mail flow will be affected during the transition.

Q:  If the distribution group is a mail-enabled security group, and that group has been assigned permissions to Office 365 workloads, what happens during the conversion?

A:  Permissions would be lost.  The script only works because the group is deleted – and this would be processed by other workloads as a group deletion.

Q:  Do I have to keep the on-premises distribution group post-migration?

A:  It depends.  If messages are processed through the on-premises environment, there needs to be a corresponding mail-enabled object.  We are looking into automating the conversion of the group to a mail contact in a future version of the script to allow for mail flow to continue.

Q:  Dynamic distribution groups are not replicated by Azure Active Directory Connect.  How does the script handle dynamic distribution groups?

A:  Administrators must manually create dynamic distribution groups in Office 365.  The script intentionally does not treat dynamic distribution groups differently then a normal recipient.  In this case we detect a member and record the primary SMTP address.  When we run the recipient test against Office 365 by primary SMTP address – the recipient is returned and the script can proceed.  If the recipient is not found the script will fail.

Sample Invocations

===============================================================================

Attempting to convert the distribution group Migrate without ignoring invalid managers or invalid members.  The group to be converted IS NOT located in Office 365.  An error is generated and the script stops.

PS C:Scripts> .ConvertDL.ps1 -dlToConvert Migrate -ignoreInvalidDLMember:$FALSE -ignoreInvalidManagedByMember:$FALSE



     Directory: C:Scripts




Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/18/2018   7:17 PM              0 DLConversion.log
***************************************************************************************************
Started processing at [09/18/2018 19:17:22].
***************************************************************************************************



Running script version [1.0].



***************************************************************************************************



This function imports the on premises secured credentials file....
The on premises credentials file was imported successfully.



This function imports the Office 365 secured credentials file....
The Office 365 credentials file was imported successfully.



This function creates the powershell session to on premises Exchange....
The powershell session to on premises Exchange was created successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function creates the powershell session to AAD Connect....
The powershell session to AAD Connect was created successfully.



This function imports the powershell session to on premises Exchange....
WARNING: The names of some imported commands from the module 'tmp_y0ib5tyw.pmz' include unapproved verbs that might make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of approved verbs, type Get-Verb.



Name              : tmp_y0ib5tyw.pmz
Path              : C:Usersadmin.domainAppDataLocalTemptmp_y0ib5tyw.pmztmp_y0ib5tyw.pmz.psm1
Description       : Implicit remoting for
https://webmail.domain.com/powershell

Guid              : 1dfe9d4c-8ca2-4de2-aa8c-8e0281af907c
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_y0ib5tyw.pmz
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-ADPermission, Add-ADPermission], [Add-AvailabilityAddressSpace,
                     Add-AvailabilityAddressSpace], [Add-ContentFilterPhrase, Add-ContentFilterPhrase],
                     [Add-DatabaseAvailabilityGroupServer, Add-DatabaseAvailabilityGroupServer]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to on premises Exchange was imported successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_rt1gncnz.op4' include unapproved verbs that might make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of approved verbs, type Get-Verb.



Name              : tmp_rt1gncnz.op4
Path              : C:Usersadmin.domainAppDataLocalTemptmp_rt1gncnz.op4tmp_rt1gncnz.op4.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : f829f0b4-a669-4e18-a789-4afa9e4e9bd0
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_rt1gncnz.op4
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace],
                     [Add-o365DistributionGroupMember, Add-o365DistributionGroupMember],
                     [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission], [Add-o365MailboxLocation,
                     Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



This function collects the on premises distribution list configuration....
The on premises distribution list information was collected successfully.



This function collects the Office 365 distribution list configuration....

The operation couldn't be performed because object 'Migrate' couldn't be found on
'CO1PR06A002DC02.NAMPR06A002.prod.outlook.com'.
     + CategoryInfo          : NotSpecified: (:) [Get-DistributionGroup], ManagementObjectNotFoundException
     + FullyQualifiedErrorId : [Server=MWHPR06MB2446,RequestId=bef7d47e-8d2d-4c75-a6d4-40264dee7723,TimeStamp=9/18/2018
7:17:47 PM] [FailureCategory=Cmdlet-ManagementObjectNotFoundException]
F71693B4,Microsoft.Exchange.Management.RecipientTasks.GetDistributionGroup
     + PSComputerName        : outlook.office365.com
The operation couldn't be performed because object 'Migrate' couldn't be found on
'CO1PR06A002DC02.NAMPR06A002.prod.outlook.com'.
     + CategoryInfo          : NotSpecified: (:) [Get-DistributionGroup], ManagementObjectNotFoundException
     + FullyQualifiedErrorId : [Server=MWHPR06MB2446,RequestId=bef7d47e-8d2d-4c75-a6d4-40264dee7723,TimeStamp=9/18/2018
     7:17:47 PM] [FailureCategory=Cmdlet-ManagementObjectNotFoundException] F71693B4,Microsoft.Exchange.Management.Rec
   ipientTasks.GetDistributionGroup
     + PSComputerName        : outlook.office365.com



ERROR: The Office 365 distribution list information could not be collected - exiting.
ERROR: The operation couldn't be performed because object 'Migrate' couldn't be found on 'CO1PR06A002DC02.NAMPR06A002.prod.outlook.com'.

This function cleans up all powershell sessions....
All powershell sessions have been cleaned up successfully.




***************************************************************************************************
Finished processing at [09/18/2018 19:17:47].
***************************************************************************************************

===============================================================================

===============================================================================

Attempting to convert the distribution group Migrate without ignoring invalid managers or invalid members.  The group contains another distribution or security group that is not mail enabled.  An error is generated and the script stops.

PS C:Scripts> .ConvertDL.ps1 -dlToConvert Migrate -ignoreInvalidDLMember:$FALSE -ignoreInvalidManagedByMember:$FALSE



     Directory: C:Scripts




Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/19/2018   2:11 PM              0 DLConversion.log
***************************************************************************************************
Started processing at [09/19/2018 14:11:07].
***************************************************************************************************



Running script version [1.0].



***************************************************************************************************



This function imports the on premises secured credentials file....
The on premises credentials file was imported successfully.



This function imports the Office 365 secured credentials file....
The Office 365 credentials file was imported successfully.



This function creates the powershell session to on premises Exchange....
The powershell session to on premises Exchange was created successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function creates the powershell session to AAD Connect....
The powershell session to AAD Connect was created successfully.



This function imports the powershell session to on premises Exchange....
WARNING: The names of some imported commands from the module 'tmp_rmsylwqo.1zq' include unapproved verbs that might
make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the
Verbose parameter. For a list of approved verbs, type Get-Verb.



Name              : tmp_rmsylwqo.1zq
Path              : C:Usersadmin.domainAppDataLocalTemptmp_rmsylwqo.1zqtmp_rmsylwqo.1zq.psm1
Description       : Implicit remoting for
https://webmail.domain.com/powershell

Guid              : bb38fffd-b692-41c6-bb7f-ac49fe3a006b
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_rmsylwqo.1zq
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-ADPermission, Add-ADPermission], [Add-AvailabilityAddressSpace,
                     Add-AvailabilityAddressSpace], [Add-ContentFilterPhrase, Add-ContentFilterPhrase],
                     [Add-DatabaseAvailabilityGroupServer, Add-DatabaseAvailabilityGroupServer]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to on premises Exchange was imported successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_4korcvyz.ikr' include unapproved verbs that might
make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the
Verbose parameter. For a list of approved verbs, type Get-Verb.



Name              : tmp_4korcvyz.ikr
Path              : C:Usersadmin.domainAppDataLocalTemptmp_4korcvyz.ikrtmp_4korcvyz.ikr.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : 1a019be1-7a24-410f-b38e-37dbcc282021
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_4korcvyz.ikr
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace],
                     [Add-o365DistributionGroupMember, Add-o365DistributionGroupMember],
                     [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission], [Add-o365MailboxLocation,
                     Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



This function collects the on premises distribution list configuration....
The on premises distribution list information was collected successfully.



This function collects the Office 365 distribution list configuration....
The Office 365 distribution list information was collected successfully.



This function validates a cloud DLs saftey to migrate....
The DL is safe to proeced for conversion - source of authority is on-premises.



This function writes the on prmeises distribution list configuration to XML....
The on premises distribution list information was written to XML successfully.



This function writes the Office 365 distribution list configuration to XML....
The Office 365 distribution list information was written to XML successfully.



This function collections the on premises DL membership....
The DL membership was collected successfully.



This function writes the on prmeises distribution list membership configuration to XML....
The on premises distribution list membership information was written to XML successfully.



This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



Begin processing a DL membership array.
This function builds an array of DL members or multivalued attributes....

ERROR: Domain Users
ERROR: A non-mail enabled or Office 365 object was found in the group.
ERROR: Script invoked without skipping invalid DL Member.
ERROR: The object must be removed or mail enabled.
ERROR: EXITING.

This function cleans up all powershell sessions....
All powershell sessions have been cleaned up successfully.




***************************************************************************************************
Finished processing at [09/19/2018 14:11:55].
***************************************************************************************************

===============================================================================

===============================================================================

Attempting to convert the distribution group Migrate without ignoring invalid managers or invalid members.  The group contains another mail enabled distribution group that has not been migrated to Office 365.  The script automatically stops as all sub groups need to be migrated prior to top level groups.  The script was also run with –ignoreInvalidDLMembers TRUE – all non-mail enabled members or members not represented in Office 365 ar automatically ignored.

PS C:Scripts> .ConvertDL.ps1 -dlToConvert Migrate -ignoreInvalidDLMember:$TRUE -ignoreInvalidManagedByMember:$FALSE



     Directory: C:Scripts




Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/19/2018   2:22 PM              0 DLConversion.log
***************************************************************************************************
Started processing at [09/19/2018 14:22:24].
***************************************************************************************************



Running script version [1.0].



***************************************************************************************************



This function imports the on premises secured credentials file....
The on premises credentials file was imported successfully.



This function imports the Office 365 secured credentials file....
The Office 365 credentials file was imported successfully.



This function creates the powershell session to on premises Exchange....
The powershell session to on premises Exchange was created successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function creates the powershell session to AAD Connect....
The powershell session to AAD Connect was created successfully.



This function imports the powershell session to on premises Exchange....
WARNING: The names of some imported commands from the module 'tmp_b11x0ew3.20l' include unapproved verbs that might
make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the
Verbose parameter. For a list of approved verbs, type Get-Verb.



Name              : tmp_b11x0ew3.20l
Path              : C:Usersadmin.domainAppDataLocalTemptmp_b11x0ew3.20ltmp_b11x0ew3.20l.psm1
Description       : Implicit remoting for
https://webmail.domain.com/powershell

Guid              : 3c49dbae-b2af-428e-9be4-94ffc63126a4
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_b11x0ew3.20l
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-ADPermission, Add-ADPermission], [Add-AvailabilityAddressSpace,
                     Add-AvailabilityAddressSpace], [Add-ContentFilterPhrase, Add-ContentFilterPhrase],
                     [Add-DatabaseAvailabilityGroupServer, Add-DatabaseAvailabilityGroupServer]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to on premises Exchange was imported successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_ti245wqn.qju' include unapproved verbs that might
make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the
Verbose parameter. For a list of approved verbs, type Get-Verb.



Name              : tmp_ti245wqn.qju
Path              : C:Usersadmin.domainAppDataLocalTemptmp_ti245wqn.qjutmp_ti245wqn.qju.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : 4c2cf1a7-0042-4595-9025-98728851b5ed
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_ti245wqn.qju
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace],
                     [Add-o365DistributionGroupMember, Add-o365DistributionGroupMember],
                     [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission], [Add-o365MailboxLocation,
                     Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



This function collects the on premises distribution list configuration....
The on premises distribution list information was collected successfully.



This function collects the Office 365 distribution list configuration....
The Office 365 distribution list information was collected successfully.



This function validates a cloud DLs saftey to migrate....
The DL is safe to proeced for conversion - source of authority is on-premises.



This function writes the on prmeises distribution list configuration to XML....
The on premises distribution list information was written to XML successfully.



This function writes the Office 365 distribution list configuration to XML....
The Office 365 distribution list information was written to XML successfully.



This function collections the on premises DL membership....
The DL membership was collected successfully.



This function writes the on prmeises distribution list membership configuration to XML....
The on premises distribution list membership information was written to XML successfully.



This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



Begin processing a DL membership array.
This function builds an array of DL members or multivalued attributes....
Processing mail enabled DL member:
Journal Mailbox
Processing mail enabled DL member:
Brian Murphy
Processing mail enabled DL member:
Timothy McMichael
Processing mail enabled DL member:
Migrate1
Processing mail enabled DL member:
Migrate2
Processing non-mailenabled DL member:
Team Manager
Processing mail enabled DL member:
Dynamic

The following object was intentionally skipped - object type not replicated to Exchange Online
Test Contact

Processing mail enabled DL member:
NotReplicated
The following SMTP address was added to the array:
journal@domain.org
The following SMTP address was added to the array:
brian@domain.com
The following SMTP address was added to the array:
tmcmichael@domain.org
The following SMTP address was added to the array:
Migrate1@domain.org
The following SMTP address was added to the array:
Migrate2@domain.org
The following SMTP address was added to the array:
teammanager@domain.org
The following SMTP address was added to the array:
Dynamic@domain.org
The following SMTP address was added to the array:
notreplicate@domain.org



The array was built successfully.



This function resets the Office 365 powershell sessions....
This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_2cmzyxkm.gbx' include unapproved verbs that might
make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the
Verbose parameter. For a list of approved verbs, type Get-Verb.



Name              : tmp_2cmzyxkm.gbx
Path              : C:Usersadmin.domainAppDataLocalTemptmp_2cmzyxkm.gbxtmp_2cmzyxkm.gbx.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : 455ba332-1b14-49d2-891d-1701e6fdea84
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_2cmzyxkm.gbx
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace],
                     [Add-o365DistributionGroupMember, Add-o365DistributionGroupMember],
                     [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission], [Add-o365MailboxLocation,
                     Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



All Office 365 powershell sessions have been refreshed.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
journal@domain.org
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
brian@domain.com
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
tmcmichael@domain.org
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
Migrate1@domain.org
The recipients were found in Office 365.



This function tests to see if any sub groups or groups assigned permissions have been migrated....
Now testing group...
Migrate1@domain.org
False
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
Migrate2@domain.org
The recipients were found in Office 365.



This function tests to see if any sub groups or groups assigned permissions have been migrated....
Now testing group...
Migrate2@domain.org
True

ERROR: A distribution list was found as a sub-member or on a multi-valued attribute.
ERROR: The distribution list has not been migrated to Office 365 (DirSync Flag is TRUE)
ERROR: All sub lists or lists with permissions must be migrated before proceeding.
This function cleans up all powershell sessions....
All powershell sessions have been cleaned up successfully.


***************************************************************************************************
Finished processing at [09/19/2018 14:23:08].
***************************************************************************************************

===============================================================================

===============================================================================

Attempting to convert the distribution group Migrate without ignoring invalid managers or invalid members.  The group contains a mailbox recipient that is not represented in Office 365.  Although the ignoreInvalidDLMember is set to $TRUE – since the object should be a valid object present in Office 365 the script stops.  (In this case the user is in an OU that is not synchronized to Office 365).

PS C:Scripts> .ConvertDL.ps1 -dlToConvert Migrate -ignoreInvalidDLMember:$TRUE -ignoreInvalidManagedByMember:$FALSE



     Directory: C:Scripts




Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/19/2018   2:27 PM              0 DLConversion.log
***************************************************************************************************
Started processing at [09/19/2018 14:27:17].
***************************************************************************************************



Running script version [1.0].



***************************************************************************************************



This function imports the on premises secured credentials file....
The on premises credentials file was imported successfully.



This function imports the Office 365 secured credentials file....
The Office 365 credentials file was imported successfully.



This function creates the powershell session to on premises Exchange....
The powershell session to on premises Exchange was created successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function creates the powershell session to AAD Connect....
The powershell session to AAD Connect was created successfully.



This function imports the powershell session to on premises Exchange....
WARNING: The names of some imported commands from the module 'tmp_tvpecjxl.5ga' include unapproved verbs that might
make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the
Verbose parameter. For a list of approved verbs, type Get-Verb.



Name              : tmp_tvpecjxl.5ga
Path              : C:Usersadmin.domainAppDataLocalTemptmp_tvpecjxl.5gatmp_tvpecjxl.5ga.psm1
Description       : Implicit remoting for
https://webmail.domain.com/powershell

Guid              : 0985f143-cf95-4102-87d9-030408dd4bc8
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_tvpecjxl.5ga
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-ADPermission, Add-ADPermission], [Add-AvailabilityAddressSpace,
                     Add-AvailabilityAddressSpace], [Add-ContentFilterPhrase, Add-ContentFilterPhrase],
                     [Add-DatabaseAvailabilityGroupServer, Add-DatabaseAvailabilityGroupServer]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to on premises Exchange was imported successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_i4ivhhbw.2tu' include unapproved verbs that might
make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the
Verbose parameter. For a list of approved verbs, type Get-Verb.



Name              : tmp_i4ivhhbw.2tu
Path              : C:Usersadmin.domainAppDataLocalTemptmp_i4ivhhbw.2tutmp_i4ivhhbw.2tu.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : 86d813da-91e6-4e12-a369-577d696f60f4
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_i4ivhhbw.2tu
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace],
                     [Add-o365DistributionGroupMember, Add-o365DistributionGroupMember],
                     [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission], [Add-o365MailboxLocation,
                     Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



This function collects the on premises distribution list configuration....
The on premises distribution list information was collected successfully.



This function collects the Office 365 distribution list configuration....
The Office 365 distribution list information was collected successfully.



This function validates a cloud DLs saftey to migrate....
The DL is safe to proeced for conversion - source of authority is on-premises.



This function writes the on prmeises distribution list configuration to XML....
The on premises distribution list information was written to XML successfully.



This function writes the Office 365 distribution list configuration to XML....
The Office 365 distribution list information was written to XML successfully.



This function collections the on premises DL membership....
The DL membership was collected successfully.



This function writes the on prmeises distribution list membership configuration to XML....
The on premises distribution list membership information was written to XML successfully.



This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



Begin processing a DL membership array.
This function builds an array of DL members or multivalued attributes....
Processing mail enabled DL member:
Journal Mailbox
Processing mail enabled DL member:
Brian Murphy
Processing mail enabled DL member:
Timothy McMichael
Processing mail enabled DL member:
Migrate1
Processing non-mailenabled DL member:
Team Manager
Processing mail enabled DL member:
Dynamic
The following object was intentionally skipped - object type not replicated to Exchange Online
Test Contact
Processing mail enabled DL member:
NotReplicated
The following SMTP address was added to the array:
journal@domain.org
The following SMTP address was added to the array:
brian@domain.com
The following SMTP address was added to the array:
tmcmichael@domain.org
The following SMTP address was added to the array:
Migrate1@domain.org
The following SMTP address was added to the array:
teammanager@domain.org
The following SMTP address was added to the array:
Dynamic@domain.org
The following SMTP address was added to the array:
notreplicate@domain.org



The array was built successfully.



This function resets the Office 365 powershell sessions....
This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_rysbip4g.faj' include unapproved verbs that might
make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the
Verbose parameter. For a list of approved verbs, type Get-Verb.



Name              : tmp_rysbip4g.faj
Path              : C:Usersadmin.domainAppDataLocalTemptmp_rysbip4g.fajtmp_rysbip4g.faj.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : 95f11f7e-d775-4d52-8cb5-b4ba67dd7e35
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_rysbip4g.faj
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace],
                     [Add-o365DistributionGroupMember, Add-o365DistributionGroupMember],
                     [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission], [Add-o365MailboxLocation,
                     Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



All Office 365 powershell sessions have been refreshed.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
journal@domain.org
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
brian@domain.com
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
tmcmichael@domain.org
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
Migrate1@domain.org
The recipients were found in Office 365.



This function tests to see if any sub groups or groups assigned permissions have been migrated....
Now testing group...
Migrate1@domain.org
False
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
teammanager@domain.org
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
Dynamic@domain.org
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....

Testing user in Office 365...
notreplicate@domain.org


The operation couldn't be performed because object 'notreplicate@domain.org' couldn't be found on
'CO1PR06A002DC02.NAMPR06A002.prod.outlook.com'.
     + CategoryInfo          : NotSpecified: (:) [Get-Recipient], ManagementObjectNotFoundException
     + FullyQualifiedErrorId : [Server=MWHPR06MB2446,RequestId=f6a99890-192d-4630-b244-337d6c706c97,TimeStamp=9/19/2018
     2:28:03 PM] [FailureCategory=Cmdlet-ManagementObjectNotFoundException] 5A65645E,Microsoft.Exchange.Management.Rec
   ipientTasks.GetRecipient
     + PSComputerName        : outlook.office365.com



ERROR: The recipients were not found in Office 365 - exiting.
ERROR: The operation couldn't be performed because object 'notreplicate@domain.org' couldn't be found on 'CO1PR06A002DC02.NAMPR06A002.prod.outlook.com'.

This function cleans up all powershell sessions....
All powershell sessions have been cleaned up successfully.




***************************************************************************************************
Finished processing at [09/19/2018 14:28:04].
***************************************************************************************************

===============================================================================

===============================================================================

Attempting to convert the distribution group Migrate without ignoring invalid managers or invalid members.  The managed by attribute was set through Active Directory Users and Computers and a non-mail enabled object was selected.  IgnoreInvalidManagedByMember is set to $FALSE – therefore the script ends because managed by cannot be established.  The managedBy recipient would need to be removed or ignoreInvalidManagedByMember set to $TRUE.

PS C:Scripts> .ConvertDL.ps1 -dlToConvert Migrate -ignoreInvalidDLMember:$TRUE -ignoreInvalidManagedByMember:$FALSE



     Directory: C:Scripts




Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/19/2018   2:35 PM              0 DLConversion.log
***************************************************************************************************
Started processing at [09/19/2018 14:35:02].
***************************************************************************************************



Running script version [1.0].



***************************************************************************************************



This function imports the on premises secured credentials file....
The on premises credentials file was imported successfully.



This function imports the Office 365 secured credentials file....
The Office 365 credentials file was imported successfully.



This function creates the powershell session to on premises Exchange....
The powershell session to on premises Exchange was created successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function creates the powershell session to AAD Connect....
The powershell session to AAD Connect was created successfully.



This function imports the powershell session to on premises Exchange....
WARNING: The names of some imported commands from the module 'tmp_u2zod0xm.0jy' include unapproved verbs that might
make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the
Verbose parameter. For a list of approved verbs, type Get-Verb.



Name              : tmp_u2zod0xm.0jy
Path              : C:Usersadmin.domainAppDataLocalTemptmp_u2zod0xm.0jytmp_u2zod0xm.0jy.psm1
Description       : Implicit remoting for
https://webmail.domain.com/powershell

Guid              : 2a209690-a2fd-4d0e-89e9-e52df5c5573e
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_u2zod0xm.0jy
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-ADPermission, Add-ADPermission], [Add-AvailabilityAddressSpace,
                     Add-AvailabilityAddressSpace], [Add-ContentFilterPhrase, Add-ContentFilterPhrase],
                     [Add-DatabaseAvailabilityGroupServer, Add-DatabaseAvailabilityGroupServer]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to on premises Exchange was imported successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_i53fb2xz.uuu' include unapproved verbs that might
make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the
Verbose parameter. For a list of approved verbs, type Get-Verb.



Name              : tmp_i53fb2xz.uuu
Path              : C:Usersadmin.domainAppDataLocalTemptmp_i53fb2xz.uuutmp_i53fb2xz.uuu.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : 20a82db7-7a4b-4034-95bc-6934f15f4c7b
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_i53fb2xz.uuu
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace],
                     [Add-o365DistributionGroupMember, Add-o365DistributionGroupMember],
                     [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission], [Add-o365MailboxLocation,
                     Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



This function collects the on premises distribution list configuration....
The on premises distribution list information was collected successfully.



This function collects the Office 365 distribution list configuration....
The Office 365 distribution list information was collected successfully.



This function validates a cloud DLs saftey to migrate....
The DL is safe to proeced for conversion - source of authority is on-premises.



This function writes the on prmeises distribution list configuration to XML....
The on premises distribution list information was written to XML successfully.



This function writes the Office 365 distribution list configuration to XML....
The Office 365 distribution list information was written to XML successfully.



This function collections the on premises DL membership....
The DL membership was collected successfully.



This function writes the on prmeises distribution list membership configuration to XML....
The on premises distribution list membership information was written to XML successfully.



This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



Begin processing a DL membership array.
This function builds an array of DL members or multivalued attributes....
Processing mail enabled DL member:
Journal Mailbox
Processing mail enabled DL member:
Brian Murphy
Processing mail enabled DL member:
Timothy McMichael
Processing mail enabled DL member:
Migrate1
Processing non-mailenabled DL member:
Team Manager
Processing mail enabled DL member:
Dynamic
The following object was intentionally skipped - object type not replicated to Exchange Online
Test Contact
The following SMTP address was added to the array:
journal@domain.org
The following SMTP address was added to the array:
brian@domain.com
The following SMTP address was added to the array:
tmcmichael@domain.org
The following SMTP address was added to the array:
Migrate1@domain.org
The following SMTP address was added to the array:
teammanager@domain.org
The following SMTP address was added to the array:
Dynamic@domain.org



The array was built successfully.



This function resets the Office 365 powershell sessions....
This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_l1gyiiem.qhr' include unapproved verbs that might
make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the
Verbose parameter. For a list of approved verbs, type Get-Verb.



Name              : tmp_l1gyiiem.qhr
Path              : C:Usersadmin.domainAppDataLocalTemptmp_l1gyiiem.qhrtmp_l1gyiiem.qhr.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : ffbd7762-080a-48fa-88c0-d7cf5089d656
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_l1gyiiem.qhr
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace],
                     [Add-o365DistributionGroupMember, Add-o365DistributionGroupMember],
                     [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission], [Add-o365MailboxLocation,
                     Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



All Office 365 powershell sessions have been refreshed.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
journal@domain.org
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
brian@domain.com
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
tmcmichael@domain.org
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
Migrate1@domain.org
The recipients were found in Office 365.



This function tests to see if any sub groups or groups assigned permissions have been migrated....
Now testing group...
Migrate1@domain.org
False
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
teammanager@domain.org
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
Dynamic@domain.org
The recipients were found in Office 365.



Begin processing a ManagedBy array.
This function builds an array of DL members or multivalued attributes....
ERROR: domain.local/Users/Test Manager
ERROR: A non-mail enabled or Office 365 object was found in ManagedBy.
ERROR: Script invoked without skipping invalid DL Member.
ERROR: The object must be removed or mail enabled.
ERROR: EXITING.

This function cleans up all powershell sessions....
All powershell sessions have been cleaned up successfully.




***************************************************************************************************
Finished processing at [09/19/2018 14:35:45].
***************************************************************************************************

===============================================================================

===============================================================================

Attempting to convert the distribution group Migrate without ignoring invalid managers or invalid members.  The invoke includes both ignore values – allowing us to skip

PS C:Scripts> .ConvertDL.ps1 -dlToConvert Migrate -ignoreInvalidDLMember:$TRUE -ignoreInvalidManagedByMember:$TRUE



     Directory: C:Scripts




Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/19/2018   2:54 PM              0 DLConversion.log
***************************************************************************************************
Started processing at [09/19/2018 14:54:59].
***************************************************************************************************



Running script version [1.0].



***************************************************************************************************



This function imports the on premises secured credentials file....
The on premises credentials file was imported successfully.



This function imports the Office 365 secured credentials file....
The Office 365 credentials file was imported successfully.



This function creates the powershell session to on premises Exchange....
The powershell session to on premises Exchange was created successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function creates the powershell session to AAD Connect....
The powershell session to AAD Connect was created successfully.



This function imports the powershell session to on premises Exchange....
WARNING: The names of some imported commands from the module 'tmp_nkc0cq2u.nri' include unapproved verbs that might make them less
discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of
approved verbs, type Get-Verb.



Name              : tmp_nkc0cq2u.nri
Path              : C:Usersadmin.domainAppDataLocalTemptmp_nkc0cq2u.nritmp_nkc0cq2u.nri.psm1
Description       : Implicit remoting for
https://webmail.domain.com/powershell

Guid              : 63c5f70a-44fa-47ed-95ef-749afa5a5d44
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_nkc0cq2u.nri
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-ADPermission, Add-ADPermission], [Add-AvailabilityAddressSpace, Add-AvailabilityAddressSpace],
                     [Add-ContentFilterPhrase, Add-ContentFilterPhrase], [Add-DatabaseAvailabilityGroupServer,
                     Add-DatabaseAvailabilityGroupServer]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to on premises Exchange was imported successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_qxckji5q.2cy' include unapproved verbs that might make them less
discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of
approved verbs, type Get-Verb.



Name              : tmp_qxckji5q.2cy
Path              : C:Usersadmin.domainAppDataLocalTemptmp_qxckji5q.2cytmp_qxckji5q.2cy.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : 4428cefd-6fa1-4ed9-9e49-baae4c962b8d
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_qxckji5q.2cy
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace], [Add-o365DistributionGroupMember,
                     Add-o365DistributionGroupMember], [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission],
                     [Add-o365MailboxLocation, Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



This function collects the on premises distribution list configuration....
The on premises distribution list information was collected successfully.



This function collects the Office 365 distribution list configuration....
The Office 365 distribution list information was collected successfully.



This function validates a cloud DLs saftey to migrate....
The DL is safe to proeced for conversion - source of authority is on-premises.



This function writes the on prmeises distribution list configuration to XML....
The on premises distribution list information was written to XML successfully.



This function writes the Office 365 distribution list configuration to XML....
The Office 365 distribution list information was written to XML successfully.



This function collections the on premises DL membership....
The DL membership was collected successfully.



This function writes the on prmeises distribution list membership configuration to XML....
The on premises distribution list membership information was written to XML successfully.



This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



Begin processing a DL membership array.
This function builds an array of DL members or multivalued attributes....
Processing mail enabled DL member:
Journal Mailbox
Processing mail enabled DL member:
Brian Murphy
Processing mail enabled DL member:
Timothy McMichael
Processing mail enabled DL member:
Migrate1
Processing non-mailenabled DL member:
Team Manager
Processing mail enabled DL member:
Dynamic

The following object was intentionally skipped - object type not replicated to Exchange Online
Test Contact

The following SMTP address was added to the array:
journal@domain.org
The following SMTP address was added to the array:
brian@domain.com
The following SMTP address was added to the array:
tmcmichael@domain.org
The following SMTP address was added to the array:
Migrate1@domain.org
The following SMTP address was added to the array:
teammanager@domain.org
The following SMTP address was added to the array:
Dynamic@domain.org



The array was built successfully.



This function resets the Office 365 powershell sessions....
This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_1qvzwqrs.bux' include unapproved verbs that might make them less
discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of
approved verbs, type Get-Verb.



Name              : tmp_1qvzwqrs.bux
Path              : C:Usersadmin.domainAppDataLocalTemptmp_1qvzwqrs.buxtmp_1qvzwqrs.bux.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : 87c6283a-a172-48b8-b31c-d5b966941fd5
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_1qvzwqrs.bux
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace], [Add-o365DistributionGroupMember,
                     Add-o365DistributionGroupMember], [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission],
                     [Add-o365MailboxLocation, Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



All Office 365 powershell sessions have been refreshed.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
journal@domain.org
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
brian@domain.com
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
tmcmichael@domain.org
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
Migrate1@domain.org
The recipients were found in Office 365.



This function tests to see if any sub groups or groups assigned permissions have been migrated....
Now testing group...
Migrate1@domain.org
False
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
teammanager@domain.org
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
Dynamic@domain.org
The recipients were found in Office 365.



Begin processing a ManagedBy array.
This function builds an array of DL members or multivalued attributes....

The following object was intentionally skipped - object type not replicated to Exchange Online
domain.local/Users/Test Manager

Processing Managed By member:
The following SMTP address was added to the array:
bmoran@domain.org



The array was built successfully.



This function resets the Office 365 powershell sessions....
This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_swg5mjit.e3j' include unapproved verbs that might make them less
discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of
approved verbs, type Get-Verb.



Name              : tmp_swg5mjit.e3j
Path              : C:Usersadmin.domainAppDataLocalTemptmp_swg5mjit.e3jtmp_swg5mjit.e3j.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : e769a4d9-fe17-4170-8634-ae2cecc1654c
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_swg5mjit.e3j
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace], [Add-o365DistributionGroupMember,
                     Add-o365DistributionGroupMember], [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission],
                     [Add-o365MailboxLocation, Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



All Office 365 powershell sessions have been refreshed.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
bmoran@domain.org
The recipients were found in Office 365.



Begin processing a ModeratedBy array.
This function builds an array of DL members or multivalued attributes....
Processing ModeratedBy, GrantSendOnBehalfTo, AcceptMessagesOnlyFromSendersorMembers, RejectMessagesFromSendersOrMembers, or BypassModerationFromSendersOrMembers member:
The following SMTP address was added to the array:
tmcmichael@domain.org



The array was built successfully.



This function resets the Office 365 powershell sessions....
This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_qt1dzaih.egn' include unapproved verbs that might make them less
discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of
approved verbs, type Get-Verb.



Name              : tmp_qt1dzaih.egn
Path              : C:Usersadmin.domainAppDataLocalTemptmp_qt1dzaih.egntmp_qt1dzaih.egn.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : 086dd663-c6d8-45b9-9836-7745e03dd255
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_qt1dzaih.egn
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace], [Add-o365DistributionGroupMember,
                     Add-o365DistributionGroupMember], [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission],
                     [Add-o365MailboxLocation, Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



All Office 365 powershell sessions have been refreshed.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
tmcmichael@domain.org
The recipients were found in Office 365.



Begin processing a GrantSendOnBehalfTo array
This function builds an array of DL members or multivalued attributes....
Processing ModeratedBy, GrantSendOnBehalfTo, AcceptMessagesOnlyFromSendersorMembers, RejectMessagesFromSendersOrMembers, or BypassModerationFromSendersOrMembers member:
The following SMTP address was added to the array:
tmcmichael@domain.org



The array was built successfully.



This function resets the Office 365 powershell sessions....
This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_asuxfjkc.4lz' include unapproved verbs that might make them less
discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of
approved verbs, type Get-Verb.



Name              : tmp_asuxfjkc.4lz
Path              : C:Usersadmin.domainAppDataLocalTemptmp_asuxfjkc.4lztmp_asuxfjkc.4lz.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : 53da7cd1-71c7-4510-aec5-d495c8c08987
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_asuxfjkc.4lz
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace], [Add-o365DistributionGroupMember,
                     Add-o365DistributionGroupMember], [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission],
                     [Add-o365MailboxLocation, Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



All Office 365 powershell sessions have been refreshed.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
tmcmichael@domain.org
The recipients were found in Office 365.



Begin processing a AcceptMessagesOnlyFromSendersOrMembers array
This function builds an array of DL members or multivalued attributes....
Processing ModeratedBy, GrantSendOnBehalfTo, AcceptMessagesOnlyFromSendersorMembers, RejectMessagesFromSendersOrMembers, or BypassModerationFromSendersOrMembers member:
Processing ModeratedBy, GrantSendOnBehalfTo, AcceptMessagesOnlyFromSendersorMembers, RejectMessagesFromSendersOrMembers, or BypassModerationFromSendersOrMembers member:
The following SMTP address was added to the array:
bmoran@domain.org
The following SMTP address was added to the array:
Migrate1@domain.org



The array was built successfully.



This function resets the Office 365 powershell sessions....
This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_v3xtlz25.hej' include unapproved verbs that might make them less
discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of
approved verbs, type Get-Verb.



Name              : tmp_v3xtlz25.hej
Path              : C:Usersadmin.domainAppDataLocalTemptmp_v3xtlz25.hejtmp_v3xtlz25.hej.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : 019f80be-f9d7-4082-bf5b-955c059d170d
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_v3xtlz25.hej
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace], [Add-o365DistributionGroupMember,
                     Add-o365DistributionGroupMember], [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission],
                     [Add-o365MailboxLocation, Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



All Office 365 powershell sessions have been refreshed.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
bmoran@domain.org
The recipients were found in Office 365.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
Migrate1@domain.org
The recipients were found in Office 365.



This function tests to see if any sub groups or groups assigned permissions have been migrated....
Now testing group...
Migrate1@domain.org
False
The recipients were found in Office 365.



Begin processing RejectMessagesFromSendersOrMembers array
This function builds an array of DL members or multivalued attributes....
Processing ModeratedBy, GrantSendOnBehalfTo, AcceptMessagesOnlyFromSendersorMembers, RejectMessagesFromSendersOrMembers, or BypassModerationFromSendersOrMembers member:
The following SMTP address was added to the array:
Migrate2@domain.org



The array was built successfully.



This function resets the Office 365 powershell sessions....
This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_zmxben01.bs4' include unapproved verbs that might make them less
discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of
approved verbs, type Get-Verb.



Name              : tmp_zmxben01.bs4
Path              : C:Usersadmin.domainAppDataLocalTemptmp_zmxben01.bs4tmp_zmxben01.bs4.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : f13bceb8-a02e-4242-aef7-b63f0adb27d6
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_zmxben01.bs4
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace], [Add-o365DistributionGroupMember,
                     Add-o365DistributionGroupMember], [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission],
                     [Add-o365MailboxLocation, Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



All Office 365 powershell sessions have been refreshed.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
Migrate2@domain.org
The recipients were found in Office 365.



This function tests to see if any sub groups or groups assigned permissions have been migrated....
Now testing group...
Migrate2@domain.org
False
The recipients were found in Office 365.



Begin processing BypassModerationFromSendersOrMembers array
This function builds an array of DL members or multivalued attributes....
Processing ModeratedBy, GrantSendOnBehalfTo, AcceptMessagesOnlyFromSendersorMembers, RejectMessagesFromSendersOrMembers, or BypassModerationFromSendersOrMembers member:
The following SMTP address was added to the array:
Migrate1@domain.org



The array was built successfully.



This function resets the Office 365 powershell sessions....
This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_kqtp23ls.xwx' include unapproved verbs that might make them less
discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of
approved verbs, type Get-Verb.



Name              : tmp_kqtp23ls.xwx
Path              : C:Usersadmin.domainAppDataLocalTemptmp_kqtp23ls.xwxtmp_kqtp23ls.xwx.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : 31e5aaad-348d-4513-bc4c-01e4cdfb5bc9
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_kqtp23ls.xwx
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace], [Add-o365DistributionGroupMember,
                     Add-o365DistributionGroupMember], [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission],
                     [Add-o365MailboxLocation, Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



All Office 365 powershell sessions have been refreshed.



This function validates that all objects in the passed array exist in Office 365....
Testing user in Office 365...
Migrate1@domain.org
The recipients were found in Office 365.



This function tests to see if any sub groups or groups assigned permissions have been migrated....
Now testing group...
Migrate1@domain.org
False
The recipients were found in Office 365.



This function moves group to the non-sync OU
The group has been moved successfully.



Gets active directory domain controllers...
Succesfully obtained domain controllers.



Gets active directory domain...
Succesfully obtained domain.



Replicates the specified domain controller...
Syncing partition: DC=domain,DC=local
CALLBACK MESSAGE: SyncAll Finished.
SyncAll terminated with no errors.



Successfully replicated the domain controller.



Replicates the specified domain controller...
Syncing partition: DC=domain,DC=local
CALLBACK MESSAGE: SyncAll Finished.
SyncAll terminated with no errors.



Successfully replicated the domain controller.



Replicates the specified domain controller...
Syncing partition: DC=domain,DC=local
CALLBACK MESSAGE: SyncAll Finished.
SyncAll terminated with no errors.



Successfully replicated the domain controller.



Invoking AADConnect Delta Sync Remotely
This function triggers the ad connect process to sync changes...



PSComputerName : azure-adconnect.domain.local
RunspaceId     : 764c99c8-6e48-415a-b319-9847cce42922
Result         : Success



The AD Connect instance has been successfully initiated.



This function resets the Office 365 powershell sessions....
This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_ffoelvjn.lws' include unapproved verbs that might make them less
discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of
approved verbs, type Get-Verb.



Name              : tmp_ffoelvjn.lws
Path              : C:Usersadmin.domainAppDataLocalTemptmp_ffoelvjn.lwstmp_ffoelvjn.lws.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : 001ce520-4538-4f59-a5d4-710d8097b338
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_ffoelvjn.lws
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace], [Add-o365DistributionGroupMember,
                     Add-o365DistributionGroupMember], [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission],
                     [Add-o365MailboxLocation, Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



All Office 365 powershell sessions have been refreshed.



Wating for original DL deletion from Office 365
Wating for original DL deletion from Office 365
Wating for original DL deletion from Office 365
The operation couldn't be performed because object 'Migrate@domain.org' couldn't be found on
'CO1PR06A002DC03.NAMPR06A002.prod.outlook.com'.
     + CategoryInfo          : NotSpecified: (:) [Get-Recipient], ManagementObjectNotFoundException
     + FullyQualifiedErrorId : [Server=DM6PR06MB4026,RequestId=1f8fe3eb-6b61-4564-be56-c8af5d303a3a,TimeStamp=9/19/2018 3:00:02 PM] [Fail
    ureCategory=Cmdlet-ManagementObjectNotFoundException] 24B7AD96,Microsoft.Exchange.Management.RecipientTasks.GetRecipient
     + PSComputerName        : outlook.office365.com



This function resets the Office 365 powershell sessions....
This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_3hao5uao.he4' include unapproved verbs that might make them less
discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of
approved verbs, type Get-Verb.



Name              : tmp_3hao5uao.he4
Path              : C:Usersadmin.domainAppDataLocalTemptmp_3hao5uao.he4tmp_3hao5uao.he4.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : f93cff62-1cce-4d83-bce9-991c54b5127e
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_3hao5uao.he4
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace], [Add-o365DistributionGroupMember,
                     Add-o365DistributionGroupMember], [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission],
                     [Add-o365MailboxLocation, Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



All Office 365 powershell sessions have been refreshed.



This function creates the cloud DL with the minimum settings...
Universal
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.



RunspaceId                             : 8ca722dd-6bea-470d-9fc9-36dc4c73148c
GroupType                              : Universal
SamAccountName                         : Migrate574691357943970
BypassNestedModerationEnabled          : False
IsDirSynced                            : False
ManagedBy                              : {domainAdmin}
MemberJoinRestriction                  : Closed
MemberDepartRestriction                : Open
MigrationToUnifiedGroupInProgress      : False
ExpansionServer                        :
ReportToManagerEnabled                 : False
ReportToOriginatorEnabled              : True
SendOofMessageToOriginatorEnabled      : False
AcceptMessagesOnlyFrom                 : {}
AcceptMessagesOnlyFromDLMembers        : {}
AcceptMessagesOnlyFromSendersOrMembers : {}
AddressListMembership                  : {Default Global Address List, All Recipients(VLV), Groups(VLV), All Groups(VLV)...}
AdministrativeUnits                    : {}
Alias                                  : Migrate
ArbitrationMailbox                     : SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}
BypassModerationFromSendersOrMembers   : {}
OrganizationalUnit                     : nampr06a002.prod.outlook.com/Microsoft Exchange Hosted
                                          Organizations/domainSquad.onmicrosoft.com
CustomAttribute1                       :
CustomAttribute10                      :
CustomAttribute11                      :
CustomAttribute12                      :
CustomAttribute13                      :
CustomAttribute14                      :
CustomAttribute15                      :
CustomAttribute2                       :
CustomAttribute3                       :
CustomAttribute4                       :
CustomAttribute5                       :
CustomAttribute6                       :
CustomAttribute7                       :
CustomAttribute8                       :
CustomAttribute9                       :
ExtensionCustomAttribute1              : {}
ExtensionCustomAttribute2              : {}
ExtensionCustomAttribute3              : {}
ExtensionCustomAttribute4              : {}
ExtensionCustomAttribute5              : {}
DisplayName                            : Migrate
EmailAddresses                         : {SMTP:Migrate@domain.org}
GrantSendOnBehalfTo                    : {}
ExternalDirectoryObjectId              : d10bc5bd-01dc-4708-a98a-a9c2294149d6
HiddenFromAddressListsEnabled          : False
LastExchangeChangedTime                :
LegacyExchangeDN                       : /o=ExchangeLabs/ou=Exchange Administrative Group
                                          (FYDIBOHF23SPDLT)/cn=Recipients/cn=002d4cd657784b01bccf8b85e5c35519-Migrate
MaxSendSize                            : Unlimited
MaxReceiveSize                         : Unlimited
ModeratedBy                            : {}
ModerationEnabled                      : False
PoliciesIncluded                       : {}
PoliciesExcluded                       : {{26491cfc-9e50-4857-861b-0cb8df22b5d7}}
EmailAddressPolicyEnabled              : False
PrimarySmtpAddress                     : Migrate@domain.org
RecipientType                          : MailUniversalDistributionGroup
RecipientTypeDetails                   : MailUniversalDistributionGroup
RejectMessagesFrom                     : {}
RejectMessagesFromDLMembers            : {}
RejectMessagesFromSendersOrMembers     : {}
RequireSenderAuthenticationEnabled     : True
SimpleDisplayName                      :
SendModerationNotifications            : Always
UMDtmfMap                              : {emailAddress:6447283, lastNameFirstName:6447283, firstNameLastName:6447283}
WindowsEmailAddress                    : Migrate@domain.org
MailTip                                :
MailTipTranslations                    : {}
Identity                               : Migrate
Id                                     : Migrate
IsValid                                : True
ExchangeVersion                        : 0.10 (14.0.100.0)
Name                                   : Migrate
DistinguishedName                      : CN=Migrate,OU=domainSquad.onmicrosoft.com,OU=Microsoft Exchange Hosted
                                          Organizations,DC=NAMPR06A002,DC=prod,DC=outlook,DC=com
ObjectCategory                         : NAMPR06A002.prod.outlook.com/Configuration/Schema/Group
ObjectClass                            : {top, group}
WhenChanged                            : 9/19/2018 3:00:16 PM
WhenCreated                            : 9/19/2018 3:00:16 PM
WhenChangedUTC                         : 9/19/2018 3:00:16 PM
WhenCreatedUTC                         : 9/19/2018 3:00:16 PM
OrganizationId                         : NAMPR06A002.prod.outlook.com/Microsoft Exchange Hosted
                                          Organizations/domainSquad.onmicrosoft.com - NAMPR06A002.prod.outlook.com/ConfigurationUn
                                          its/domainSquad.onmicrosoft.com/Configuration
Guid                                   : b735426e-9551-4441-a710-803946ea176c
OriginatingServer                      : CO1PR06A002DC02.NAMPR06A002.prod.outlook.com
ObjectState                            : Unchanged



Distribution list created successfully in Exchange Online / Office 365.



This function updates the cloud DL settings to match on premise...
This does not update the multivalued attributes...
Distribution group properties updated successfully.



Processing DL Membership member to Office 365...
journal@domain.org
This function sets the multi-valued attributes
DLMembership
The mutilvalued attribute was updated successfully.
DLMembership



Processing DL Membership member to Office 365...
brian@domain.com
This function sets the multi-valued attributes
DLMembership
The mutilvalued attribute was updated successfully.
DLMembership



Processing DL Membership member to Office 365...
tmcmichael@domain.org
This function sets the multi-valued attributes
DLMembership
The mutilvalued attribute was updated successfully.
DLMembership



Processing DL Membership member to Office 365...
Migrate1@domain.org
This function sets the multi-valued attributes
DLMembership
The mutilvalued attribute was updated successfully.
DLMembership



Processing DL Membership member to Office 365...
teammanager@domain.org
This function sets the multi-valued attributes
DLMembership
The mutilvalued attribute was updated successfully.
DLMembership



Processing DL Membership member to Office 365...
Dynamic@domain.org
This function sets the multi-valued attributes
DLMembership
The mutilvalued attribute was updated successfully.
DLMembership



Processing Bypass Managed By member to Office 365...
bmoran@domain.org
This function sets the multi-valued attributes
ManagedBy
The mutilvalued attribute was updated successfully.
ManagedBy



Processing Moderated By member to Office 365...
tmcmichael@domain.org
This function sets the multi-valued attributes
ModeratedBy
The mutilvalued attribute was updated successfully.
ModeratedBy



Processing Grant Send On Behalf To Array member to Office 365...
tmcmichael@domain.org
This function sets the multi-valued attributes
GrantSendOnBehalfTo
The mutilvalued attribute was updated successfully.
GrantSendOnBehalfTo



Processing Accept Messages Only From Senders Or Members member to Office 365...
bmoran@domain.org
This function sets the multi-valued attributes
AcceptMessagesOnlyFromSendersOrMembers
The mutilvalued attribute was updated successfully.
AcceptMessagesOnlyFromSendersOrMembers



Processing Accept Messages Only From Senders Or Members member to Office 365...
Migrate1@domain.org
This function sets the multi-valued attributes
AcceptMessagesOnlyFromSendersOrMembers
The mutilvalued attribute was updated successfully.
AcceptMessagesOnlyFromSendersOrMembers



Processing Reject Messages From Senders Or Members member to Office 365...
Migrate2@domain.org
This function sets the multi-valued attributes
RejectMessagesFromSendersOrMembers
The mutilvalued attribute was updated successfully.
RejectMessagesFromSendersOrMembers



Processing Bypass Moderation From Senders Or Members member to Office 365...
Migrate1@domain.org
This function sets the multi-valued attributes
BypassModerationFromSendersOrMembers
The mutilvalued attribute was updated successfully.
BypassModerationFromSendersOrMembers



This function resets the Office 365 powershell sessions....
This function removes the Office 365 powershell sessions....
All powershell sessions have been cleaned up successfully.



This function creates the powershell session to Office 365....
The powershell session to Office 365 was created successfully.



This function imports the powershell session to Office 365....
WARNING: The names of some imported commands from the module 'tmp_w0eyp2oc.n3o' include unapproved verbs that might make them less
discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of
approved verbs, type Get-Verb.



Name              : tmp_w0eyp2oc.n3o
Path              : C:Usersadmin.domainAppDataLocalTemptmp_w0eyp2oc.n3otmp_w0eyp2oc.n3o.psm1
Description       : Implicit remoting for
https://outlook.office365.com/powershell-liveID/

Guid              : 1d8d7722-910f-43e6-ad74-8a8bb4e0a2e8
Version           : 1.0
ModuleBase        : C:Usersadmin.domainAppDataLocalTemptmp_w0eyp2oc.n3o
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Add-o365AvailabilityAddressSpace, Add-o365AvailabilityAddressSpace], [Add-o365DistributionGroupMember,
                     Add-o365DistributionGroupMember], [Add-o365MailboxFolderPermission, Add-o365MailboxFolderPermission],
                     [Add-o365MailboxLocation, Add-o365MailboxLocation]...}
ExportedVariables : {}
NestedModules     : {}



The powershell session to Office 365 was imported successfully.



All Office 365 powershell sessions have been refreshed.



This function collects the new office 365 distribution list configuration....
The on premises distribution list information was collected successfully.



This function collects the new office 365 distribution list member configuration....
The on premises distribution list information was collected successfully.



This function writes the new Office 365 distribution list configuration to XML....
The on premises distribution list information was written to XML successfully.



This function writes the new Office 365 distribution list membership configuration to XML....
The on premises distribution list information was written to XML successfully.



This function cleans up all powershell sessions....
All powershell sessions have been cleaned up successfully.

===============================================================================

Support Tip: Where to Schedule iOS Policies

$
0
0

The “Update policies for iOS” blade in Intune allows admins to force supervised iOS devices to automatically install the latest OS update, as outlined in our documentation here: Configure iOS update policies in Intune.

One of the settings- “Delay visibility of software updates”- allows admins to defer software update visibility to end user supervised iOS devices. We’re seeing an interpretation of this setting, where admins use it with the intent of blocking users from receiving updates on their iOS device. However, the original intent of the “Update policies for iOS” blade, which is to force updates, overrides this and an update is pushed to the device from the Intune service while not being visible to the end user.

For example, an admin goes to Software Updates > Update policies for iOS and creates a policy for iOS 12. “Delay visibility of software update (days)” is set to the default 30 days and they configure other settings as shown in the screenshot below, thinking that iOS 12 will not be pushed to devices for 30 days. However, due to the way these settings are configured, as soon as this policy is targeted to devices, the iOS 12 update will immediately be pushed out to those devices with the exception of Sunday, 10am -6pm in this case.

iOS update policy

 

Here are two scenarios you may come across and what you’d need to do in each case:

1. If you do not wish your end users to update to the latest version of iOS for a certain number of days, you should configure the “Days” setting to include all days of the week in addition to having your desired value in the “Delay visibility of software updates” field (see screenshot below).

iOS update policy2

2. If you wish to only delay visibility of updates to end users, do not create an update policy. Instead, upload a Custom Device Configuration with the following key-value pairs set:

<key>forceDelayedSoftwareUpdates</key>

<true />

<key>enforcedSoftwareUpdateDelay</key>

<integer>30</integer>

Let us know if you have any questions!

Top 10 Networking Features in Windows Server 2019: #1 Container Networking with Kubernetes

$
0
0
Share On: Twitter

This blog is part of a series for the Top 10 Networking Features in Windows Server 2019!
-- Click HERE to see the other blogs in this series.  This concludes our 
Top 10 List. We hope to see you at Ignite next week!

Look for the Try it out sections then give us some feedback in the comments!

In today’s increasingly competitive and fast-paced technology market, enterprises are constantly discovering amazing new ways to innovate and evolve. One such area with expanding interest in recent years is application modernization using containers and container orchestration. The numbers speak for themselves -- a recent press release (06/18) by Allied Market Research concluded that:

The global application container market was valued at $698 million in 2016, and is projected to reach $8.2 billion by 2025.

As applications are lifted-and-shifted from VMs to containers, IT Pros and Dev Ops teams require the same network management agility of Software-Defined Datacenter (SDDC). Kubernetes, the de facto container orchestration tool, addresses this gap under the umbrella of a standardized & open-sourced framework.

In Kubernetes version 1.9 with Windows Server, version 1709 we first announced beta for Windows Server containers. Now, with Windows Server 2019, we greatly improved usability of Kubernetes on Windows by enhancing platform networking resiliency and support of container networking plugins.

Additionally, customers deploying workloads on Kubernetes demand network security to protect both Linux and Windows services using embedded tooling. The Windows Networking team has been working closely with Tigera, who is an industry-recognized leader in this space, and is pleased to announce upcoming availability of Tigera Calico for Windows. Both companies are working jointly with TAP customers to deploy Calico on Windows in POC environments, with current focus on network policy enforcement. Network management using dynamic routing (BGP) and IPAM is also on Tigera’s roadmap, with forthcoming Calico CNI support on Windows.

Kubernetes + Windows Server 2019

The Windows Networking team (together with the Kubernetes community) has done tremendous work on both the platform and open-source front to enable a smooth interoperability between Windows and other first-class citizens belonging to the Kubernetes project.

Windows Server 2019 supports all the Kubernetes networking building blocks (“primitives”), such that you’re able to deploy mixed-OS Kubernetes clusters in the environment of your choice. Whether you’re looking for maximum control in your own on-premises datacenter, or conveniently getting it all provisioned on Azure infrastructure – all the networking pieces are ready for composing your own cluster now.

Here is a timeline summarizing the groundbreaking achievements that enabled Windows to pursue its very own "Kubistential" awakening:

Figure 1: Kubernetes improvements since Windows Server 2016

The major headline from the graphic above, is that Kubernetes for Windows is projected to GA with Kubernetes 1.13, including official support on Windows Server 2019. Considering that Kubernetes is the most actively discussed GitHub project in the world today, this means you have a really compelling new force gravitating you towards Kubernetes on Windows: both open-source community and platform-level support from Microsoft enterprise.

Equally exciting to us, is that customers and users are also beginning to see these incremental improvements:

"My windows node successfully joined the cluster and I’m able to schedule a pod on it.  Definitely a victory." 

– Nikhil Shampur, ESRI.

"To me, it’s great to see that Kubernetes on Windows is now working so smoothly!" 

- Ulrich Rabenstein, SAP, Developer

Let's make things more concrete through the lens of a (simplified) deployment example to demonstrate how Kubernetes features (all supported on Windows Server 2019) address the needs of an enterprise.

Deploying Kubernetes on Windows Server 2019: A reference example

Consider a Windows-based, .NET application consisting of an ordering service, location service, and identity service. Here are some basic, yet plausible example needs:

  1. I can safeguard confidential data by defining network security policies to control access to my workloads.
  2. I need a highly available system that is always accessible (zero downtime).
  3. My applications can scale with demand during high-traffic periods (Cyber Monday for example).
  4. My Windows services can communicate with my Linux services, and vice-versa.

Figure 2: Monolithic application

In theory, we could take this application and simply run it in a container, with each of these services communicating via shared networking and compute resources. However, in pursuit of technical benefits such as high cohesion and low coupling (see microservices architecture), work could also be done to refactor the application, and split it up into more manageable components.

Figure 3: Microservices application

In doing so, it quickly becomes apparent that the most effective way to redesign the architecture and standardize this distributed system, is through a container orchestrator. Why? Well, Kubernetes already provides native features that satisfy these requirements, it enhances portability in case of future changes, and there is no need to reinvent the wheel. Here's the Kubernetes solution:

  1. I can safeguard confidential data by defining network security policies to control access to my workloads.
    • Solution: Use the network policy feature that gives you a granular way to restrict traffic and isolate containers running your workloads.
      • (See an example of this on Windows Server 2019 here).
  2. I need a highly available system that is always accessible (zero downtime).
    • Solution: Use the deployment feature for health monitoring + automatic replication of your containers in case of failure.
      • (See an example of this on Windows Server 2019 here).
  3. My applications can scale with demand during high-traffic periods (Cyber Monday for example).
    • Solution: Use the service feature together with deployments to define a set of load-balanced pods that can easily be scaled to handle incoming network traffic.
      • (See an example of this on Windows Server 2019 here).
    • *Tip*: Stay tuned for a more automated version of this solution called HPA (horizontal pod autoscaling), also coming soon with Windows GA.
  4. My Windows services can communicate with my Linux services, and vice-versa.
    • Solution: See connecting application services about Kubernetes service discovery that allows services on any OS to communicate with each other via IP or name.
      • (See an example of this on Windows Server 2019 here).

Figure 4: Containerized application on Kubernetes

Notice how most of these requirements are not really unique to our simplified example, but applicable to many other domains. Lower maintenance outages thanks to a fault-tolerant solution designed with failure in mind, or a more responsive, light-weight infrastructure are universal needs.

Here is also a video that we took to demonstrate the aforementioned features in action:

Try it out today!

Ready to get started?  Great, let's take a look at the different avenues to get started today!

Option 1: Do-it-yourself deployment (on-premise)

Description

Perhaps the most challenging option to deploy (albeit giving you most control), is to just develop and deploy Kubernetes yourself on your own datacenter. This has the advantage that it reduces reliance on third parties and keeps proprietary data on your own infrastructure. For this, Windows supports Flannel CNI (in host-gateway mode) for route management, as well as Calico CNI for network policy enforcement. For maximum networking control, you can also just program static routes yourself and leverage the “wincni” container networking plugin.

Requires
  • You have a computer or VM (requires virtualization and MAC spoofing) running Windows Server 2019.
  • You have a computer or VM running a Linux OS which supports Kubernetes (needed for master node).

Ready to give it a shot!? Download the latest Insider build and try it out:
Flannel, recommended for starting out!      Wincni + manual route mangement      Calico (beta) for network policy enforcement

In the future
  • Simplified & scalable network configuration thanks to network management and IPAM provided by Calico CNI!
  • Overlay networking on Flannel!
  • DNS support for multiple namespaces!

 

Option 2: Deploy a Kubernetes cluster on Azure (acs-engine)

Description

Acs-engine is an open-source project from Azure that enables you to generate ARM (Azure Resource Manager) templates describing the size, shape, configuration, and version of your Kubernetes cluster. It can then use your template to generate and provision a cluster attached to a private Azure virtual network (Azure vNet) matching your desired description. This solution utilizes Azure CNI which was specifically developed for integration with the Azure vNet.

Requires

Ready to give it a shot!? Download the latest Insider build and: Try it out!

In the future
  • AKS (Azure Kubernetes Service) with Windows Server containers!

What's Next?

In addition to the options outlined above, we’ve partnered with RedHat to bring Windows Server containers to the RedHat OpenShift Container Platform (currently under private developer preview). This enterprise-grade container platform tailors particularly well to convenience-oriented IT Pros that want to forego complex deployment procedures (who doesn’t?!) while managing mixed-OS workloads through a familiar single pane of glass. Here are the most recent announcements from primary sources:

Key Takeaways

We covered motivations behind Kubernetes, what it is, as well as how-to deploy it. We also gave an overview of both the platform and open-source improvements since Windows Server 2016. Finally, we gave a brief teaser on what’s coming next in the Kubernetes world from a Windows standpoint.

Even though Kubernetes on Windows will GA soon, the road doesn’t end there. The Windows networking team is dedicated to continue working together with the open-source community to bring more Kubernetes networking goodness and CNI support to Windows. If you are curious about some of the technical platform work that enabled Kubernetes to run on Windows Server 2019 today, I’ll point you to these blog posts that already offer excellent insight:

Right now, much of the groundbreaking work is happening on upstream open-source bits, where anyone can contribute! If you want to stay up to date on any announcements, or want to make your voice heard, please join the dedicated Windows Kubernetes community at the #sig-windows meetups!

Thanks for reading!

David Schott

StepUp Technical Security Webinar Series for Microsoft 365 Business

$
0
0

TimTetrickPhoto

Tim Tetrick

 

image

Hello Microsoft Partners!

Your customers have heard the scary statistics: 55% of small businesses have been hit by cyberattacks, 60% who are attacked go out of business, and 58% of users accidentally share sensitive information.1 But while they want to safeguard their business, customers may not know where to start. Some may not be aware of their risk.

I wanted to let you know about this upcoming StepUp four-part technical training on how to keep your customers’ data and business safe with Microsoft 365 Business.

 

Analyze customer risk with Secure Score

Use Secure Score to assess a customer’s risk level and uncover vulnerabilities. Then start a conversation about how Microsoft 365 Business can help keep them secure.

Register here. Thursday, October 11, 2018

 

Guard against online threats and keep data secure

Learn how Office 365 Advanced Threat Protection & Data Loss Prevention protects customers from unknown malware and viruses and safeguards against harmful links. Discover Microsoft 365 Business features that help customers protect sensitive information, prevent inadvertent disclosure and stay compliant with business standards and industry regulations.

Register here. Thursday, October 18, 2018

 

Leverage the newest capabilities to protect from security threats

Windows Defender Exploit Guard helps you manage and reduce the attack surface of apps used by your customers. See how it works! Also, learn how Device Management Policies can help protect users from themselves.

Register here. Thursday, October 25, 2018

 

Protect and classify sensitive documents

See how Azure Information Protection (AIP) can help your customers classify and optionally, protect sensitive documents and emails by applying labels and encryption.

Register here. Thursday, November 1, 2018

 

After you attend these StepUp webinars, take the information you learn and start a security conversation with customers. You can help protect them from cybersecurity nightmares. They’ll be so thankful you did.

 

1CYBER SECURITY STATISTICS – Numbers Small Businesses Need to Know, Jan. 3, 2017

Windows 10 と Office 365 ProPlus の組み合わせのモダン デスクトップへの移行を支援する施策の発表【9/20 更新】

$
0
0

モダン デスクトップへの移行を支援する施策の発表

 

今月の初めに、Windows および Office を中心としたモダンデスクトップへの移行に関する発表がありました。今回の主な発表内容は以下3点になります。

  1. Desktop Analyticsの発表
  2. Desktop Assureの発表
  3. Windows/Officeに関するサービシングとサポートのアップデート

Windows 10およびOffice 365 ProPlus が生産性、セキュリティなどの面でお客様に最高の体験を提供できる組み合わせであることに変わりありません。今回のアナウンスでは、お客様に安心して最新の環境への移行をいただけるようにより柔軟な選択肢を提供することが目的となります。

1. Desktop Analytics の発表

Windows Analyticsを拡張した新たなクラウドサービスDesktop Analyticsが発表されました。Desktop Analytics は1) 組織内で実行されているアプリの一覧表の作成2) Windows 10Office 365 ProPlusの最新の機能更新プログラムと既存アプリケーションの互換性評価3) すべてのアプリケーションとドライバーをカバーするパイロットグループを最小限のデバイスで構成するという3つの機能によって、アップグレードの際のリスクを低減するものです。

詳細は、今月下旬に開催されるIgniteにて発表される予定です。

 

2.Desktop App Assure の発表

Windows 10Office 365 ProPlus のアプリケーションの互換性に関する問題に対処するための新サービス「Desktop App Assure」も発表されました。

Windows Insider Program 参加者による検証によると、99%のアプリケーションに対して互換性が確認されており、Windows 7で動作するほとんどのアプリケーションが Windows 10 とその後の機能更新プログラムでも動作します。もし、Windows 10 または Office 365 ProPlus を更新した後で互換性の問題が生じた場合は、FastTrack を通じてお知らせいただければ、マイクロソフトのエンジニアが問題解決までフォローいたします。

Desktop App Assureは、Windows 10 Enterprise、Windows 10 Education, Office 365 ProPlusのすべてのお客様に追加コストなしで提供されます。10月1日より北米でプレビュー開始、来年2月1日より全世界での提供開始予定です(日本でのリリースについては追ってアナウンスをさせていただきます)。こちらについても詳細はIgniteでの発表となります。

 

3.Windows/Officeに関するサービシングとサポートのアップデート

お客様にWindows 10およびOffice 365 ProPlusのへの移行をよりスムーズに進めていただくために、サービシングやサポートについてアップデートが発表されています。

 

  • Windows 10 SACのEnterpriseおよびEducation Edition のサービシングに関する変更
    • 現在サポートされている全てのWindows 10 EnterpriseおよびEducation Edition (1607, 1703, 1709, 1803)へのサポート期間はリリース日から30か月間
    • 今後、秋にリリースされる全てのWindows 10 EnterpriseおよびEducation Edition(1809以降)については、リリース日から30か月間のサポートを提供
    • 今後、春にリリースされる全てのWindows 10 EnterpriseおよびEducation Edition(1903以降)については、引き続きリリース日から18か月間のサポートを提供
    • Windows 10 Home, Windows 10 Pro, Office 365 ProPlusについては、引き続き18か月間のサポートを提供

 

製品 春リリース 秋リリース
Windows 10 Enterprise 18 か月 30 か月

(これまでは18 か月)

Windows 10 Education
Windows 10 Pro 18 か月
Windows 10 Home
Office 365 ProPlus

 

  • Windows 7の延長セキュリティ更新プログラム
    • Windows 7の延長サポートは2020年1月14日に終了しますが、今後有償のWindows 7延長セキュリティ更新プログラム(ESU20231まで提供します。
    • Windows 7 ESUはデバイス単位のライセンスでの販売となり1年ごとに価格が上昇します。
    • Windows 7 ESUはWindows 7 ProおよびWindows 7 Enterpriseのボリュームライセンスのすべてのお客様にご利用いただけます。ソフトウェアアシュアランス、Windows 10 EnterpriseまたはWindows 10 Educationの契約をお持ちのお客様にはディスカウントが適用されます。
    • 有効なWindows 7 ESUが適用されているデバイス上のOffice 365 ProPlusは2023年1月までサポートされます。

 

  • Windows 8.1およびWindows Server 2016上でのOffice 365 ProPlusへのサポート期間の見直し
    • オペレーティング システムの移行に伴って Office 365 ProPlus を既にお使いのお客様をサポートするため、Office 365 ProPlus に関する Windows のシステム要件を見直し、2 月に発表した内容の一部を変更します。
      • Office 365 ProPlusは、Windows 8.1 のサポートが終了する20231 まで、引き続き Windows 8.1 でサポートされます。
      • Office 365 ProPlus は、引き続き 202510まで Windows Server 2016 でサポートされます。

 

  • Office 2016からOffice 365サービスへの接続サポートの延長
    • 2020年10月13日よりOffice 365サービスに接続するにはメインストリームサポート期間中のOffice 365 ProPlusまたはOffice 2019クライアントが必要とされていました。
    • この方針を変更し、202310まで引き続きOffice 2016からOffice 365サービスへの接続をサポートします。

 

詳細情報

 

 

[セキュリティ基本対策 5 か条] 第 2 条 アクション センターで PC のセキュリティやメンテナンス状況に問題がないかを確認する

$
0
0

注: この内容は一般の方を対象とした記述にしています。

今日はセキュリティ基本対策 5 か条の第 2 条「アクション センターで PC のセキュリティやメンテナンス状況に問題がないかを確認する」についてご紹介します。

第 1 条  最新の状態で利用する
第 2 条  アクションセンターで PC のセキュリティやメンテナンス状況に問題がないかを確認する
第 3 条  アカウントやパスワードを管理する [Coming soon]
第 4 条  暗号化を行う [Coming soon]
第 5 条  バックアップの取得を設定する [Coming soon]


ビデオでもご確認確認いただけます

セキュリティ基本対策5か条 - 2. アクションセンターを確認する [YouTube]

 

アクションセンターとは?

アクション センターとは、PC のセキュリティや、メンテナンス状況を自動的に確認し、問題がある場合は、お知らせしてくれる機能です。たとえばこんな場合に通知が行われます。

  • マルウェア対策ソフトが最新の状態になっていない場合
  • Windows にセキュリティ更新プログラムが適用されておらず、最新の状態ではない場合
  • 自動バックアップが指定の日時に実行されなかった場合

 

基本のセキュリティ対策の確認方法

ファイアウォール、ウイルス対策、Windows SmartScreen など基本のセキュリティ対策がきちんと有効または OK になっているかを確認してください。

Windows 10 で確認するには、検索ボックスに「セキュリティとメンテナンス」と入力して [セキュリティとメンテナンス] を起動します。

Windows 10 のセキュリティとメンテナンス画面

(Windows 10 のセキュリティとメンテナンス画面)

 

Windows 7Windows 8.1 では Windows キーと A キーを同時に押下して [アクション センター] を起動します。

Windows 7/8.1 のアクション センター画面

(Windows 7/8.1 のアクション センター画面)

 

アクション センターで警告が表示されたら

アクション センターに警告が表示されている場合は、すぐにメッセージを確認し適切な対応を開始してください。

  1. 対応が必要な項目がある場合は、バルーンなどでメッセージが表示されます。

    Windows 7、8.1 の吹き出し

    (Windows 7、8.1 の吹き出し)

    Windows 10 の吹き出し

    (Windows 10 の吹き出し)

  2. Windows 7、8.1 では、吹き出しをクリックすると、アクションが必要な内容についてメッセージが表示されます。メッセージか、[アクション センターを開く] をクリックします。

    Windows 7、8.1 の吹き出し

    (Windows 7、8.1)

    Windows 10 では、吹き出しをクリックすると [Windows Defender セキュリティ センター] が起動します。

  3. [アクション センター] または [Windows Defender セキュリティ センター] で、対応が必要な項目が表示されます。
    • Ÿ赤の項目: 早急な対応が必要です。すぐに、表示されている内容を確認し、指示に従います。(例: マルウェア対策ソフトが最新ではなく、ウイルス感染の危険がある)
    • 黄の項目:早急に対応をする必要は必ずしもありませんが、デバイスが脆弱な状態になる可能性があるため設定することを推奨しています。(例:バックアップを取得して問題時に備える。SmartScreen の設定を有効にして悪意のあるサイトやダウンロードからデバイスを保護するために役立てる。)

    Windows 7、8.1 のアクション センターに対応が必要な項目が表示されている状態

    (Windows 7、8.1 のアクション センターに対応が必要な項目が表示されている状態)

    Windows 10 の Windows Defender セキュリティ センターに対応が必要な項目が表示されている状態

    (Windows 10 の Windows Defender セキュリティ センターに対応が必要な項目が表示されている状態)


【お客様事例】スポーツ観戦の楽しみを大きく拡張させる映像配信サービスをAzure 活用で株式会社EVCが実現【9/20更新】

$
0
0

プロ野球のパシフィック・リーグ加盟 6 球団により設立された合弁企業であるパシフィックリーグマーケティング株式会社の使命は、「プロ野球の新しいファンを増やすこと」。
この使命を果たすために、同社では 2012 年から、PC だけでなく、独自の有料動画配信サービス「パ・リーグTV」を運用してきました。そして 2018 年3 月 30 日のシーズン開幕を前にして、「パ・リーグTV」のシステム、サービスを刷新。さらに、「パ・リーグ.com」という新たな情報プラットフォームとなるアプリケーションも併せてリリースするなど、いつでも、どこでも、プロ野球をより深く楽しむことができる環境を、EVCのコンサルティングのもと、システムを刷新し一気に整えました。

 

 

新機能「マルチアングル」や美しくなった「3 画面同時視聴」などで、野球観戦の楽しみを拡張

パシフィックリーグマーケティング株式会社 (以下、パシフィックリーグマーケティング) が提供している「パ・リーグTV」は、2018 3 月の開幕に合わせて機能を大幅に拡充。1 つのプレーを複数のカメラ映像で確認できる「マルチアングル」機能が新たに追加されているほか、2012 年のサービス開始当初から続く人気機能「3画面同時視聴」の画質が大幅に向上させるなど、大きく進化しています。

 

これらはすべて「パシフィックリーグマーケティングだからこそ実現できるサービス」だと、マーケティング室 室長 CMO 荒井 勇気 氏は話します。

「たとえばマルチアングル機能は、各球場内に設置されている複数のカメラを使っています。これは、6 球団の共同出資企業である当社だからこそ活用できる資産です。仮に “選手のフォームやクセなどを相手球団に研究されやすくなってしまう” と、ファンの方が心配されたとしても、6 球団横並びで提供しているサービスですから、一切の不公平はありません。純粋に選手たちのプレーを楽しんでいただきたいと思います。」

 

そしてもう 1 つ、大きなポイントとなるのが、スマートフォン用のアプリケーション「パ・リーグ.com」のリリースです。

今まで、試合映像は「パ・リーグTV」に、各球団および選手の詳細を追ったテキスト情報は「パ・リーグ インサイト」という Web サイトに分かれて掲載されていました。こうして分散されていた情報を、「パ・リーグ.com」に集約。スマートフォンから、簡単にパ・リーグのすべてを楽しむことができるように整えられたのです。

 

「パ・リーグTV」のこうした変化を支えているのが、株式会社EVC (以下、EVC) が独自に開発し、「パ・リーグTV」のサービス開始当初から採用されている動画管理サービス「Bizlat(機能拡張版)であり 、EVC のコンサルティングの下、映像配信プラットフォームとして活用しているマイクロソフトのパブリック クラウド サービス「Microsoft Azure」です。

Azure には、「Azure Media Services」や「Azure Content Delivery Network (以下、Azure CDN)」など、映像のライブ ストリーミングや VOD (Video On Demand) サービスに適した機能が揃っており、非常に簡単な操作で動画を管理できる Bizlat と組み合わせることで、非常に効率的で利便性の高い映像配信環境を整えることができるようになっています。

 

アマチュア スポーツにも活用しやすい、簡便で効率的な動画配信システムを実現

パシフィックリーグマーケティングが、Bizlat (機能拡張版) Azure の採用に踏み切った理由は、主に以下の 4 つです。

  1. 2020 年に Flash のサービスが終了する前に HTML5 に切り替える
  2. クラウド サービスを冗長化して「止まらない」サービスを実現させる
  3. 長年頭を悩ませてきた CDN のトラブルから脱却する
  4. 「パ・リーグ.com」に必要な、メディア プレイヤー機能までサポートしている

「パ・リーグTV」の前身となる「パ・リーグ ライブTV」の頃からシステム環境を支え続けてきたマーケティング室 テクニカル・アドバイザー 堀内 修一 氏は次のように説明します。

 

「『パ・リーグTV』では、Flash HLS 2 つの規格を使って映像を配信していましたが、2020 年末をもって Flash のサービスが終了するため、HTML5 への移行を急いでいました。さらに、万が一にもサービスが止まらないように、インフラの冗長化を以前から検討していたのです。そうして、新しいクラウド サービスを検討していた私たちに Azure を提案してくれたのが、長年『パ・リーグTV』を一緒に支えてきてくれた EVCさんでした。

Azure Media Services という機能を活用すれば、PC やスマートフォンなど、デバイスごとに必要な形式の動画ファイルが自動で生成されます。さらに動画の高速配信を支える Azure CDN まで用意されていることも大きな魅力でした。

実はこれまで、CDN が原因となるトラブルが頻発していたのですが、複数社のシステムが関わり合っていたこともあり、どうしても原因を特定できず、もどかしい思いをしていました。しかし、CDN までマイクロソフトのサービスで統一されれば、万一のトラブル時にも、問題の特定が容易になるという期待がありました。しかも、EVC さんには Azure 上で Bizlat を安定稼働させてきた多くの実績があります。私たちの求めるクラウド サービスとして、必要十分な条件がそろっていたのです。」

 

さらに、IT統括部 部長 CDO 佐藤 直記 氏は、「Azure は当社のビジョン実現に向けて、非常に大きな価値を持っていた」と強調します。

Azure では、動画のファイル形式を自動変換できるだけでなく、再生プレイヤーまで提供されています。『パ・リーグ.com』にこのプレイヤーを採用することで、『パ・リーグTV』用の映像を、そのままリアルタイムで提供できるようになりました。これは、本当に素晴らしいことだと思います。

当社では、『プロ野球の新しいファンを増やすこと』という使命のほかに、『プロ野球界、スポーツ界の発展を通して、日本の社会全体を明るく元気にしていうこと』というビジョンを掲げています。ですから、私たちの映像配信システムを、日本のスポーツ界全体に役立てて行きたいと願っています。過去にも某女子プロゴルフ大会の中継に活用いただいた事例があるのですが、今後は、さらに手軽に、ほかのスポーツ界……プロ、社会人から青少年スポーツまで、さまざまな大会の中継に活用いただけるようになったと思います。これは本当に価値のあることです。」


2
か月足らずの短期構築で迎えた開幕戦。「配信トラブル 0」を達成!

上述のようにパシフィックリーグマーケティングが求めるすべての要件に適合した Azure ですが、その検討には「慎重を期した」と、荒井 氏は振り返ります。

「大切なことは、目の前の課題を解決することだけではありません。数年前にスマートフォンが急速に普及したように、お客様の視聴環境は今後も刻々と変化していくでしょう。そうした変化に対応できなければ意味がないのです。そのために、EVC さんによる Azure の提案だけではなく、複数の提案を詳細に比較して、検討を重ねました。」

 

そして、「この提案がベストである」という判断の下に Azure の採用が決まったのが、2018 1 月のこと。シーズン開幕までわずか 2 か月しか残っていませんでした。しかし、プロジェクトはスピーディーに進行。「これまで、Azure 上で Bizlat を稼働させてきた経験から、成功を確信していた」という EVC 代表取締役社長 國分 秀樹 氏の言葉通り、期日としていた 3 23 日にサービスのリリースを迎えています。

 

荒井 氏は「今年の開幕戦は、忘れることができない」と笑顔で振り返ります。

「これまで毎年、開幕戦の日は『映像が止まってしまう』といったトラブルへの対応に追われて徹夜するのが常でした。しかし、今年は違いました。こんなに短期間に構築したシステムにも関わらず、トラブルは 0 件。本当にいい思い出になりました。」

 

パ・リーグTV とパ・リーグ.com を大きく成長させるために、機能とサービスを絶え間なく向上

 

パシフィックリーグマーケティングが目指すサービスの形は、まだ完成したわけではありません。マルチアングルの映像配信は、現在 3 球場のみとなっていますが、今年中には 6 球場すべてから配信できるようになる予定であると言います。また、二軍の試合も、今後は積極的に配信していく方針にあると、荒井 氏たちは声を揃えます。

 

最後に荒井 氏は次のように締めくくります。

「今回のシステム更新を経て、『パ・リーグTV およびパ・リーグ.com を、さらに大きなメディアへと成長させる』という目標が、明確に描けるようになりました。過去のシステム環境では、“どうやってこの不具合を解消するか” というリアクティブな対応に追われて、数年先のビジョンを描く余裕がありませんでしたからね。もちろん、今のシステムがベストだとは思っていません。まだまだ改良を続けていきます。プロ野球ファンの皆様のために、プロ野球界のために、そして日本のスポーツ界全体のために、さらに貢献できるサービスへと成長させていきたいと思います。」

 

 

ソリューション概要
===================

お客様プロファイル

パシフィックリーグマーケティング株式会社は、ビジョンは「プロ野球界、スポーツ界の発展を通して、日本の社会全体を明るく元気にしていくこと」。ミッションは「プロ野球の新しいファンを増やすこと」です。これらビジョンとミッションの実現を念頭に、プロ野球含むスポーツが持つ新しい価値を、日本の社会へ提供し続けられるように努めています。
https://www.pacificleague.jp/

 

株式会社EVC
https://www.evc.jp/

「株式会社EVCは、お客様のご要望に合わせたマルチデバイス向け映像配信システムの企画から構築までワンストップでお応えいたします」
2003
年に創業し、映像管理・配信システム「Bizlat」を提供。2013年にMicrosoft Windows Azure」クラウドサービス上で「Bizlat on Azure」を提供開始するなど、映像に特化したSIビジネスを展開。

 

Azure を上手く使いこなしているユーザーに共通する 5 つの習慣

$
0
0

執筆者: Omar Khan (General Manager, Microsoft Azure)

このポストは、2018 9 12 日に投稿された Five habits of highly effective Azure users の翻訳です。

 

Azure でできることは数え切れないほどあります。IT 環境を刷新する、次世代アプリを開発する、人工知能を活用する、ソリューションを無数にデプロイする、などさまざまなことができますが、これらを成功させる人は共通してある基本的な習慣を持っています。

Azure チームでは、お客様の声に耳を傾けることを重視し、何が皆様を成功に導いているのか理解することに努めています。そこで今回は、Azure のメリットを余すところなく活用している人が行っている日常的な習慣をいくつかご紹介します。

実績のあるベスト プラクティスを常に把握しておく

Azure を上手く使いこなしているユーザーは、最適化に終わりはないことを知っています。彼らは行っているのは、常に最新のベスト プラクティスを把握しておくために、Azure Advisor を定期的に確認することです。

Azure Advisor は、Azure リソースの構成と使用状況を分析し、ワークロードの高可用性、セキュリティ、パフォーマンス、コストを最適化するための推奨事項を提案してくれる無料のツールです。よくある推奨事項の例としては、使用率の低い Virtual Machine (VM) を適切にサイジングしたり、シャットダウンすることや、VM のバックアップを構成することなどです。

1

Advisor では、Azure 全体の推奨事項をまとめて把握できます。Azure Security Center Azure Cost Management などのコンパニオン ツールと統合されているため、最適化のためのあらゆる推奨事項を簡単に確認し、対応することができます。Advisor にはどんどん推奨事項が追加され、Azure ではどんどんできることが増えています。なので、Advisor を定期的にチェックし、Azure の最新のベスト プラクティスを常に把握することを習慣にしましょう。

パーソナライズされた Advisor のベスト プラクティスの推奨事項を確認する

Azure Advisor の利用を開始するには、こちらのドキュメントをご覧ください。

外出先でもリソースを管理する

常に接続する環境が整っている今日の世界では、Azure を使いこなすユーザーは、オフィスにいるときだけでなく、いつでもどこにいても Azure リソースを管理できることが重要だと認識しています。そうした彼らは Azure モバイル アプリを使い、外出先でも常に Azure リソースを監視、管理できるようにしています。

2

Azure モバイル アプリを使用すれば、Android iOS のスマートフォンやタブレットから直接アラートや指標を確認したり、一般的な問題を修正、解決したりすることができます。また、[Cloud Shell] ボタンをタップすると、任意のシェル環境 (PowerShell または Bash) を実行して、コマンドラインからすべての Azure サービスにアクセスできます。

Azure モバイル アプリをダウンロードして、外出先でもリソースを管理する

Azure モバイル アプリの使い方は、こちらのデモ動画 (英語) をご覧ください。

問題の発生時やメンテナンス中に情報を手に入れる

Azure を使いこなしているユーザーは、Azure のメンテナンス情報やサービス関連の問題の情報を得ることが重要だとよくわかっています。そのために使っているのが、Azure Service Health です。Azure Service Health は計画的メンテナンスやサービスの変更、サービスの移行といった正常性に関するアドバイスまで、パーソナライズされたあらゆるアラートやガイダンスを提供してくれる無料のサービスです。Service Health の通知を確認することでリソースへの影響を把握し、問題が解決されると最新情報を受け取ることができます。

3

Azure を使いこなしているユーザーは、Service Health を構成し、関連度の高いサブスクリプション、サービス、リージョンのアラートを設定して、サービスの問題をチームに通知しています。たとえば、以下のようなアラートを作成できます。

  • 開発/テスト用サブスクリプションのリソースに影響する場合に、開発チームにメールを送信する
  • 運用環境のリソースに影響する場合に、Webhook を利用して ServiceNow PagerDuty を更新し、勤務中の運用チームにアラートを送信する
  • 特定のリージョンのリソースに影響する場合に、地域の IT 運用マネージャーに SMS を送信する

Azure Service Health のアラートを設定して、問題の発生時やメンテナンス中に情報を入手する

詳細については、Service Health のアラートの作成に関するドキュメントをご覧ください。

最新の発表を把握する

クラウドまわりの環境は急速に変化します。Azure を使いこなしているユーザーは、最新のリリース情報や発表事項、イノベーションといったあらゆる最新情報を把握することが重要であることを理解しています。

roadmap-image

こちら Azure 最新情報ページでは、料金の変更や SDK の更新といったさまざまな Azure 関連の最新情報を確認できます。Azure を使いこなしているユーザーは、このページをブックマークしているほか、関連性の高い製品や機能の RSS フィードをサブスクライブし、発表事項や変更があるたびに通知を受け取っています。

Azure の更新情報をサブスクライブする

お客様のリージョンでのリリース日については、リージョン別の製品の提供情報をご確認ください。

他の Azure ユーザーと交流して情報共有・学習する

Azure を使いこなしているユーザーの習慣はこれがすべてではなく、他にもたくさんありますが、中でもこの 5 つ目の習慣がとても重要です。それは、常に他の Azure ユーザーと交流していることです。その中で自分の良い習慣があれば共有し、相手の良い習慣を見つけたら学ぶことができます。

他の Azure ユーザーと交流する方法は、共有したい習慣や学習したい習慣があればあるほど増えていきます。その一部を以下に紹介します。

  • 社内にベスト プラクティスの共有コミュニティを作成する、または参加する
  • 業界向けカンファレンスや業界団体に参加する
  • 地域の Meetup に参加する
  • Twitter で他の Azure ユーザーとつながる

Microsoft Ignite に直接またはオンラインでご参加ください

最後に、Azure の効果的な習慣を共有、学習する方法をもう 1 つご紹介します。それは、9 24 28 日にフロリダ州オーランドで開催される Microsoft Ignite (英語) に参加することです。この機会に、新しいスキルを習得し、他のエキスパートに出会い、最新のテクノロジに触れてみませんか?

展示フロアに出展されている Five Habits of Highly Effective Azure Users ブースを探してください。このブースでは、今回ご紹介したような習慣をすぐに実践し、Azure をもっと使いこなせるようになります。また、興味のある Ignite セッション (英語) を早めに見つけて、直接参加するか、ライブストリーミングやオンデマンドでお楽しみください。

Azure をどのように使用しているかにかかわらず、これらの 5 つの習慣は Azure を上手く使いこなすためのヒントとなります。ぜひお試しください。

 

Windows 10 Version 1803 における新元号の仮定義の削除について

$
0
0

* English follows after Japanese.

皆さまこんにちは。Windows プラットフォーム サポートの鈴木です。

現在最新の Windows 10 Version 1803 (Windows 10 April 2018 Update) は、レジストリ上に新元号の仮定義を含んだ状態で出荷されていることを本 Blog 4 月の記事でもお伝えしてまいりました。

その後、個別に本レジストリ値の追加や削除を実施されたいというフィードバックを頂戴し、手順や .reg ファイルのご紹介を行ってまいりました。

アプリケーションの互換性の向上と、さらに柔軟に検証等をご実施いただくことを目的として、日本時間 9 月 21 日よりご提供を開始いたします Windows 10 Version 1803 向けの更新プログラム KB4458469 により下記スクリーン ショットにございます仮定義の削除が行われます。検証や開発等に必要な場合には、個別に追加をご検討くださいますようお願いいたします。

なお、今秋よりご提供を開始いたします予定の Windows 10 Version 1809 では、この仮定義は含まれない状態で出荷される見込みです。
新元号の公表後、弊社よりご提供いたします更新プログラム等により新元号の定義となるレジストリ値を追加いたしますため、一般のユーザー様において手動で値を追加いただく必要は通常ございません。

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsCalendarsJapaneseEras]

手順等の詳細は、こちらの記事をご参照ください。

---

To make it easier for customers and partners to prepare for the Japan Era change, customers will now be able to control when they add the placeholder registry entry to their systems – choosing the timing that meets their needs.

In the spring release of Windows 10, a default registry value was available as a mechanism for testing. As a next step to help provide an opt-in option, the default value is removed in the September update, and customers will be able to opt-in at their convenience.

The Windows registry key value that defines the era names for the Japanese calendar support is in

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsCalendarsJapaneseEras]

This registry value that defines the era behavior is editable by an administrator using regedit or other tools.

With the September update, there are 4 string values for the eras. You can add a new value in the format "yyyy mm dd" followed by a temporary name information with [two Kanji character name]_[first Kanji character]_[Latin full name]_[Latin short].

For example, for Heisei it is "1989 01 08"="平成_平_Heisei_H".” For further details, please see Shawn’s blog August.

Announcing Windows Admin Center GA Update, version 1809

New guides available for configuring and troubleshooting NDES and SCEP

$
0
0

With Microsoft Intune, you can give users access to corporate resources through VPN, Wi-Fi, or email profiles. If you use certificates to authenticate those connections, your end users won't need to enter user names and passwords when they authenticate. You can use Intune to assign these certificates to the devices you manage via certificate profiles, you just need to complete a few steps to get this setup in your environment first.

Our official documentation on Intune certificate profiles can be found here, and to make the process even easier we’ve created two new guides that will not only walk you through the entire process but help you troubleshoot it as well.

Troubleshooting NDES configuration for use with Microsoft Intune certificate profiles : This guide walks you through setting up NDES for SCEP certificate deployment using a single certificate template. It provides best practices to help you avoid common problems as well as guidance on troubleshooting issues you may run into along the way.

Troubleshooting SCEP certificate profile deployment in Microsoft Intune : Once NDES is configured, this guide walks you through the Intune certificate profile creation and deployment process from start to finish. Like the first, this guide also offers best practices and troubleshooting tips to address almost any issue that might be encountered.

Whether you’re only in the planning stages, you’ve already setup it up and are having an issue, or maybe you just want to understand how the whole process works, I highly encourage you to give these a try. And as always, if you have any feedback on how we can make these better, just let us know in the comment section below.

Por qué Microsoft cree que el futuro del agua depende del futuro de la innovación tecnológica

$
0
0

Por: Paul Fleming, gerente de programa del agua en Microsoft .

Foto: Microsoft

El agua potable es crítica para toda la vida, pero por desgracia no es sencillo que esté disponible para todas las personas del mundo. De acuerdo con la Organización Mundial de la Salud (OMS), casi mil millones de personas alrededor del mundo carecen del servicio básico de agua potable, y por lo menos dos mil millones utilizan una fuente de agua para beber que está contaminada con heces.

Esta situación se volverá más aguda conforme las poblaciones crezcan y el planeta continúe calentándose. De hecho, la OMS sugiere que para 2025 casi la mitad de la población del mundo pasará momentos difíciles para acceder a agua potable limpia. En áreas que ya son golpeadas por sequías o falta de instalaciones de sanitación de agua, las cosas serán más acuciantes ya que el cambio climático exacerba la tensión referente a los recursos acuíferos. Más allá del impacto humanitario inmediato de la carencia de agua, El Panel Intergubernamental sobre el Cambio Climático (IPCC, por sus siglas en inglés) notó que la disponibilidad y calidad del agua podrían convertirse en un punto primario de presión para la sociedad debido al cambio climático. Debido a esto, no es de sorprender que el acceso al agua es parte por lo general de los primeros cinco riesgos globales identificados cada años por el Foro Económico Mundial.

Claro está que esta visión del futuro presume que continuemos con las cosas como van. Pero el agua está en el medio de una transformación digital que promete un futuro mejor, y en ningún lugar esto es más aparente que en la Semana Mundial del Agua. Tuve el placer de asistir a este evento anual a nombre de Microsoft, para entregar nuestra visión de la promesa de la tecnología para enfrentar los problemas de calidad y cantidad del agua. Me acompañaron cientos de líderes de gobierno, negocios y de la sociedad civil, quienes también compartieron sus razones para sentirse optimistas acerca del futuro del agua.

Además de charlar, realizamos nuevos compromisos. Microsoft está orgulloso de unirse al UN CEO Water Mandate, un esfuerzo colaborativo de corporaciones y ONG diseñado para asistir a las compañías en el desarrollo, implementación y cierre de prácticas y políticas corporativas de protección del agua.

De manera diligente hemos perseguido la protección del agua a través de nuestras operaciones globales, y unos de nuestros proyectos más ambicioso fue nuestro nuevo campus en Silicon Valley. En 2017, anunciamos que ese campus sería el primero de los campus tecnológicos con agua potable cercana a cero en el mundo. El 100 por ciento del agua que no es para beber en los edificios vendrá del agua de lluvia o será agua reciclada en sitio, más allá de los bebederos y lavabos ni una sola gota de agua para más de 2 mil empleados y 15 acres de terreno vendrá de fuentes municipales. Además, diseñamos nuestro campus con los humedales cercanos en mente y pensamos en dar pasos para mejorar nuestro ambiente local de agua.

Como una empresa global de tecnología, sabemos que podemos tener un impacto aún mayor al impulsar a otros más allá de nuestras cuatro paredes. Un ejemplo de cómo hemos aplicado tecnología al espacio acuífero es Water Risk Monetizer, una poderosa herramienta construida en asociación con Ecolab y Trucost. La herramienta muestra los costos de utilizar agua en cada paso de la operación del negocio, desde manufactura a entrega, y puede dar a las compañías una idea de cómo esos costos incrementarán si el agua se vuelve un recurso limitado. Esto les ayuda a gestionar el agua de manera más efectiva y tiene el potencial de reducir el consumo de agua en muchas industrias diferentes.

También trabajamos para aplicar IA en el problema del agua. A través de nuestro programa AI for Earth, un programa a cinco años y 50 millones de dólares, Microsoft pone herramientas de IA en las manos de individuos y organizaciones que trabajan al frente de los retos ambientes, en los que se incluye el agua. A la fecha, 20 por ciento de nuestros 137 beneficiarios de AI for Earth trabajan en proyectos relacionados con el agua. Nuestros beneficiarios trabajan en la amplitud de los problemas, algunos utilizan IA para mapear ecosistemas costeros para crear una visión más precisa de la resiliencia costal e informar a la conservación en tiempo real y a los esfuerzos de respuesta ante desastre, mientras otros trabajan en el impacto del agua de tormentas o en sitios Superfund en recursos locales acuíferos, y otros trabajan para predecir, rastrear e incluso prevenir inundaciones de mejor manera. Estamos emocionados por el uso de IA para informar y enfrentar la escasez de agua. WetDATA crea un centro de datos e innovación del agua que recolecta y disemina información sobre la escasez y riesgos del agua para generar decisiones informadas e impulsadas por datos referentes a prácticas del agua. También invitan a los investigadores a descubrir e innovar maneras de conservar el agua con la esperanza de impulsar la sustentabilidad del agua en diferentes industrias.

Esperamos expandir nuestra labor, tanto dentro de nuestras operaciones como a través de AI for Earth, en 2019. Después de una semana en SIWI, me siento aún más motivado acerca de la transformación digital del agua. Creemos que el vaso ya está medio lleno de soluciones para el agua y tenemos confianza que aquellos que trabajan en los apremiantes retos actuales del agua podrán utilizar IA y aprendizaje de máquina para llenar lo que falta del vaso.

Tip o’ the Week 446 – What’s brown and sticky?

$
0
0

clip_image002Q: What *is* brown and sticky?

A: A stick…

Q: What’s yellow and sticky?
A: One of the most successful product design failures in history.

Yes, the Post-It note (which has gone on to spawn many imitators, sometimes known as just “stickies” or “sticky notes”) was essentially invented by accident almost 50 years ago, by a scientist at 3M who was trying to make a super-strong glue but instead came up with one that didn’t really stick very well but was at least reusable and didn’t leave any residue behind.

Of course, the real story is a lot less simple – the product really took more than a decade to perfect, and convincing people that it was a viable business took several attempts, but eventually it went on to be one of the most-bought office supplies in history.

The digital equivalent has had decades of evolution too, from a simple note app from the company that brought you Tiny Elvis to the Sticky Notes application that shipped with Windows 7, and innumerable similar apps in the various mobile and desktop app stores.

Starting with the Windows Insider “Skip Ahead” community (but soon to roll out wider), the Microsoft Sticky Notes app has been heavily revised, consolidating the multiple windows that would typically be left on your desktop with a single list, and then pop-out notes that feature multiple colours, support for ink, cross-device syncing and more.

clip_image004

Keep an eye out for the Sticky Notes 3.0 arrival on your PC. As MJF says, with the same team now responsible for OneNote, To-Do/Wunderlist, and Sticky Notes, it’ll be interesting to see how deeply integrated they get.


Tip o’ the Week 447 – October is usually boring

$
0
0

clip_image002October is – in the northern hemisphere at least – a generally pretty unexciting month. The early blaze of autumnal foliage settles into a muted rusty colour before falling away; everyone’s used up their vacation allowance so the roads are clogged with traffic just as the weather starts to worsen and the mornings and evenings get dark. Kids are bored, and folkin’ folkster Roy Harper tells us we do nothing but coagulate.

If you get excited about updates to your computer’s operating system, however, October is going to be a bit more interesting, as the next release of Windows – hitherto known as Redstone 5 – will be with us. Read more from MJF, and see a good summary of what’s coming, here.

clip_image004There are lots of user interface changes, tweaks and improvements. If you like “dark mode” in apps, it’s getting more pervasive. Windows Weekly talks about the momentum behind Windows 10 if you have a spare hour-and-a-half to listen.

There’s a great new cloud-oriented clipboard experience that can be enabled (it’s off by default, so no need to get spooked), and there will be an improved screen snipping capability – both examples of the kinds of supposedly small improvements which can make a big difference to anyone with more than one PC. And both of these are features that have been proven using “Garage” projects in the past.

The Your Phone app discussed in ToW 442 will be available to all, too. The much-anticipated “Sets” feature isn’t coming this time, though.

So keep ‘em peeled over the next few weeks, for the appearance of the October update. Maybe more news will come at Ignite.

Tip o’ the Week 448 – Sometimes, size does matter

$
0
0

clip_image002Once upon a time, users had to deal with email quotas that meant they often had to shuffle messages around to stay within their allowed size limit, or else get limited functionality. The Outlook Thread Compressor tool* was written to help reduce the size of a user’s mailbox, and for a while, had thousands of users inside Microsoft. It inspired the Outlook team to write the “Conversation Clean Up” feature, which works in a slightly different way but does similar things.

Nowadays, with 50 or 100GB mailbox quotas being the norm, most Outlook users don’t need to worry about reducing the size of their mailbox other than to keep it from being too hard to use – a tidy mind and all that. But if you have massive mailboxes, the storage and organisation of all your content may put an unnecessary strain on your PC, so it’s worth taking a few steps to check and clean up if you can.

clip_image004

In Outlook 2016, go to the File menu and lclip_image006ook for Tools > Mailbox Cleanup for a bunch of tools that can help, including being able to view your current mailbox size…

… and marvel at a dialog box that hasn’t changed since the earliest days of Outlook, evidenced by the fact it measures size in KB rather than MB or even GB…

Limits to be aware of

There are some recommended limits that have been given to Exchange/Outlook users over the years – not just about the overall size of the mailbox, but the number of items in certain folders and even the number of folders themselves. See a 2005 post on the Exchange blog here, for example, which advises keeping the item count low on certain folders (< 1,000 items in the Inbox, Calendar and Contacts folder was the recommendation then - also on the Exchange Blog, check out some of the examples in this post for early pioneers of huge mailboxes).

In more recent versions of Outlook, though, there are some guidelines to avoid performance problems:

  • Keep the number of items per folder below 100,000
  • Keep the total number of folders to less than 500

Now, you’re probably not going to have too many folders with more than 100k items though it might be worth checking Sent Items and Deleted Items. Unfortunately, the mailbox size tool above shows you the total size of each folder, rather than the number of items – and if you want to know how many folder you have, you’d need to manually count them in the scrolling list box: not an easy task if you have lots of them.

It’s quite possible if you’ve had your mailbox for a while, and you’re a very diligent filer (especially if you use a methodology like GTD or tools like ClearContext), you could inadvertently have more than 500 folders – and if you use AutoArchive, then you could find a lot of them are empty, since the archive process moves the items out into another location but leaves the folder structure behind.

FolderCount to the rescue

Here’s an interesting little hobby project – a macro-enabled Excel sheet which cycles through all the folders in your mailbox, tells you how many items are in each one and offers to get rid of the empty ones for you.

It can be run in:

  • Read Only mode - it’ll just show you what you have, and leave it up to you to clean the mess
  • Active mode – for each identified empty folder, you’ll be prompted if you’d like to keep or delete it
  • Nuclear mode – just assumes you want to delete the empties, so doesn’t prompt.

clip_image008

Use with caution; though anything that is successfully “deleted” will be moved to Deleted Items first, therefore you’ll need to run it again to actually do the damage (or just empty your Deleted Items… a thought that fills some people with dread).

To run it, click on the link above, save the file locally, open it up in Excel and you’ll need to clip_image010enable the Macros to run – probably by first enabling editing, and then allowing macros by “Enable Content”.

Once you’ve done that, click on the appropriate button to let it run. I’d suggest starting with the top one until you feel brave…

*The Thread Compressor tool was made available externally after a time, but the domain disappeared… the actual Outlook Addin is again available here, but you’re a bit on your own as far as installing and using it is concerned…

Windows Admin Center SDK is now generally available

$
0
0

We’re excited to announce the GA release of the Windows Admin Center SDK!  Windows Admin Center has been designed with extensibility in mind from the beginning, and with our SDK, you can integrate your own functionality into Windows Admin Center.

Extend Windows Admin Center to make it your own. 

Build your own tools that integrate into Windows Admin Center’s existing server and cluster management views.  Or, create your own solution that contains your own suite of tools.  Tackle even more advanced scenarios by building a gateway plugin that is installed and works alongside your custom tools.

  • Publish your extension privately or publicly: With Windows Admin Center, distribute your extension privately inside your organization, or extend your reach by making your extension widely available within the Microsoft-supported extension feed.
  • Leverage Windows Admin Center’s existing platform features for security and identity management in your extensions: Azure Activity Directory (Azure AD) & multi-factor authentication, Role-Based Access Control, and more.

Take advantage of rich development resources.

Our SDK documentation includes step-by-step instructions to help you prepare your development environment, and start creating your own extension.  Sample code is embedded throughout our guides for building a tool, solution, and gateway plugin.  A full extension example is available with numerous control examples.  A CLI is available to jump-start your project in only a few steps.  We’ve also provided an easy-to-use PowerPoint design toolkit to help you design and envision your extension before coding, using Windows Admin Center page templates and standard controls.

Develop with the web technologies you know and love. 

Windows Admin Center is built with Angular and TypeScript, so you can build extensions with all the modern web technologies you already know: HTML5, CSS, jQuery, and NPM.  Leverage our CLI and all the rich, powerful UI controls that are already built into the platform to build your extension quickly and easily.

Join the growing Windows Admin Center ecosystem.

The Windows Admin Center ecosystem continues to grow:  DataON is releasing an all-new extension for HCI management.  Fujitsu’s preview extension is now generally available.  Squared Up provides unique monitoring capabilities based on SCOM.  Pure Storage is releasing an extension for FlashArray management, and QCT’s extension visualizes hardware info and events.  More partners are developing extensions and will be showcasing their progress at Ignite: Cisco, HPE, Lenovo, NEC, and Riverbed.

Closing the Gender Gap with Women-in-Cloud

$
0
0

Gretchen O'Hara, Vice President, Go-To-Market Strategy, One Commercial Partner

Last week, I had the honor to speak at the Annual Ideagen Empowering Women & Girls 2030 Summit, hosted at the United Nations. The theme of the day was Closing the Gender Gap, based on the UN’s 2030 Agenda for Women & Girls. I talked about some of the unique challenges girls and women face, particularly at a time when industries are rapidly transforming to cloud. As a 20-year Microsoft veteran, this is a real passion of mine. But now that my daughter has embarked on her own STEM career, I have a greater sense of urgency around the issue.

Gretchen O’Hara & Jackie O’Hara

Technology is changing almost every aspect of our lives at an incredible speed. Innovation has led to advancements in human productivity that impact nearly everyone on the planet. The ability to connect to people and information instantly is so commonplace that many of us now take it for granted. And AI is already taking us to even greater heights. Much of this progress is due to the digital transformations that we, our partners, and our customers are making every day, all centered on cloud computing. But with the power to transform society also comes real responsibility. In the era of AI, we need to ensure our systems are safe and reliable, and that they reflect the diversity of the world in which we live. That means working even harder to close the gender gap, in which we still have a long way to go.

Let’s take a look at the stats:

  • Today, 57% of undergrad degrees are earned by women, yet women earn only 18% of all computer science degrees
  • 40% of all new businesses are women-owned, but only 5% of tech startups are owned by women
  • 20% of C-Suite leaders are women, but fewer than 3% are women of color
  • Less than 2% of women tech entrepreneurs access the cloud opportunity in tech, and only 1% of women tech entrepreneurs are awarded corporate contracts

Reaching gender parity in the tech industry starts with empowering our girls! In order to do that, we need to teach our daughters modern workforce skills and encourage them in STEM-based curriculum. At Microsoft, we’re focused on both building the talent pipeline through programs like DigiGirlz and Girls Who Code, as well as making Microsoft a great place for women to work and grow their careers.

We believe we cannot be competitive without women, because we can’t expect innovation or disruption in a market if we don’t have diverse perspectives driving our business strategy. This is one of Microsoft’s cultural tenets, and one that I believe in deeply. It stems from a core belief that every voice counts, and that diverse teams and ideas create stronger businesses. To build this diversity, it’s critical to have a diverse partner ecosystem and one that actively supports women entrepreneurs. This is an area I’m working to support, and one that Microsoft has been investing in through an organization I helped found, called Women-in-Cloud.

We believe we can bring $1 billion to our Women-in-Cloud through our accelerator program but the larger market opportunity is around $1.7 trillion. The objective of Women-in-Cloud is to provide access, acceleration, and action to help women entrepreneurs get after that opportunity! Women-in-Cloud began as a partnership between Microsoft and HPE to promote women entrepreneurship, but with support from organizations like IdeaGen and the United Nations, it’s growing to become a truly global movement that transcends organizational, cultural, and physical boundaries.

Jill Angelo, Jackie O’Hara, Gretchen O’Hara, Chaitra Vedullapalli

We have already made incredible progress in building a thriving network of women entrepreneurs and connecting them with our distribution channels, but there is so much more to do. We’re going to take what we’ve learned in Women-in-Cloud here in the US and scale it globally. Our goal is to mobilize public and private partnerships that encourage women entrepreneurship and support new communities of Women-in-Cloud around the world!

Ask yourself how we can make the Microsoft ecosystem more diverse and bridge the gender divide. Last year, I made a personal goal to mentor 100 women, and this year I’ve asked the US OCP leadership team to help me achieve that goal. I personally pledge to create access to cloud opportunities through my work at Microsoft with Women-in-Cloud and to taking this cause to broader groups who can extend and build on Microsoft’s & HPE’s work to help us make our vision for a global Women-in-Cloud movement a reality!

To learn more about how to connect with Women-in-Cloud and join the conversation, visit our website or connect with me on Twitter @gretchenohara and LinkedIn.

Intune: Upgrade Windows Pro to Enterprise AUTOMATICALLY!

$
0
0

Do you have a bunch of Windows 10 Pro devices and would like upgrade them to Windows 10 Enterprise? Microsoft 365 (specifically Microsoft Intune) can help you!

Note: For more information please reference Deploy Windows 10 Enterprise licenses. The following is an example on how to do this with Intune (assuming appropriate licenses have been purchased and assigned).

First, create a Microsoft Intune configuration policy. In the Azure Portal navigate to Microsoft Intune -> Device Configuration -> Profiles. Click Create Profile

Next, create a new Windows 10 and later profile, with a type of Edition Upgrade. Click Settings

 

 


Click Edition Upgrade

In the field Edition to upgrade to select Windows 10 Enterprise. In the Product Key field type in the product key (i.e. MAK). Then click OK


Click OK to save the Edition Upgrade. Click OK again then click Create


Next, click Assignments in the Assign to menu select All Users & Devices then click Save

Note: Your assignments may be different per your organization's requirements. This is only an example. You could also assign only the machines in question, or use a dynamic security group that queries on the device serial number,etc.


On a virtual machine with Windows 10 1803, install Windows 10 Pro:

Note: I'm showing you this, to demonstrate the upgrade. Ideally you would sign in as an Organizational Account in the OOBE when installing Windows. However, if I did that here, you wouldn't see that I'm coming from Pro 🙂

Notice it's Windows 10 Pro:

 

Join the machine to Azure AD to receive the Intune policy:

Reboot the machine and sign in with the user's Azure AD credentials. Once signed in, open System Information and notice that Windows has been upgraded to Enterprise!

This can be verified in the Intune portal under Device Status for the configuration policy that was previously created:

I hope you found this helpful. Questions? Please let me know in the comments below! Enjoy!

Viewing all 34890 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>