MDT 2010 ошибка обновления каталога развертывания

При попытке обновления каталога развертывания (Deployment Share) процес обновления завершается неудачно, с отображением ошибки:
Unable to mount the WIM, so the update process cannot continue.
Поиск таких ошибок в сети привел к выводу о необходимости проверки версии библиотеки wimgapi.dll, что и было сделано. Однако никаких результатов это не дало. Файлы находились там где и надо, версия – самая последняя на момент проверки. Поэтому было решено пойти другим путем:
Возникла мысль проверить какие на данный момент образы смонтированы командой dism /get-mountedwiminfo. Вывод команды приводить здесь не буду, однако нашелся один смонтированый образ в каталоге C:\Users\username\AppData\Local\Temp\MDTUpdate.1896\Mount. После его отмонтирования процесс обновления завершился без каких-либо ошибок. Расследование почему он остался смонтированым и после каких действий – не проводилось.

Удаление несуществующих устройств

Периодически бывает так, что поменяли сетевую карточку, а попытка переименовать сетевое подключение приводит к неудаче. Происходит это от того, что нес мотря на отсуствие сетевой карточки, она присутствует в системе и присутсвует скрытое сетевое соединение. Для удаления неподключеннх устройств необходимо выполнить следующие команды:
1. Запускаем командную строку в режиме администратора.
2. set devmgr_show_nonpresent_devices=1
cd %SystemRoot%\System32
start devmgmt.msc
3. В диспетчере устройств отмечаем галочку – “Показывать скрытые устройства”.
4. Удаляем все ненужные нам сетеые адаптеры.

Поиск даты последнего входа пользоваеля или компьютера в домен

Для очистки Active Directory от старых пользователей и компьютеров их сначала необходимо найти. найти их просто, дата последнего логина содержится в поле LastLogon. Проблема только в том, что это поле не реплицируется между домен-контролерами и для поиска актуальной даты последнего логина необходимо опросить все домен-контролеры, а затем выбрать самую последнюю дату. Для автоматизации данного процесса, сделан небольшой скрипт на Powershell с использованием GUI, что дает возможность его использовать даже хелпдеску.
Вид окна программы:

Для запуска скрипна необходимо установить расширение для ActiveRoles Management Shell for Active Directory от компании Quest Software. В поле ObjectName вводим имя компьютера или samaccountname пользователя, указываем тип объекта и нажимаем Find и получаем дату последнего входа.

Скрипт брать тут.

Синхронизация групп в Active Directory

Иногда неоходимо синхронизировать 2 группы в Active Directiory таким обраом, чтоб изменения состава пользователей одной группы, автоматически изменяло состав пользователей другой группы. Зачем это уже отдельный вопрос и тут не рассматривается. Для этого поможет небольшой скрипт. Для запуска скрипна необходимо установить расширение для ActiveRoles Management Shell for Active Directory от компании Quest Software. А затем воспользоваться таким небольшим скриптом:

Add-PSSnapin Quest.ActiveRoles.ADManagement
$in = (get-qadgroup ‘tstgroupin’).dn
$out = (get-qadgroup ‘tstgroupout’).dn
$ingroupmembers = get-qadgroupmember $in
$outgroupmembers = get-qadgroupmember $out
$rez = compare-object $ingroupmembers $outgroupmembers
foreach($item in $rez){
if ($item.SideIndicator -eq “<=”){
$usrdn = (get-qaduser $item.InputObject).dn
if ($userdn -ne $null){add-qadgroupmember $out -Member $usrdn}
}
if ($item.SideIndicator -eq “=>”){
$usrdn = (get-qaduser $item.InputObject).dn
if ($userdn -ne $null){remove-qadgroupmember $out -Member $usrdn}
} �
}

Скрипт изменяет состав пользователей группы tstgroupout в соответствии с составом пользователей группы tstgroupin. Можно конечно удалить всех и добавить нужных, но это повлечет за собой изменение (хоть и кратковременное) членства в группах пользователей, у которых ничего не изменялось. Кроме того метод “удалить всех и добавить нужных” создаст в журнале безопасности множество лишней информации по изменению членства в группах, которая будет являться недостоверной.

Существует возможность сделать тоже самое что называется из коробки, без использования компонентов от Quest Software. В этом случае скрипт выглядит так:

function get-groupdn ($SAMName)
{
$root = [ADSI]”
$searcher = new-object System.DirectoryServices.DirectorySearcher($root)
$searcher.filter = “(&(objectClass=group)(sAMAccountName= $SAMName))”
$user = $searcher.findall(
if ($user.count -gt 1)
{
$count = 0
foreach($i in $user)
{
write-host $count “: ” $i.path
$count = $count + 1
}
$selection = Read-Host “Please select item: ”
return $user[$selection].path
}
else
{
return $user[0].path
}
}

function get-userdn ($SAMName)
{
$root = [ADSI]”
$searcher = new-object System.DirectoryServices.DirectorySearcher($root)
$searcher.filter = “(&(objectClass=user)(sAMAccountName= $SAMName))”
$user = $searcher.findall(
if ($user.count -gt 1)
{
$count = 0
foreach($i in $user)
{
write-host $count “: ” $i.path
$count = $count + 1
}
$selection = Read-Host “Please select item: ”
return $user[$selection].path
}
else
{
return $user[0].path
}
}

$ingroup = get-groupdn ‘tstgroupin’
$outgroup = get-groupdn ‘tstgroupout’
if ($ingroup -ne $null){
$GroupLDAPin = [adsi]$ingroup
}
if ($outgroup -ne $null){
$GroupLDAPout = [adsi]$outgroup
}
if (($GroupLDAPout -ne $null) -and ($GroupLDAPin -ne $null)){
$rez = compare-object $GroupLDAPin.member $GroupLDAPout.member
foreach($item in $rez){
if ($item.SideIndicator -eq “<=”){
write-host “LDAP://” + [string]$item.InputObject
$GroupLDAPout.Add(“LDAP://”+$item.InputObject)
}
if ($item.SideIndicator -eq “=>”){
write-host “LDAP://” + [string]$item.InputObject
$GroupLDAPout.Remove(“LDAP://”+$item.InputObject)
}
}
}

Разрешение определенных ActiveX только на определенных сайтах

Кому из Вас не надоедала FLASH реклама. Избавиться от нее достаточно просто, достаточно не устанавливать ActiveX компонент, который за воспроизведение отвечает или отключить его. Но на том же YouTube смотреть видео ве-таки хочется. В Internet Explorer 8 (на других не проверял) можно указать какому компоненту на каких сайтах можно работать. В меню идем по пути Tools->Internet Options->Programs->Manage add-ons. В списке находим например Shokwave Flash Object и выбираем его. Далее либо жмем More Information либо щелкаем правой кнопкой мыши по выбраному объекту и опять же выбираем More Information. В свойствах нас интересует Class ID выбранного объекта.

Хоть в свойствах и есть список сайтов, на которых мы можем разрешить выполнение указанного ActiveX, но инструментов для редактирования списка нет.
Для внесения изменений в список создаем файлик следующего содержания:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{D27CDB6E-AE6D-11CF-96B8-444553540000}\iexplore\AllowedDomains]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{D27CDB6E-AE6D-11CF-96B8-444553540000}\iexplore\AllowedDomains\vkontakte.ru]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{D27CDB6E-AE6D-11CF-96B8-444553540000}\iexplore\AllowedDomains\forum.od.ua]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{D27CDB6E-AE6D-11CF-96B8-444553540000}\iexplore\AllowedDomains\www.youtube.com]

Сохраняем его под любым именем с расширением reg и импортируем этот файл в реестр.

Пример файлика вот

Заходим в свойства объекта, как приведено выше и видим, что компонент может запускаться только на указанных сайтах