|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Присвоить каждому компьютеру инвентарный номер на основе сайта и порядка |
|
PowerShell - [решено] Присвоить каждому компьютеру инвентарный номер на основе сайта и порядка
|
Пользователь Сообщения: 122 |
Профиль | Отправить PM | Цитировать Есть множество сайтов: MSK, SPB, NSK (около 20)
На каждом сайте есть около сотни компьютеров в AD Необходимо каждому компьютеру присвоить инвентарный номер формата: (001,002,003...), при этом на каждом сайте номера начинаются заново с 001 У каждого компьютера есть свойство в AD - @{extensionAttribute1 = MSK}(или spb или nsk) а @{extensionAttribute2 = 001} Нужно, чтобы скрипт каждому компьютеру выдал порядковый номер на основании атрибута1 и самое сложное: если компьютер в атрибуте2 уже содержит порядковый номер то он не выдавал этот номер другому компьютеру Например: Имя Атрибут1 Атрибут2 Comp1, MSK, ea2=004 Comp2, MSK, ea2=<пусто> Comp3, MSK, ea2=001 Comp4, MSK, ea2=<Непонятная строка> Comp5, SPB, ea2=<пусто> Comp6, SPB, ea2=001 ... После прохождения скрипта: Имя Атрибут1 Атрибут2 Comp1, MSK, ea2=004 Comp2, MSK, ea2=002 Comp3, MSK, ea2=001 Comp4, MSK, ea2=003 Comp5, SPB, ea2=002 Comp6, SPB, ea2=001 |
|
Отправлено: 09:26, 28-08-2018 |
Пользователь Сообщения: 122
|
Профиль | Отправить PM | Цитировать Kazun, Так мы же про автоматизацию, имена компьютеров сложные и содержат инфу из компьютера, там серийники, типы итп, чтобы ручками ничего не нужно было делать, помоги пожалуйста...
|
Отправлено: 10:47, 29-08-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Т.к. локальный комптьютер не в домене, то требуется указать $DomainDN,$Site для которого осуществляется поиск и учетную запись,которая имееет доступ к Active Directory.
# Атрибуте1(берется из переменной(ее получает другой скрипт)) $site = "...." #Учетные данные для подключения к Active Directory $Credential = New-Object System.Management.Automation.PSCredential('UserName', (ConvertTo-SecureString 'Password' -Force -AsPlainText)) # Создаем ADSI Search $Searcher = New-Object System.DirectoryServices.DirectorySearcher $Searcher.PropertiesToLoad.Add('extensionAttribute2') # Только данные из текущего сайта $Searcher.Filter = "(extensionAttribute1=$site)" # Домен для подключения $DomainDN = "LDAP://corp.contoso.com/DC=corp,DC=contoso,DC=ru" # Подключение $Domain = New-Object System.DirectoryServices.DirectoryEntry($DomainDN ,$Credential.UserName,$Credential.GetNetworkCredential().Password) # Устанавливаем текущие данные подключения $Searcher.SearchRoot = $Domain # Делаем поиск $All = $Searcher.FindAll() $ex2 = $All | Where {$_.Properties["extensionAttribute2"][0] -match "^\d{3}$"} | Foreach {$_.Properties["extensionAttribute2"][0]} # Получаем свободный ID $Start = 0 do { $Start++ $FreeId = "$Start".PadLeft(3,'0') } while($ex2 -contains $FreeId) $FreeID |
Последний раз редактировалось Kazun, 29-08-2018 в 11:45. Причина: () Отправлено: 11:29, 29-08-2018 | #12 |
Пользователь Сообщения: 122
|
Профиль | Отправить PM | Цитировать |
Отправлено: 11:44, 29-08-2018 | #13 |
Пользователь Сообщения: 122
|
Профиль | Отправить PM | Цитировать Так ведь будет работать?:
$site = "SPB" $server = "dc1" а учетные данные подтягиваются из unattened файла $All = Get-ADComputer -Filter * -Properties extensionAttribute1,extensionAttribute2 -server $server | where {$_.extensionAttribute1 -eq $site} # Делаем поиск #$All = $Searcher.FindAll() $ex2 = $All | Where {$_.extensionAttribute2 -match "^\d{3}$"} | Foreach {$_.extensionAttribute2} # Получаем свободный ID $Start = 0 do { $Start++ $FreeId = "$Start".PadLeft(3,'0') } while($ex2 -contains $FreeId) $FreeID |
Отправлено: 12:51, 29-08-2018 | #14 |
Пользователь Сообщения: 122
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:25, 10-09-2018 | #15 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2013 - Ссылка на ячейки другого листа, с возможностью изменения порядка ячеек | btescm | Microsoft Office (Word, Excel, Outlook и т.д.) | 5 | 04-09-2014 23:16 | |
http/web - [решено] присвоить каждому домену свою папку <Apache> | morgan1991 | Сетевые технологии | 2 | 13-12-2010 15:18 | |
7 / 2008 R2 - [решено] Присвоить имя компьютеру | Hector | Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista | 5 | 24-04-2010 01:51 | |
Доступ - Много пользователей на компе (каждому своя папочка)? | arsysha | Microsoft Windows 2000/XP | 8 | 09-09-2009 00:50 |
|