Некоторое время назад я писАл о расширении оболочки ADUC для получении имени зарегистрированного на компьютере пользователя. На этот раз публикую скрипт на PowerShell 2.0 для задания описаний компьютеров в AD на основании имени текущегозарегистрированного на нём пользователя и его номера телефона. Для снижения таймаута WMI взята и немного доработана конструкция Test-Host, благодаря чему достигается достаточно высокая скорость работы.
Для использования измените выделенное красным (OU и домен) для своего окружения.
Import-Module ActiveDirectory foreach ($comp in (Get-ADComputer -filter * -SearchBase "CN=Computers,DC=domain,DC=corp" | foreach {$_.name} )) { $ping = new-object System.Net.NetworkInformation.Ping trap {Write-Verbose "Ошибка пинга"; $False; continue} if ($ping.send($comp,50).Status -eq "Success" ) { $useroncomp = (Get-WmiObject -Class Win32_ComputerSystem -ComputerName $comp).username $lastuser = Get-ADUser ($useroncomp.split("\")[1]) -properties displayname, telephonenumber Set-ADComputer $comp -Description (($lastuser.DisplayName) + " (" + ($lastuser.telephonenumber) + ")") } else {Write-Host $comp "- недоступен"} }
[warning]Внимание! Скрипт работает только на Windows Server 2008 R2 и Windows 7, то есть там, где есть модуль Active Directory для PowerShell[/warning]



Комментарии
Оставить комментарий Оповещения с других блогов