ShS's Blog

Just another sysadmin's weblog

Скрипт для записи в атрибут Description объекта-компьютера в AD имени текущего «залогоненного» пользователя. Дубль два.

Posted by shs на 2010/01/31

Сегодня опубликую скрипт на PowerShell, поэтому «буду краток» (с) ;) Ниже приведен скрипт, который выполняет те же самые действия (и даже чуть больше), что и скрипт на VBScript в предыдущем посте.

####################################################
# SetSompDesc.ps1 20090112 ShS
#
#Записываем в атрибут Description каждого объекта Computer, имя, залогоненого на нем пользователя
####################################################
cls
#Функция возращает true, если заданный хост пингуется и false  - в противном случае (спасибо Xaerg'у)
function Test-Host ($Name)
{
    $ping = new-object System.Net.NetworkInformation.Ping
    trap {Write-Verbose "Ошибка пинга"; $False; continue}
    if ($ping.send($Name).Status -eq "Success" ) { $True }
    else { $False }
}
#Filter Where-Online
#{
#    $ping = new-object System.Net.NetworkInformation.Ping
#    trap {Write-Verbose "Ошибка пинга"; Continue}
#    if ($ping.send($_).Status -eq "Success" ) { $_ }
#}
#
#Зададим корневое OU, с которого будет начат поиск компьютеров
$SearchRoot="dom.local/ORG/Workstations"
#

 $Comps = Get-QADComputer -ErrorAction SilentlyContinue -SearchRoot $SearchRoot -SizeLimit 0 #|Select-Object -property "Name","Description"
 foreach ($Comp in $Comps) 
 {
  if (Test-Host $Comp.Name) 
     {
    $LoggedonUserName = (gwmi Win32_ComputerSystem -ErrorAction SilentlyContinue -ComputerName $Comp.Name).UserName
    Write-Host "CompName=",$Comp.Name, "  CompDescription=", $Comp.Description, "  LoggedonUser=", $LoggedonUserName
    if (($Comp.Description -ne $LoggedonUserName) -and ($LoggedonUserName -ne $null))
        {
        Write-Host "`nОтсутствует (или устаревшее) описание компа!`nМеняем на новое...`n`n"
        Set-QADObject $Comp.DN -Description $LoggedonUserName | Out-Null
        }
     }
 }

В отличие от своего предшественника (скрипта на VBScript), этот скрипт сначала проверяет доступность компьютера при помощи ping’а и, лишь затем, опрашивает удаленный компьютер для выяснения имени «залогонненого» на нем пользователя.
Скрипт использует командлеты ActiveRoles Management Shell for Active Directory от Quest Software.

Реклама

комментариев 6 to “Скрипт для записи в атрибут Description объекта-компьютера в AD имени текущего «залогоненного» пользователя. Дубль два.”

  1. […] […]

  2. […] […]

  3. test said

    kruto…
    tolko u menja nerabotaet…
    chto mne delat?

    • shs said

      На вопрос «у меня что-то не рабоает. что делать?», обычно отвечают: «надо что-то починить».

      что конкретно «не работает»? и как не рабоатет? Сообщения об ошибке где? (не вижу)

  4. Михаил said

    Повершелл ругается, Win2012

    Get-QADComputer : Имя «Get-QADComputer» не распознано как имя командлета, функции, файла сценария или выполняемой прогр
    аммы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку.
    строка:9 знак:11
    + $Comps = Get-QADComputer -ErrorAction SilentlyContinue -SearchRoot $SearchRoot …
    + ~~~~~~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (Get-QADComputer:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

    • shs said

      это от того, что вы мой скрипт использует не штатные командлеты, а QAD-командлеты от Quest software (ныне принадлежат Dell, но по-прежнему бесплатны). Вам необходимо скачать и установить их, а затем подгрузить соответствующий snapin для того, чтобы скрипт заработал.

      ЗЫ Мой бложек перехал и теперь располагается по адресу http://shserg.ru

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

 
%d такие блоггеры, как: