2017-02-09 13 views
3

Возможно ли инициализировать все подключенные диски на несколько виртуальных машин с помощью одной конфигурации DSC? Например, если в VM1 установлено 1 диск, то конфигурация DSC будет инициализировать этот диск как диск F, VM2 имеет 2 диска, поэтому сама конфигурация DSC будет атаковать диски как F и G. Идея состоит в том, чтобы повторно использовать этот файл конфигурации для нескольких виртуальных машин с помощью переменное количество дисков без ошибок.Инициализировать переменное количество дисков с одной конфигурацией DSC

+0

Вы компиляции конфигурации на целевом узле? – TravisEz13

+0

Да, я использую Azure DSC Extension для этого. – Max

ответ

4

Это должно работать, если вы компилируете локально. Так как язык позволяет настойчиво строить заявленное состояние. Вы можете запросить диски и установить состояние.

Назначение букв дисков в моем образце довольно грубое. Вы также должны улучшить его.

Это использует xStorage which can be found on the PowerShell Gallery

Configuration disks 
{ 
    $DriveLetters = 'DEFGHIJKLMNOPQSRT' 
    Import-DscResource -ModuleName xStorage 

    Node localhost 
    { 
    Get-Disk | Where-Object {$_.NumberOfPartitions -lt 1} | Foreach-Object { 
     Write-Verbose "disk($($_.Number))" -Verbose 
     xDisk "disk($($_.Number))" 
     { 
     DriveLetter = $DriveLetters[$_.Number] 
     DiskNumber = $_.Number 
     FSFormat = 'NTFS'   
     } 
    } 
    } 
} 
+0

Ошибка с другой ошибкой: '' 'Расширение DSC получило неправильный ввод: ошибки компиляции произошли при обработке« дисков »конфигурации. Ознакомьтесь с ошибками , указанными в потоке ошибок, и соответствующим образом измените свой код конфигурации. Не удалось выполнить операцию индексирования; индекс массива оценивается как null. Вызов исключения «InvokeWithContext» с аргументом «2»: «Ошибка операции индекса, индекс массива оценивается как null». Индекс не выполнен; индекс массива оценивается как null. '' ' – Max