我构建了一个简单的GUI powershell脚本,它可以在许多不同的计算机上完全按照我想要的方式运行(在安装了所有正确的模块之后,我还尝试使用-scope allusers安装它们)。
当我使用ps2 exe编译脚本时,它会抛出错误,好像我没有安装一些可以在计算机上使用的模块。
我还确保在脚本的顶部导入模块。
我认为这与作用域有关,但我不确定如何配置模块/exe才能看到Az.Accounts
注意:powershell模块sqlserver似乎工作得很好,exe查找和使用它没有问题。
编辑:我只是测试了脚本,除了导入模块Az.Accounts和Connect-AzAccount之外,没有其他代码。同样,在使用ps2 exe转换之前,这个脚本运行良好
1条答案
按热度按时间c9qzyr3d1#
很高兴@* ryankennedy 712 * 找到了问题的原因并解决了自己的问题。把它作为答案发布出来,这将有助于面临类似问题的社区成员。
它是以前使用cmdlet
Install-Module Az -scope allusers -allowclobber
安装的Az.Accounts
模块的覆盖。重新安装(完全卸载和安装)模块
Az.Accounts
以及allusers
的范围成功。当我安装sqlserver模块时,它不需要所有用户范围。
PowerShell cmdlet中没有用于为AllUsers安装SqlServer Module的范围属性。若要为系统中的所有用户安装该模块,应在Microsoft在此MS Doc中提到的提升的PowerShell会话中(以管理员身份)运行该命令。