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

Add-AzureProvisioningConfig

为 Azure 虚拟机添加预配配置。

注意

本文档中引用的 cmdlet 用于管理使用 Azure Service Manager (ASM) API 的旧式 Azure 资源。 创建新资源时,建议不要使用旧的 PowerShell 模块,因为计划将停用 ASM。 有关详细信息,请参阅 Azure Service Manager 停用

Az PowerShell 模块是建议用于管理 PowerShell 的 Azure 资源管理器 (ARM) 资源的 PowerShell 模块。

语法

Add-AzureProvisioningConfig
   -VM <IPersistentVM>
   [-DisableGuestAgent]
   [-CustomDataFile <String>]
   [-Windows]
   [-AdminUsername <String>]
   [-Password <String>]
   [-ResetPasswordOnFirstLogon]
   [-DisableAutomaticUpdates]
   [-NoRDPEndpoint]
   [-TimeZone <String>]
   [-Certificates <CertificateSettingList>]
   [-EnableWinRMHttp]
   [-DisableWinRMHttps]
   [-WinRMCertificate <X509Certificate2>]
   [-X509Certificates <X509Certificate2[]>]
   [-NoExportPrivateKey]
   [-NoWinRMEndpoint]
   [-Profile <AzureSMProfile>]
   [-InformationAction <ActionPreference>]
   [-InformationVariable <String>]
   [<CommonParameters>]
Add-AzureProvisioningConfig
   -VM <IPersistentVM>
   [-DisableGuestAgent]
   [-Linux]
   [-LinuxUser <String>]
   [-DisableSSH]
   [-NoSSHEndpoint]
   [-NoSSHPassword]
   [-SSHPublicKeys <SSHPublicKeyList>]
   [-SSHKeyPairs <SSHKeyPairList>]
   [-CustomDataFile <String>]
   [-Password <String>]
   [-Profile <AzureSMProfile>]
   [-InformationAction <ActionPreference>]
   [-InformationVariable <String>]
   [<CommonParameters>]
Add-AzureProvisioningConfig
   -VM <IPersistentVM>
   [-DisableGuestAgent]
   [-CustomDataFile <String>]
   -AdminUsername <String>
   [-WindowsDomain]
   [-Password <String>]
   [-ResetPasswordOnFirstLogon]
   [-DisableAutomaticUpdates]
   [-NoRDPEndpoint]
   [-TimeZone <String>]
   [-Certificates <CertificateSettingList>]
   -JoinDomain <String>
   -Domain <String>
   -DomainUserName <String>
   -DomainPassword <String>
   [-MachineObjectOU <String>]
   [-EnableWinRMHttp]
   [-DisableWinRMHttps]
   [-WinRMCertificate <X509Certificate2>]
   [-X509Certificates <X509Certificate2[]>]
   [-NoExportPrivateKey]
   [-NoWinRMEndpoint]
   [-Profile <AzureSMProfile>]
   [-InformationAction <ActionPreference>]
   [-InformationVariable <String>]
   [<CommonParameters>]

说明

Add-AzureProvisioningConfig cmdlet 将预配配置信息添加到 Azure 虚拟机配置。 可以使用配置对象创建虚拟机。

此 cmdlet 支持不同的预配配置,包括独立 Windows 服务器、已加入 Active Directory 域的 Windows 服务器和基于 Linux 的服务器。

若要创建已加入 Active Directory 域的服务器,请指定 Active Directory 域的完全限定域名,以及有权将虚拟机加入域的用户的域凭据。

示例

示例 1:创建独立虚拟机

PS C:\> New-AzureVMConfig -Name "NonDomainVM" -InstanceSize Small -ImageName "Image07" | Add-AzureProvisioningConfig -Windows -Password "password" -AdminUsername "AdminMain" | New-AzureVM -ServiceName "ContosoService"

此命令使用 New-AzureVMConfig cmdlet 创建虚拟机配置对象。 该命令使用管道运算符将该对象传递给当前 cmdlet。 当前 cmdlet 为运行 Windows 操作系统的虚拟机添加了预配配置。 配置包括管理员用户名和密码。 该命令将配置传递给 New-AzureVM cmdlet,该 cmdlet 将创建虚拟机。

示例 2:创建已加入域的虚拟机

PS C:\> New-AzureVMConfig -Name "DomainVM" -InstanceSize Small -ImageName "Image09" | Add-AzureProvisioningConfig -WindowsDomain -Password "password" -AdminUsername "AdminMain" -ResetPasswordOnFirstLogon -JoinDomain "contoso.com" -Domain "contoso" -DomainUserName "DomainAdminUser" -DomainPassword "DomainPassword" -MachineObjectOU 'OU=AzureVMs,DC=contoso,DC=com' | New-AzureVM -ServiceName "ContosoService"

此命令创建虚拟机配置对象,然后将其传递给当前 cmdlet。 当前 cmdlet 为要加入 contoso 域的虚拟机添加预配配置。 该命令包括将虚拟机加入域所需的用户名和密码。 配置要求用户在首次登录时更改用户密码。 该命令基于预配对象创建虚拟机。

示例 3:创建基于 Linux 的虚拟机

PS C:\> New-AzureVMConfig -Name "LinuxVM" -InstanceSize Small -ImageName "LinuxImage03" | Add-AzureProvisioningConfig -Linux -LinuxUser "LinuxRoot" -Password "password" | New-AzureVM -ServiceName "ContosoService"

此命令创建虚拟机配置对象,然后将其传递给当前 cmdlet。 当前 cmdlet 为运行 Linux 操作系统的虚拟机添加预配配置。 配置包括根用户名和密码。 该命令基于预配对象创建虚拟机。

示例 4:创建包含 WinRM 证书的虚拟机

PS C:\> $certs = Get-ChildItem Cert:\CurrentUser\My
New-AzureVMConfig -Name "NonDomainVM" -InstanceSize Small -ImageName "Image11" | Add-AzureProvisioningConfig -Windows -Password "password" -AdminUsername "AdminMain" -WinRMCertificate $certs[0] -X509Certificates $certs[1], $certs[2] | New-AzureVM -ServiceName "ContosoService" -WaitForBoot

第一个命令从证书存储中获取证书,然后将其存储在$certs数组变量中。

第二个命令创建虚拟机配置对象,然后将其传递给当前 cmdlet。 当前 cmdlet 添加了包含 WinRM 证书的预配配置。 该命令基于预配对象创建虚拟机。

示例 5:创建通过 HTTP 启用 WinRM 的虚拟机

PS C:\> New-AzureVMConfig -Name "NonDomainVM" -InstanceSize Small -ImageName "Image14" | Add-AzureProvisioningConfig -Windows -Password "password" -AdminUsername "AdminMain" -EnableWinRMHttp | New-AzureVM -ServiceName "ContosoService" -WaitForBoot

此命令创建虚拟机配置对象,然后将其传递给当前 cmdlet。 当前 cmdlet 添加了通过 HTTP 启用 WinRM 的预配配置。 该命令基于预配对象创建虚拟机。

示例 6:创建通过 HTTPS 禁用 WinRM 的虚拟机

PS C:\> New-AzureVMConfig -Name "NonDomainVM" -InstanceSize Small -ImageName "Image07" | Add-AzureProvisioningConfig -Windows -Password "password" -AdminUsername "AdminMain" -DisableWinRMHttps | New-AzureVM -ServiceName "ContosoService" -WaitForBoot

此命令创建虚拟机配置对象,然后将其传递给当前 cmdlet。 当前 cmdlet 添加了禁用 WinRM over HTTPS 的预配配置。 该命令基于预配对象创建虚拟机。

示例 7:创建不导出密钥的虚拟机

PS C:\> $certs = Get-ChildItem Cert:\CurrentUser\My
New-AzureVMConfig -Name "NonDomainVM" -InstanceSize Small -ImageName "Image07" | Add-AzureProvisioningConfig -Windows -Password "password" -AdminUsername "AdminMain" -X509Certificates $certs[0], $certs[1] -NoExportPrivateKey | New-AzureVM -ServiceName "ContosoService" -WaitForBoot

第一个命令从证书存储中获取证书,然后将其存储在$certs数组变量中。

第二个命令创建虚拟机配置对象,然后将其传递给当前 cmdlet。 当前 cmdlet 为包含证书且不导出私钥的虚拟机添加预配配置。 该命令基于预配对象创建虚拟机。

参数

-AdminUsername

指定此配置在虚拟机上创建的管理员帐户的用户名。

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

-Certificates

指定此配置安装在虚拟机上的一组证书。

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

-CustomDataFile

指定虚拟机的数据文件。 此 cmdlet 将文件的内容编码为 Base64。 该文件的长度必须小于 64 KB。

如果来宾操作系统是 Windows 操作系统,则此配置将此数据保存为名为 %SYSTEMDRIVE%\AzureData\CustomData.bin的二进制文件。

如果来宾操作系统为 Linux,则此配置将使用 ovf-env.xml 文件传递数据。 配置将该文件复制到 /var/lib/waagent 目录。 代理还会将 Base64 编码的数据存储在 /var/lib/waagent/CustomData 中。

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

-DisableAutomaticUpdates

指示此配置禁用自动更新。

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

-DisableGuestAgent

指示此配置禁用基础结构即服务(IaaS)来宾代理。

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

-DisableSSH

指示此配置禁用 SSH。

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

-DisableWinRMHttps

指示此配置在 HTTPS 上禁用 Windows 远程管理(WinRM)。 默认情况下,WinRM 通过 HTTPS 启用。

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

-Domain

指定有权将计算机添加到域的帐户的域的名称。

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

-DomainPassword

指定有权将计算机添加到域的用户帐户的密码。

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

-DomainUserName

指定有权将计算机添加到域的用户帐户的名称。

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

-EnableWinRMHttp

指示此配置通过 HTTP 启用 WinRM。

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

-InformationAction

指定此 cmdlet 如何响应信息事件。

此参数的可接受值为:

  • Continue
  • 忽略
  • 询问
  • SilentlyContinue
  • 停止
  • Suspend
类型:ActionPreference
别名:infa
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-InformationVariable

指定信息变量。

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

-JoinDomain

指定要加入的域的完全限定域名(FQDN)。

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

-Linux

指示此配置创建 Linux 配置。

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

-LinuxUser

指定此配置在虚拟机上创建的 Linux 管理帐户的用户名。

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

-MachineObjectOU

指定配置在其中创建计算机帐户的组织单位(OU)的完全限定名称。

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

-NoExportPrivateKey

指示此配置不会上传私钥。

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

-NoRDPEndpoint

指示此配置在不使用远程桌面终结点的情况下创建虚拟机。

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

-NoSSHEndpoint

指示此配置创建没有 SSH 终结点的虚拟机。

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

-NoSSHPassword

指示此配置创建没有 SSH 密码的虚拟机。

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

-NoWinRMEndpoint

指示此配置不会为虚拟机添加 WinRM 终结点。

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

-Password

指定管理员帐户的密码。

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

-Profile

指定此 cmdlet 从中读取的 Azure 配置文件。 如果未指定配置文件,此 cmdlet 将从本地默认配置文件中读取。

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

-ResetPasswordOnFirstLogon

指示虚拟机要求用户在首次登录时更改密码。

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

-SSHKeyPairs

指定 SSH 密钥对。

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

-SSHPublicKeys

指定 SSH 公钥。

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

-TimeZone

指定虚拟机的时区,例如太平洋标准时间或加拿大中部标准时间。

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

-VM

指定虚拟机对象。

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

-Windows

指示此配置创建运行 Windows 操作系统的独立虚拟机。

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

-WindowsDomain

指示此配置创建已加入 Active Directory 域的 Windows 服务器。

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

-WinRMCertificate

指定此配置关联到 WinRM 终结点的证书。

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

-X509Certificates

指定部署到托管服务的 X509 证书数组。

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