Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


draft:dmitriy-isupov:add_info_machines

Связать уч запись машины с пользователем

#Путь к OU, если нужен весь домен то закоментить
$OU_PATCH = "LDAP://OU=test,OU=Company,OU=test_region,DC=domain_name"
#######################
 
#Запрос машин
$search = New-Object system.DirectoryServices.DirectorySearcher
$search.Filter = "(&(objectCategory=computer)(!userAccountControl:1.2.840.113556.1.4.803:=2)(!operatingSystem=*Server*))" 
if ($OU_PATCH -ne $NUll){$search.SearchRoot = [ADSI] $OU_PATCH}
$search.PageSize = 25000
###
 
#Запрос пользователей
$dom = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$root = $dom.GetDirectoryEntry()
$search_user = [System.DirectoryServices.DirectorySearcher]$root
###
 
 
$Hst_all = $search.Findall() | %{$_.path}
 
$Count_hst = $Hst_all.count
$Hst_all_count = $Hst_all.count
 
foreach ($HST in $Hst_all){
$HST_DN = $HST -replace 'LDAP://CN=' -replace ',OU.+$'
 
	#Пинг машины
	if((Test-Connection -ErrorAction SilentlyContinue $HST_DN -Count 1)){
 
	$userName = $Null
	$userName = (Get-WmiObject Win32_ComputerSystem –Computer $HST_DN).UserName -replace "^.+\\"
 
		if ($userName -ne ""){
		write-host $Hst_all_count / $Count_hst : $HST_DN - $userName
 
		$search_user.Filter = "(&(!objectCategory=computer)(sAMAccountName=$userName))"
		$user_path =  ( $search_user.Findone() | %{$_.path})
		$Obj = [ADSI] $user_path
 
		#получаем переменные пользовтеля
		Clear-Variable usr_* -Force
		[string]$usr_Company = $obj.Company
		[string]$usr_DName = $obj.distinguishedName
		[string]$usr_cn = $obj.cn
 
		#Записываем переменные компьютеру
		$obj = [ADSI] $HST
 
		if ($usr_Company -ne ""){ $obj.company = $usr_Company;$obj.setinfo() }
 
		if ($usr_DName -ne ""){ $obj.managedBy = $usr_DName;$obj.setinfo() }
 
		if ($usr_cn -ne ""){ $obj.description = $usr_cn;$obj.setinfo() }
 
 
		}ELSE{write-host -ForegroundColor yellow $Hst_all_count / $Count_hst : $HST_DN - not user logon}
 
 
 
	}ELSE{write-host -ForegroundColor yellow $Hst_all_count / $Count_hst : $HST_DN - not connect}
 
 
$Count_hst --
}

Из особенностей могу отметить, скрипт заполняет атрибут «managedBy» после чего в консоле «DSA» уч запись машины связывается с уч записью пользователя.

draft/dmitriy-isupov/add_info_machines.txt · Последнее изменение: 09.10.2018 08:12 — Дмитрий Исупов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki