我使用ARM并创建了一个自动化帐户,其中包含使用下面的PowerShell代码段的运行手册来修改Azure AD用户,以便正确更新其位置。所有资源都与我的Azure AD在同一订阅和资源组中。
get-msoluser |其中{$ _。userPrincipalName -like" * @ contoso.co.uk"} | set-msoluser -Usagelocation" GB" 当我在Azure中运行它时,我会失败,如下所示:
术语' get-msoluser'不被识别为cmdlet,函数,脚本文件或可操作的名称 程序。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。 在行:2 char:1 + get-msoluser |其中{$ _。userPrincipalName -like" * @ contoso.co.uk。"} | s ... + ~~~~~~~~~~~~ + CategoryInfo:ObjectNotFound:(get-msoluser:String)[],CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException
当我使用" connect-msolservice"手动运行PowerShell时并输入我的凭据,它工作正常。
我有几个问题:
由于
答案 0 :(得分:0)
您必须将Azure自动化帐户视为全新的PowerShell安装。它几乎没有模块。你首先需要做的是install modules。只需按照该文章安装正确的模块,然后就可以在Azure自动化Runbook中使用该模块中的所有cmdlet。
您仍然需要针对Azure AD(具有适当的权限)进行身份验证才能使命令正常工作(否则任何人都可以对Azure AD发出相同的命令,这不是您想要的)。因此,您应该使用静默身份验证命令启动每个Runbook。您可以使用Azure自动化 用于存储密码的变量(不将它们硬编码到Runbook中)。
您还可以使用certificate auth,Azure Automation可以为其存储证书。