Распределяем VHD диски для клиентов APP-V при помощи Powershell

Для каждого клиента App-V на сервере создается отдельный VHD, который впоследствии будет монтироваться в систему. Все компьютеры в домене, являются членами группы безопасности «app-v-comptuers». Чтобы каждый раз при добавлении нового клиента App-V не создавать диски руками, решено написать небольшой скрипт, который будет по планировщику задач отрабатываться на сервере, и в случае изменений в составе группы AD отображать соответствующие изменения в общих папках.

Для каждого клиента в расшаренной папке создается отдельная директория, внутрь которой копируется эталонный VHD-диск. Реализовано все посредством простого скрипта на PowerShell. Логика довольно простая:

  1. Извлекаются все объекты компьютеров, включенных в исходную группу Active Directory (с учетом вложенных подгрупп).
  2. Проверяется наличие соответствующей папки на сервере, если нет — ее необходимо создать и скопировать туда типовой VHD.

Для работы скрипта необходимо либо подключить модули для работы с Active Directory. Для Windows 7 при этом ставится RSAT, для серверных ОС необходимо включить соответствующий компонент в настройках.

Собственно, сам код ниже.

<# Clone-VHD script #>
# исходный VHD
$sdisk = "D:\SDisk\source.vhd"
# импортируем модули для работы с AD.
import-module activedirectory
foreach ($comp in (Get-ADGroupMember -Identity "app-v-comptuers" -Recursive | ? {$_.objectClass -eq "computer"})) {
	$path = "D:\APPVUserData\"
	$wsname = $comp.Name
	$path2ws = $path + "$wsname\"
	if (!(Test-Path $path2ws)) {
		New-Item -ItemType Directory -Name $wsName -Path $path
		Copy-Item -Path $sdisk -Destination $path2ws
	}
}

Скрипт легко может быть видоизменен под схожие задачи с целью автоматизации рутинной работы.
В дальнейшем запуск скрипта можно производить по планировщику с необходимым интервалом между обработками. В данном варианте скрипт не удаляет директории и соответствующие VHD при удалении компьютера из группы AD.


Отблагодари меня, поделись ссылкой с друзьями в социальных сетях:



Оставить комментарий ВКонтакте


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *