我制作了一个PowerShell模块,该模块存储在网络共享中。在模块中,我具有连接到Exchange Online的功能。
当我从网络共享导入模块并使用该功能连接到Exchange Online时,模块已加载(至少根据详细输出):
VERBOSE: Loading module from path 'C:\Users\user\AppData\Local\Temp\tmp_22gpyzrn.tf1\tmp_22gpyzrn.tf1.psd1'.
VERBOSE: Loading 'FormatsToProcess' from path
'C:\Users\user\AppData\Local\Temp\tmp_22gpyzrn.tf1\tmp_22gpyzrn.tf1.format.ps1xml'.
VERBOSE: Loading module from path 'C:\Users\user\AppData\Local\Temp\tmp_22gpyzrn.tf1\tmp_22gpyzrn.tf1.psm1'.
详细输出:https://pastebin.com/5tZhVPyj
但是,没有来自Exchange Online的cmdlet,例如获取邮箱可用。当我运行Get-Module时,我看不到模块已加载。如果我转到Temp文件夹,则可以看到该模块实际上已下载。我什至可以使用
加载模块Import-Module 'C:\Users\user\AppData\Local\Temp\tmp_22gpyzrn.tf1'
如果我将函数复制到PowerShell控制台并执行代码并运行该函数,则将从Exchange Online正确加载该模块。我可以在使用Get-Module时看到它列出的信息,并且可以使用诸如Get-Mailbox之类的cmdlet。
详细输出:https://pastebin.com/JNjyYguQ
同一模块中的其他功能可以正常工作,但是当我连接到Exchange Online(以及安全性和合规性)时,发生了一些奇怪的事情。
我是否忽略了安全设置或类似设置?