Private/Get-DomainJoinExtensionSettings.ps1
# Will be called in VM function Global:Get-DomainJoinExtensionSettings { [CmdletBinding()] <# .SYNOPSIS ... .DESCRIPTION ... #> param( [Parameter(Mandatory = $true)] [string] $KeyVaultName ) process { $adminUserName = (Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name 'DomainAdminUsername').SecretValueText $adminUserPass = (Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name 'DomainAdminPassword').SecretValueText $domainName = (Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name 'DomainName').SecretValueText $adminUserName = "$domainName\$adminUserName" $settingsParameter = @{ "Name" = $domainName; "User" = $adminUserName; "Restart" = "true"; "Options" = 3; #"OUPath" = "OU=TEST,OU=My Computers,DC=yourdomain,DC=onmicrosoft,DC=com" # TODO: Check if needed } $protectedSettingsParameter = @{ "Password" = $adminUserPass } # $settings = [pscustomobject]@{ Publisher = "Microsoft.Compute"; Type = "JsonADDomainExtension"; TypeHandlerVersion = 1.3; Name = "vmssjoindomain"; Settings = $settingsParameter ProtectedSetting = $protectedSettingsParameter; } $settings } } |