【问题标题】:Create PSCredential from AzureAD User从 AzureAD 用户创建 PSCredential
【发布时间】:2020-11-19 22:22:01
【问题描述】:

我不知道为什么我想不通,这不可能像我做的那么难。我正在尝试创建一个 powershell 脚本,该脚本将使用 AzureAD 中的显式凭据提升自身。我创建了一个 PSCredential 对象:

$ss = ConvertTo-SecureString "p@ssw0rd" -AsPlainText -Force
$cred = New-Object PSCredential -ArgumentList 'username@domain.com', $ss
Start-Process PowerShell -Credential $cred "-NoProfile -ExecutionPolicy Bypass -Command `"cd '$pwd'; & '$PSCommandPath';`""
exit;

当我执行这个我得到Start-Process : This command cannot be run due to the error: The user name or password is incorrect.

我知道用户名和密码是正确的,但我猜这与这是 AzureAD 用户有关吗?我必须以不同的方式格式化 AzureAD 用户名吗?我已经尝试以我能想到的各种方式重新格式化它。我试过使用Connect-AzureADGet-AzureADUser 来尝试看看我是否可以使用它的某些属性来登录,但我会空着。

这可能吗?

【问题讨论】:

    标签: powershell credentials azure-powershell runas


    【解决方案1】:

    对于Start-Process,您必须以“DOMAIN\user”格式指定用户名。我不确定这个限制来自哪里。

    【讨论】:

    • 这似乎不适用于 AzureAD 凭据。我已经尝试了domain\usernamedomain.com\username 并且都给出了同样的错误。这是我第一次使用 AzureAD 而不是本地域,所以我对此有点迷茫。当我查看 portal.azure.com 时,它显示我的设备已“加入 Azure AD”,但在系统属性中它不在域中,因为我猜 Azure 基于云的处理方式不同。
    • 您可以尝试将工作组名称作为您的完整用户名中的域名,例如“WORKGROUP\username”吗?
    • 不幸的是,这也没有用。我想知道我是否必须先查询 Azure AD 对象? Idk,我现在只是四处走动并手动执行此操作:(感谢您的所有建议!
    【解决方案2】:

    您尝试运行命令的 azure ad 用户帐户所在的域是否可访问您的计算机所连接的域?如果没有更多信息,我只能推测 powershell 抛出错误是因为它无法识别用户或用户所属的域。

    【讨论】:

    • 计算机与我尝试登录的用户帐户加入了同一个 AzureAD 域。我刚刚为一家以前没有 IT 部门的非营利组织开始了这项工作。他们的办公室分布在一个很大的地理区域,而且他们现在也在偏远地区。这些计算机没有远程访问软件,没有命名约定,并且最终用户没有本地管理员权限。我想要一个可以快速轻松地运行的脚本来重命名计算机并安装远程访问软件。从您所看到的情况来看,AzureAD 用户名是否应该在我的脚本中按照所写的那样工作?
    • 补充一点,当我将 Connect-AzureAD 放在脚本的开头并使用与脚本中相同的凭据登录 Azure 时,我可以登录并打印出来我的用户,但是当它到达脚本中提供凭据的部分时给了我错误。我得到:Account: username@domain.com | Environment: AzureCloud | TenantId: xxx-xxx-xxx-xxx | AccountType: User
    猜你喜欢
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    • 2018-11-23
    • 2021-05-22
    • 2022-08-18
    • 1970-01-01
    • 2022-07-11
    • 2019-02-12
    相关资源
    最近更新 更多