Apr 14 2023 10:18 AM
Greetings,
We have a script that connects to Exchange Online. The first time we run the script, it kicks back this error: "ActiveX control '8856f961-340a-11d0-a96b-00c04fd705a2' cannot be instantiated because the current thread is not in a single-threaded apartment." However, if we run the script a 2nd time, it works fine. What could be causing this? And how do I fix the script so that we don't have to keep running it twice?
Thanks,
Cole Riese
Apr 24 2023 05:13 AM
Apr 24 2023 07:01 AM - edited Apr 24 2023 07:12 AM
Could you run this in an admin command prompt?
powershell.exe -noprofile
update-module ExchangeOnlineManagement
connect-Exchangeonline
Apr 24 2023 08:18 AM
Apr 24 2023 08:30 AM
Apr 24 2023 08:39 AM
Apr 24 2023 08:42 AM
Apr 24 2023 08:45 AM
Apr 24 2023 10:10 AM
Apr 24 2023 10:40 AM
Apr 24 2023 12:09 PM
Solution@ColeRiese Does your script utilize any forms? (e.g. $form1 = New-Object System.Windows.Forms.Form)
I just got done going through this and was finally able to work around it. It is my understanding that there is a bug in newer versions of the Exchange Online module. If you are using any sort of forms in your script and those forms are called before you connect to Exchange Online it generates the error. If you connect to Exchange Online first, then the form is called, there is no issue.
I had to tweak our script to connect to Exchange Online first, then add a prefix to our on-prem exchange session to prevent any conflicts. Here are a couple links I found during my search that helped me track down the issue.
https://twitter.com/DanielSjoegren/status/1406954671248396292
https://www.sapien.com/forums/viewtopic.php?t=15297
https://www.sapien.com/forums/viewtopic.php?t=16213&sid=b1fcd3f71b3ada945eeb75f4dbc4490f&start=10
Hope this helps!
Dec 13 2023 03:23 PM
@Pete_Martin I am also getting this error but I am not running a script, I simply did a connect-exchangeonline with my UPN and it gave me this error. I am in an admin powershell window that is new, I have only imported the module and updated get-help.
Dec 29 2023 12:15 PM
Apr 24 2023 12:09 PM
Solution@ColeRiese Does your script utilize any forms? (e.g. $form1 = New-Object System.Windows.Forms.Form)
I just got done going through this and was finally able to work around it. It is my understanding that there is a bug in newer versions of the Exchange Online module. If you are using any sort of forms in your script and those forms are called before you connect to Exchange Online it generates the error. If you connect to Exchange Online first, then the form is called, there is no issue.
I had to tweak our script to connect to Exchange Online first, then add a prefix to our on-prem exchange session to prevent any conflicts. Here are a couple links I found during my search that helped me track down the issue.
https://twitter.com/DanielSjoegren/status/1406954671248396292
https://www.sapien.com/forums/viewtopic.php?t=15297
https://www.sapien.com/forums/viewtopic.php?t=16213&sid=b1fcd3f71b3ada945eeb75f4dbc4490f&start=10
Hope this helps!