你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

New-AzureRmADServicePrincipal

创建新的Microsoft Entra 服务主体。

警告

AzureRM PowerShell 模块已自 2024 年 2 月 29 日起正式弃用。 为了确保持续获得支持和更新,建议用户从 AzureRM 迁移到 Az PowerShell 模块。

尽管 AzureRM 模块仍可运行,但不再受到维护或支持,任何继续使用的行为都由用户自行决定并自行承担风险。 有关过渡到 Az 模块的指导,请参阅我们的迁移资源

语法

New-AzureRmADServicePrincipal
   [-ApplicationId <Guid>]
   [-DisplayName <String>]
   [-Password <SecureString>]
   [-StartDate <DateTime>]
   [-EndDate <DateTime>]
   [-Scope <String>]
   [-Role <String>]
   [-SkipAssignment]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmADServicePrincipal
   -ApplicationId <Guid>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmADServicePrincipal
   -ApplicationId <Guid>
   -Password <SecureString>
   [-StartDate <DateTime>]
   [-EndDate <DateTime>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmADServicePrincipal
   -ApplicationId <Guid>
   -PasswordCredential <PSADPasswordCredential[]>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmADServicePrincipal
   -ApplicationId <Guid>
   -CertValue <String>
   [-StartDate <DateTime>]
   [-EndDate <DateTime>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmADServicePrincipal
   -ApplicationId <Guid>
   -KeyCredential <PSADKeyCredential[]>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmADServicePrincipal
   -DisplayName <String>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmADServicePrincipal
   -DisplayName <String>
   -Password <SecureString>
   [-StartDate <DateTime>]
   [-EndDate <DateTime>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmADServicePrincipal
   -DisplayName <String>
   -PasswordCredential <PSADPasswordCredential[]>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmADServicePrincipal
   -DisplayName <String>
   -CertValue <String>
   [-StartDate <DateTime>]
   [-EndDate <DateTime>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmADServicePrincipal
   -DisplayName <String>
   -KeyCredential <PSADKeyCredential[]>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmADServicePrincipal
   -ApplicationObject <PSADApplication>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmADServicePrincipal
   -ApplicationObject <PSADApplication>
   -Password <SecureString>
   [-StartDate <DateTime>]
   [-EndDate <DateTime>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmADServicePrincipal
   -ApplicationObject <PSADApplication>
   -PasswordCredential <PSADPasswordCredential[]>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmADServicePrincipal
   -ApplicationObject <PSADApplication>
   -CertValue <String>
   [-StartDate <DateTime>]
   [-EndDate <DateTime>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-AzureRmADServicePrincipal
   -ApplicationObject <PSADApplication>
   -KeyCredential <PSADKeyCredential[]>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

说明

创建新的Microsoft Entra 服务主体。 如果用户不提供参数的默认值,则默认参数集使用默认值。 有关所使用的默认值的详细信息,请参阅以下给定参数的说明。 此 cmdlet 能够向 Role 具有和 Scope 参数的服务主体分配角色;如果未提供这些参数,则不会向服务主体分配任何角色。 参数的RoleScope默认值分别为“参与者”和当前订阅(注意:仅当用户为两个参数之一(而不是另一个参数)提供值时,才使用默认值。 该 cmdlet 还隐式创建应用程序并设置其属性(如果未提供 ApplicationId)。 若要更新应用程序特定的参数,请使用 Set-AzureRmADApplication cmdlet。

示例

示例 1 - 创建简单的 AD 服务主体

PS C:\> New-AzureRmADServicePrincipal

Secret                : System.Security.SecureString
ServicePrincipalNames : {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, http://azure-powershell-05-22-2018-18-23-43}
ApplicationId         : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
DisplayName           : azure-powershell-05-22-2018-18-23-43
Id                    : yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
Type                  : ServicePrincipal

上述命令使用未提供的参数的默认值创建 AD 服务主体。 由于未提供应用程序 ID,为服务主体创建应用程序。 由于没有为 RoleScope提供任何值,因此创建的服务主体没有任何权限。

示例 2 - 使用指定角色和默认作用域创建简单的 AD 服务主体

PS C:\> New-AzureRmADServicePrincipal -Role Reader

Secret                : System.Security.SecureString
ServicePrincipalNames : {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, http://azure-powershell-05-22-2018-18-23-43}
ApplicationId         : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
DisplayName           : azure-powershell-05-22-2018-18-23-43
Id                    : yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
Type                  : ServicePrincipal

WARNING: Assigning role 'Reader' over scope '/subscriptions/zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz' to the new service principal.

上述命令使用未提供的参数的默认值创建 AD 服务主体。 由于未提供应用程序 ID,为服务主体创建应用程序。 服务主体是使用当前订阅的“读取者”权限创建的(因为没有为 Scope 参数提供任何值)。

示例 3 - 使用指定的作用域和默认角色创建简单的 AD 服务主体

PS C:\> New-AzureRmADServicePrincipal -Scope /subscriptions/zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz/resourceGroups/myResourceGroup

Secret                : System.Security.SecureString
ServicePrincipalNames : {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, http://azure-powershell-05-22-2018-18-23-43}
ApplicationId         : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
DisplayName           : azure-powershell-05-22-2018-18-23-43
Id                    : yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
Type                  : ServicePrincipal

WARNING: Assigning role 'Contributor' over scope '/subscriptions/zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz/resourceGroups/myResourceGroup' to the new service principal.

上述命令使用未提供的参数的默认值创建 AD 服务主体。 由于未提供应用程序 ID,为服务主体创建应用程序。 服务主体是使用“参与者”权限(因为未为参数提供任何值)在 Role 提供的资源组范围内创建。

示例 4 - 使用指定的作用域和角色创建简单的 AD 服务主体

PS C:\> New-AzureRmADServicePrincipal -Role Reader -Scope /subscriptions/zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz/resourceGroups/myResourceGroup

Secret                : System.Security.SecureString
ServicePrincipalNames : {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, http://azure-powershell-05-22-2018-18-23-43}
ApplicationId         : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
DisplayName           : azure-powershell-05-22-2018-18-23-43
Id                    : yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
Type                  : ServicePrincipal

WARNING: Assigning role 'Reader' over scope '/subscriptions/zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz/resourceGroups/myResourceGroup' to the new service principal.

上述命令使用未提供的参数的默认值创建 AD 服务主体。 由于未提供应用程序 ID,为服务主体创建应用程序。 服务主体是在提供的资源组范围内使用“读取者”权限创建的。

示例 5 - 使用具有角色分配的应用程序 ID 创建新的 AD 服务主体

PS C:\> New-AzureRmADServicePrincipal -ApplicationId 00001111-aaaa-2222-bbbb-3333cccc4444

ServicePrincipalNames : {00001111-aaaa-2222-bbbb-3333cccc4444, http://my-temp-app}
ApplicationId         : 00001111-aaaa-2222-bbbb-3333cccc4444
DisplayName           : my-temp-app
Id                    : yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
Type                  : ServicePrincipal

为应用程序 ID 为“00001111-aaaa-2222-bbbb-33333cccc4444”的应用程序创建新的 AD 服务主体。 由于没有为 RoleScope提供任何值,因此创建的服务主体没有任何权限。

示例 6 - 使用管道创建新的 AD 服务主体

PS C:\> Get-AzureRmADApplication -ObjectId 3ede3c26-b443-4e0b-9efc-b05e68338dc3 | New-AzureRmADServicePrincipal

获取对象 ID 为“3ede3c26-b443-4e0b-9efc-b05e68338dc3”的应用程序,并将其传递给 New-AzureRmADServicePrincipal cmdlet,以便为该应用程序创建新的 AD 服务主体。

参数

-ApplicationId

租户中服务主体的唯一应用程序 ID。 创建此属性后,无法更改此属性。 如果未指定应用程序 ID,将生成一个。

类型:Guid
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-ApplicationObject

表示为其创建服务主体的应用程序的对象。

类型:PSADApplication
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-CertValue

“非对称”凭据类型的值。 它表示 base 64 编码的证书。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-Confirm

提示你在运行 cmdlet 之前进行确认。

类型:SwitchParameter
别名:cf
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DefaultProfile

用于与 azure 通信的凭据、帐户、租户和订阅

类型:IAzureContextContainer
别名:AzureRmContext, AzureCredential
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DisplayName

服务主体的友好名称。 如果未提供显示名称,则此值将默认为“azure-powershell-MM-dd-yyyy-HH-mm-ss”,其中后缀是创建应用程序的时间。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-EndDate

凭据使用情况的有效结束日期。 默认结束日期值为从今天开始的一年。 对于“非对称”类型凭据,必须将其设置为 X509 证书有效日期或之前。

类型:DateTime
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-KeyCredential

与应用程序关联的密钥凭据的集合。

类型:PSADKeyCredential[]
别名:KeyCredentials
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-Password

要与服务主体关联的密码。 如果未提供密码,则会生成随机 GUID 并将其用作密码。

类型:SecureString
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-PasswordCredential

与应用程序关联的密码凭据的集合。

类型:PSADPasswordCredential[]
别名:PasswordCredentials
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-Role

服务主体在作用域内具有的角色。 如果提供了一个值 Scope ,但未提供任何 Role值,则 Role 默认为“参与者”角色。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Scope

服务主体具有权限的范围。 如果提供了一个值 Role ,但未提供任何 Scope值,则 Scope 默认为当前订阅。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SkipAssignment

如果设置,将跳过为服务主体创建默认角色分配。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-StartDate

凭据使用情况的有效开始日期。 默认开始日期值为今天。 对于“非对称”类型凭据,此凭据必须设置为 X509 证书有效日期或之后。

类型:DateTime
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

类型:SwitchParameter
别名:wi
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

Guid

String

PSADApplication

参数:ApplicationObject (ByValue)

PSADPasswordCredential[]

PSADKeyCredential[]

SecureString

DateTime

输出

PSADServicePrincipal

Microsoft.Azure.Commands.Resources.Models.Authorization.PSADServicePrincipalWrapper

备注

关键字:azure, azurerm, arm, 资源, 管理, 经理, 资源组, 模板, 部署