Working with the new Exchange cmdlets – Webinar Q&A’s
Did you make it to our jam-packed webinar on ‘Working with the new Exchange cmdlets’ last week? If not, it’s well worth a watch – you can catch up on-demand here.
If you were watching live, you’ll know that when we describe it as ‘jam-packed’ we really mean it. After planning to have a solid 15 minutes for questions and answers, we ran right up to the time limit – carried away with demos and practical guidance!
This means that, while some questions were addressed during the session, many questions went unanswered, so Vasil and Ingo promised to run through the outstanding questions and publish their answers in a follow-up blog.
This is that blog, so let’s jump in:
Questions from the Exchange Cmdlets Webinar
Q: Is PS 6 fully compatible with PS 5? What is new with PS 7?
VM: This question is a little outside of the scope of our webinar, and you can find detailed answers over at the PowerShell’s team blog: https://devblogs.microsoft.com/powershell/the-next-release-of-powershell-powershell-7/
Q: Are those cmdlets going to be deployed online? So we could use it through the Microsoft Exchange Online PowerShell Module? or remote PowerShell? At the moment all you get when using the Microsoft Exchange Online PowerShell Module is: “Experience the fast and reliable Exchange PowerShell V2 Cmdlets via new PowerShellGallery module. Go to https://aka.ms/exops-docs“
VM: I’m not sure I understand the question, the new, REST-based cmdlets are released as part of the “V2” module, so all you need to do is install it. Microsoft plans to add additional cmdlets to it, and at the same time ensure that the “old” style cmdlets can also be loaded, so you don’t need to use two ways of connecting to the service.
IG: When it comes to “Azure Cloud Shell” as described in this article, the answer is no. The long term plan is to deploy this module there as well, but as long as PS core is not yet supported, the module won’t be available.
Q: When you are running a script which produces massive output (several thousands of recipients for example) how can you see if the script is still running or not? With old scripts screen is just stalled and maybe ready after an hour or 2. Also, any tricks to get progression with % detail? With old scripts, you can see a bar only.
VM: You can certainly add some sort of a progress indicator, such as using the Write-Progress cmdlet, or creating your own function. The REST-based cmdlets have this built-in, and you can toggle the progress indicator via the –ShowProgress parameter of Connect-ExchangeOnline. In scripts, where % is used, you might want to use Write-Output or Write-Verbose to show which object you’re processing.
Q: What to use: Rest based PowerShell cmdlet or Graph API query via PowerShell? Limitations? Best practices?
VM: The answer to this question depends on the task at hand, but in general you can think of the REST-based PowerShell cmdlets as a “wrapper” for the corresponding Graph API (well, “Admin” API) queries. Since Microsoft hasn’t officially released any Exchange-related endpoints for the Graph yet, PowerShell is currently the only supported method. But as we showcased at the end of the session, you can actually query the corresponding APIs in a manner very similar to the one used for the Graph APIs. Check the slide deck for additional details.
Q: Where can you find an organized directory of various Microsoft and Office 365 cmdlets?
VM: The documentation available on docs.microsoft.com is your best bet here, for example here’s the reference for Exchange cmdlets: https://docs.microsoft.com/en-us/powershell/module/exchange/?view=exchange-ps
Q: Is there MFA integration?
VM: Yes, it works.
Q: What about the Robust Cloud Command module?
VM: What about it? 😊 It’s not an “official” Microsoft release, but it’s still a viable solution and it’s currently being maintained over at GitHub, so you can contribute to its development. You can find the corresponding links in the slide deck. Besides this, the new Cmdlets are not part of this module. Thus, you won’t be able to leverage the new capabilities.
Q: Are there any Microsoft K.B. Articles about scripting holidays for Auto-Attendants at Org-Level?
VM: Probably. These should be easily searchable in Microsoft’s documentation.
Q: Moving forward, how is Exchange Online Remote PowerShell management affected once deprecating Basic Authentication for multiple protocols, prior to its removal on October 13, 2020. Since it impacts Exchange ActiveSync (EAS), IMAP, POP, and Remote PowerShell, what’s the best practice for remote PowerShell management?
VM: So, we tried to briefly cover this on the webinar, the TL; DR answer is (and always will be) – talk to Microsoft. Neither I nor Ingo are in any position to give authoritative opinion on this topic, and while Microsoft does share some “internal” information occasionally, that’s usually covered by NDA and we cannot discuss it publicly. So, stick to the information that’s publicly available and prepare yourself accordingly.
I want to again stress out that Microsoft is very well aware of the currently existing gaps in this area, and you can expect some news around those in the coming weeks and months. Both the “V2” module and the “MFA”-enabled module support Modern authentication, although the “old” cmdlets are still accessed via “proxying” the authentication through the basic auth WinRM endpoint, which can cause problems. How exactly Microsoft will address this, we cannot tell. I would expect that the end goal is to have everything moved to the Graph API, but that’s not an easy task.
Q: Any methods for using get-exo commands with set?
VM: Currently none, as the team has focused on the cmdlets that would benefit most from the new architecture, both in terms of speed and reliability. Ingo’s examples covered some of the challenges that still exist in running Set- cmdlets against large sets of users, just follow the tips. At some point, I do expect few Set- cmdlets to appear, and eventually everything to be moved to the Graph.
Q: Can we run the PowerShell from Visual Studio code?
VM: Yes, if that’s your editor of choice.
Q: Appreciate that the session is focused on Exchange-online, but will other offerings such as SharePoint/OneDrive be available with the PS REST API session?
VM: I believe I covered this question on the webinar, but here goes – SPO/ODFB already have robust set of Graph endpoints which cover most scenarios. Calling those via PowerShell is trivial, and if you need examples, you can take a look at the “proof of concept” script I posted a while back to tackle the question of reporting on externally shared files in ODFB: https://practical365.com/clients/onedrive/reporting-on-onedrive-for-business-shared-files/
Q: Does access to partners fall under delegated access?
VM: I guess we can debate semantics here 😊, but yes, in my book it does.
Q: Does SSO work with on-premise joined machines in a domain that’s being synced with ADConnect?
VM: Depends on what exactly you mean here, but you can certainly configure the AAD Connect Seamless SSO feature to take advantage of the streamlined authentication experience.
Hopefully, you have found these answers helpful. If you’d like to see more of Vasil’s expert PowerShell knowledge in practice – his Scripting Handbook for Office 365 Permissions is available to download free here.
If you have any further questions about the new Exchange cmdlets, or PowerShell, in general, why not head over to our sister site www.practical365.com/powershell/ for deep-dives, tips, and scripts!