Записываем в описание компьютера в 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
	}
}

2.92857
Средняя: 2.9 (14 голосов)
Ваша оценка: Нет

Comments :

Отправить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. If you have a Gravatar account associated with the e-mail address you provide, it will be used to display your avatar.
 
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <img>
  • Строки и параграфы переносятся автоматически.
  • Вы можете использовать подсветку исходного кода следующими тегами: <code>, <blockcode>. Поддерживаемые стили тегов: <foo>, [foo].
  • Поисковые системы будут индексировать и переходить по ссылкам на разрешённые домены.

Подробнее о форматировании