Записываем в описание компьютера в active directory имя залогиненого на нем пользователя
Скриптов, реализующих подобный функционал куча, но ни один меня не устроил. Пришлось написать свой, путём домысливания и надёргивания кусков отовсюду. (Сорри авторам у которых надёргал, всех не упомнишь)
В принципе в коде всё понятно, можно обойтись и без комментариев. Единственное неочевидное место:
$DisplayName=(Get-ADUser ($LoggedonUserName.Split('\')[1])).name
Дело в том, что класс Win32_ComputerSystem отдаёт имя в формате domain\username, с помощью метода .Split я разбиваю строку на массив из двух элементов и беру из него второе значение.
Скрипт требует модуля ActiveDirectory, входящего в стандартную поставку.
#################################################### # SetCompADDescription.ps1 by diamon # 2013-03-27 # #Записывает в описание компьютера в active directory имя залогиненого на нем пользователя #################################################### cls Import-Module ActiveDirectory $Сomputers = Get-ADComputer -Properties OperatingSystem, Description, ManagedBy -Filter "OperatingSystem -NotLike '*server*'" foreach ($Сomputer in $Сomputers) { $СomputerName=$Сomputer.Name $Available = Get-WMIObject Win32_PingStatus -filter "Address='$СomputerName'" if ($Available.StatusCode -eq 0) { $LoggedonUserName = (Get-WMIObject -Class Win32_ComputerSystem -ErrorAction SilentlyContinue -ComputerName $СomputerName).UserName if ($LoggedonUserName -ne $null) { $DisplayName=(Get-ADUser ($LoggedonUserName.Split('\')[1])).name } else { $DisplayName=$null } Write-Host $Сomputer.Name,"`tDescription=",$Сomputer.Description,"`tLoggedUser=",$LoggedonUserName,"`tDisplayName=",$DisplayName if (($Сomputer.Description -ne $DisplayName) -and ($DisplayName -ne $null)) { Write-Host "`nОтсутствует (или устаревшее) описание`nМеняем на новое - ", $DisplayName, "`n" Set-ADComputer -Identity $Сomputer -Description $DisplayName } } else { Write-Host "$СomputerName недоступен" -ForegroundColor Red } }
Опубликовано diamon в Ср, 27/03/2013 - 17:52
This work is licensed under a Attribution Non-commercial No Derivatives Creative Commons license
Comments :
Отправить комментарий