По сути, я просто пытаюсь получить очень простой доступ к деталям виртуальной машины с помощью Azure DSC.Я сделал следующее
- Добавил новые учетные данные (которые содержат имя пользователя и пароль) и переменную (которая содержит subscriptionId) в разделе общих ресурсов моей учетной записи автоматизации
- Реализовалиследующий код DSC для получения сведений о виртуальной машине: я могу заполнить этот файл на портале, он также генерирует файл .MOF.Но когда я пытаюсь применить это к узлу на портале, я получаю следующую ошибку:
Ресурсу PowerShell DSC MSFT_ScriptResource не удалось выполнить функцию Set-TargetResource с сообщением об ошибке: Термин «Получить»-AutomationPSCredential 'не распознается как имя командлета, функции, файла сценария или работоспособной программы.Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку
Обратите внимание, что код, написанный внутри SetScript, успешно выполняется в Runbook!!!!!!
Configuration VMAzureDSCTasks
{
param
(
[Parameter()]
[System.String]
$NodeName = "rajeshserver",
[Parameter()]
[System.String]
$ResourceGroupName = "rajeshresourcegroup",
[Parameter()]
[System.String]
$VMSize = "Standard_D2s_v3",
[Parameter()]
[System.String]
$CredentialAssetName = "cred"
)
Import-DscResource -ModuleName 'PSDesiredStateConfiguration'
Node $NodeName
{
Script resizevm
{
SetScript = {
# Credentials and Subscription ID declaration
$Cred = Get-AutomationPSCredential -Name $using:CredentialAssetName
$null = Add-AzureRmAccount -Credential $Cred -ErrorAction Stop
$SubId = Get-AutomationVariable -Name 'SubscriptionId'
$null = Set-AzureRmContext -SubscriptionId $SubId -ErrorAction Stop
try {
$vm = Get-AzureRmVm -ResourceGroupName $using:ResourceGroupName -VMName $using:NodeName -ErrorAction Stop
} catch {
throw "Virtual Machine not found!!!!!!"
exit
}
# Output current VM Size
$currentVMSize = $vm.HardwareProfile.vmSize
Write-Verbose -Message "`nFound the specified Virtual Machine: $using:NodeName"
Write-Verbose -Message "Current size: $using:currentVMSize"
}
TestScript = {
return $false
}
GetScript = {
}
}
}
}