Я впервые рассматриваю создание DS C (требуемая конфигурация состояния) для go с шаблоном ARM (Azure Resource Manager) для развертывания Windows Server 2016 и дополнительных учетных записей локальных пользователей. Пока что шаблон ARM работает нормально, и для файла DS C я использую простой пример для проверки функциональности. Развертывание работает нормально, пока я не попытаюсь передать имя пользователя / пароль, чтобы я мог создать локальную учетную запись пользователя Windows. Кажется, я не могу заставить эту функцию работать вообще (см. Сообщение об ошибке ниже).
Мой вопрос: как мне использовать шаблон ARM для передачи учетных данных (пароля) в DS C (mof) файл, позволяющий создать пользователя без явного разрешения простых текстовых паролей (что не очень хорошо)?
Вот что я пробовал:
DS C file
Configuration xUser_CreateUserConfig {
[CmdletBinding()]
Param (
[Parameter(Mandatory = $true)]
[string]
$nodeName,
[Parameter(Mandatory = $true)]
[System.Management.Automation.PSCredential]
[System.Management.Automation.Credential()]
$Credential
)
Import-DscResource -ModuleName xPSDesiredStateConfiguration
Node $nodeName {
xUser 'CreateUserAccount' {
Ensure = 'Present'
UserName = Split-Path -Path $Credential.UserName -Leaf
Password = $Credential
}
}
}
Azure Фрагмент шаблона ARM 1-й метод
"resources": [
{
"apiVersion": "2016-03-30",
"type": "extensions",
"name": "Microsoft.Powershell.DSC",
"location": "[parameters('location')]",
"tags": {
"DisplayName": "DSC",
"Dept": "[resourceGroup().tags['Dept']]",
"Created By": "[parameters('createdBy')]"
},
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines', concat(variables('vmNamePrefix'), copyIndex(1)))]"
],
"properties": {
"publisher": "Microsoft.Powershell",
"type": "DSC",
"typeHandlerVersion": "2.19",
"autoUpgradeMinorVersion": true,
"settings": {
"wmfVersion": "latest",
"modulesUrl": "[concat(variables('_artifactslocation'), '/', variables('dscArchiveFolder'), '/', variables('dscArchiveFileName'))]",
"configurationFunction": "xCreateUserDsc.ps1\\xUser_CreateUserConfig",
"properties": {
"nodeName": "[concat(variables('vmNamePrefix'), copyIndex(1))]",
"Credential": {
"UserName": "[parameters('noneAdminUsername')]",
"Password": "PrivateSettingsRef:UserPassword"
}
}
},
"protectedSettings": {
"Items": {
"UserPassword": "[parameters('noneAdminUserPassword')]"
}
}
}
}
]
Сообщение об ошибке Операция ресурса завершена с состоянием инициализации терминала «Сбой». VM сообщила об ошибке при обработке расширения «Microsoft.Powershell.DS C». Сообщение об ошибке: \\ "Расширение DS C получило неверный ввод: во время обработки конфигурации 'xUser_CreateUserConfig' произошли ошибки компиляции. Пожалуйста, просмотрите ошибки, указанные в потоке ошибок, и соответствующим образом измените код конфигурации. System.InvalidOperationException свойство обработки ошибок 'Пароль 'OF TYPE' xUser ': преобразование и хранение зашифрованных паролей в виде простого текста не рекомендуется. Для получения дополнительной информации о защите учетных данных в файле MOF см. Блог MSDN: http://go.microsoft.com/fwlink/?LinkId=393729
Это сообщение об ошибке не помогает
Azure Фрагмент шаблона ARM 2-й метод
"resources": [
{
"apiVersion": "2018-10-01",
"type": "extensions",
"name": "Microsoft.Powershell.DSC",
"location": "[parameters('location')]",
"tags": {
"DisplayName": "DSC",
"Dept": "[resourceGroup().tags['Dept']]",
"Created By": "[parameters('createdBy')]"
},
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines', concat(variables('vmNamePrefix'), copyIndex(1)))]"
],
"properties": {
"publisher": "Microsoft.Powershell",
"type": "DSC",
"typeHandlerVersion": "2.9",
"autoUpgradeMinorVersion": true,
"settings": {
"wmfVersion": "latest",
"configuration": {
"url": "[concat(variables('_artifactslocation'), '/', variables('dscArchiveFolder'), '/', variables('dscArchiveFileName'))]",
"script": "xCreateUserDsc.ps1",
"function": "xUser_CreateUserConfig"
},
"configurationArguments": {
"nodeName": "[concat(variables('vmNamePrefix'), copyIndex(1))]"
},
"privacy": {
"dataCollection": "Disable"
}
},
"protectedSettings": {
"configurationArguments": {
"Credential": {
"UserName": "[parameters('noneAdminUsername')]",
"Password": "[parameters('noneAdminUserPassword')]"
}
}
}
}
}
]
Сообщение об ошибке
VM сообщил об ошибке при обработке расширения «Microsoft.Powershell.DS C». Сообщение об ошибке: «Расширение DS C получило неверный ввод: не найден параметр, соответствующий имени параметра« $ credential.Password ». Другая распространенная ошибка - указать параметры типа PSCredential без явного типа. Обязательно используйте типизированный параметр в DS C Configuration, например: config Пример конфигурации param ([PSCredential] $ UserAccount). Пожалуйста, исправьте ввод и попробуйте выполнить расширение. Более подробную информацию об устранении неполадок можно получить по адресу https://aka.ms/VMExtensionDSCWindowsTroubleshoot
Это не помогает!
Я пытался устранить эту ошибку в течение нескольких дней. Я использовал Google для другого примера, но могу найти только пример людей, развертывающих веб-сервер, и документация Microsoft не поможет, поскольку в ней говорится, что вы должны использовать оба вышеуказанных метода. Когда метод 1 старый (по мнению Microsoft). Таким образом, любая помощь будет высоко ценится.