---
title: "PowerShell. Поиск неиспользуемых учётных записей пользователей и компьютеров в домене."
description: "Очень часто админ сталкивается с задачей выявления неиспользуемых учётных записей и компьютеров в до..."
author: "anonops"
published: "2016-10-19T04:08:16+00:00"
modified: "2016-10-19T04:13:30+00:00"
locale: "ru"
canonical_url: "https://yvision.kz/post/powershell-poisk-neispolzuemyh-uchetnyh-zapisey-polzovateley-i-kompyuterov-v-domene-718031"
markdown_url: "https://yvision.kz/post/powershell-poisk-neispolzuemyh-uchetnyh-zapisey-polzovateley-i-kompyuterov-v-domene-718031/markdown"
site_name: "Yvision.kz"
---

# PowerShell. Поиск неиспользуемых учётных записей пользователей и компьютеров в домене.

> Очень часто админ сталкивается с задачей выявления неиспользуемых учётных записей и компьютеров в до...

Очень часто админ сталкивается с задачей выявления неиспользуемых учётных записей и компьютеров в домене.

Решение казалось бы есть, тот же Manage Engine AD Manager и ему подобные, НО! Мы ведь лёгких путей не ищем)

И так:

**Вывод списка компьютеров, не имевших входа в домен более 6 месяцев:**

get-adcomputer -properties lastLogonDate -filter * | where { $_.lastLogonDate -lt (get-date).addmonths(-6) } | FT Name,LastLogonDate

**Отсортируем немного вывод для удобочитаемости:** get-adcomputer -properties lastLogonDate -filter * | where { $_.lastLogonDate -lt (get-date).addmonths(-6) } | sort Name | FT Name,LastLogonDate

У**даление всех учетных записей компьютеров с отсутствием входа более 6 месяцев (мой совет, не копипастите этот командлет без осознания содеянного):** get-adcomputer -properties lastLogonDate -filter * | where { $_.lastLogonDate -lt (get-date).addmonths(-6) } | Remove-ADComputer

**Поиск отключенных аккаунтов пользователей с выводом примерной даты отключения (последнего входа этого пользователя в домен)** Search-ADAccount -accountdisabled | where {$_.lastlogondate -lt (get-date).addmonths(-12)} | FT Name,LastLogonDate

**Другие полезные примеры:**

**Просмотр всех учетных записей компьютеров в домене:** Get-ADComputer –Filter {Name –Like "*"}

**Просмотр всех компьютеров не имевших вход 90 дней:** Search-ADaccount -AccountInactive -Timespan 90 -ComputersOnly

или

$lastLogon = (get-date).adddays(-90).ToFileTime() Get-ADComputer -filter {lastLogonTimestamp -gt $lastLogon}

**Поиск и удаление всех отключенных аккаунтов компьютеров в AD** Search-ADAccount -AccountDisabled -ComputersOnly | Sort-Object | Remove-ADComputer

**Поиск и удаление отключенных аккаунтов компьютеров в определенном OU** Search-ADAccount -AccountDisabled -Searchbase "OU=IT,DC=Contoso,DC=Com" -ComputersOnly | Sort-Object | Remove-ADComputer

**Поиск и удаление всех компьютеров из AD не имеющих входа с 15.10.2010** Search-ADAccount -AccountInactive -DateTime "15.10.2010" –ComputersOnly | Sort-Object | Remove-ADComputer

**Вывод списка отключенных учетных записей компьютеров** Search-ADAccount -AccountDisabled -ComputersOnly | Format-Table Name

**Перемещение объекта "Компьютер" в другой OU (например: Computer=CLIENT1 в OU=IT )** Get-ADComputer CLIENT1 | Move-ADObject -TargetPath "OU=IT,DC=Contoso,DC=Com"

**Просмотреть детали учетной записи компьютера (для примера Computer=CLIENT1)** Get-ADComputer -Filter {Name -Like "CLIENT1"}

**Вывод всех свойств учетной записи компьютера (для примера Computer=CLIENT1)** Get-ADComputer "CLIENT1" -Properties *

**Вывод списка компьютеров (Имя, Операционная система, Сервис-Пак, Версия ОС)** Get-ADComputer -Filter * -Property * | Format-Table Name,OperatingSystem,OperatingSystemServicePack,OperatingSystemVersion -Wrap –Auto

**Экспорт списка комьютеров (Имя, Операционная система, Сервис-Пак, Версия ОС) в CSV-файл** Get-ADComputer -Filter * -Property * | Select-Object Name,OperatingSystem,OperatingSystemServicePack,OperatingSystemVersion | Export-CSV AllWindows.csv -NoTypeInformation -Encoding UTF8

**Получение DNS имени и IP-адреса** Get-ADComputer -Filter {Name -Like "Computer-Name"} -Properties IPv4Address | Format-List Name,DnsHostName,IPv4Address

**Список всех компьютеров в определенном (для примера OU=IT, Domain=domain.com)** Get-ADComputer -SearchBase "OU=IT,DC=domain,DC=Com" -filter *

**Получение списка всех компьютеров без DNS суффикса** Get-ADComputer -filter "DnsHostName -notlike '*.domain.Com'"

**Получение SPNs (Service Principal Name) компьютера** Get-ADComputer "Computer-Name" –Properties ServicePrincipalNames | Select-Object –Expand ServicePrincipalNames

**Получение Сида (SIDs) компьютера** Get Computers Security Identifiers (SIDs) Get-ADComputer -Filter {Name -like "*"} | Select Name,SID | Format-Table -Auto

**Список компьютеров созданных за последние 90 дней** Get-ADComputer -Filter * -Properties whenCreated | ? { ((Get-Date) - $_.whenCreated).Days -lt 90} | Format-Table Name,WhenCreated,Name,DistinguishedName -Autosize -Wrap

**Список компьютеров созданных 1 декабря 2011 (12/01/2011)** Get-ADComputer -LDAPFilter "(&(objectCategory=person)(whenCreated>=20111201000000.0Z))" -Properties whenCreated | Format-Table Name,whenCreated,distinguishedName -Autosize -Wrap

**Список компьютеров созданных в интервал времени, например между 10/01/2011 и 12/01/2011** $Start = Get-Date -Day 01 -Month 10 -Year 2011 -Hour 00 $End = Get-Date -Day 01 -Month 12 -Year 2011 -Hour 23 -Minute 59 Get-ADComputer -Filter * -Properties whenCreated | ? { ($_.whenCreated -gt $Start) -and ($_.whenCreated -le $End) } | Format-Table Name,WhenCreated,DistinguishedName -Autosize -Wrap

**Работа с группами:**

**Просмотра всех участников группы (для примера: Group=Experts)** Get-ADGroupMember Experts | Format-Table Name

**Вывод списка свойств для группы (для примера: Group=IT)** Get-ADGroup IT -Properties *

**Список только универсальных групп (Universal Security groups)** Get-ADGroup –LDAPFilter "(&(objectCategory=group)(groupType:1.2.840.113556.1.4.803:=-2147483640))"

**Список глобальных групп (Global Security groups)** Get-ADGroup –LDAPFilter "(&(objectCategory=group)(groupType:1.2.840.113556.1.4.803:=-2147483646))"

## Также интересно:

**Список локальных групп в домене (Local Security groups)** Get-ADGroup –LDAPFilter "(&(objectCategory=group)(groupType:1.2.840.113556.1.4.803:=-2147483644))"

**Узнать список групп в которые включен пользоатель (для примера: User=EdPrice)** Get-ADAccountAuthorizationGroup EdPrice

**Перемещение группы в другой OU (для примера: Group=Experts, Old-OU=IT, New-OU=Service, Domain=Contoso.com)** Move-ADObject "CN=Experts,OU=IT,DC=Contoso,DC=com" -TargetPath "OU=Service,DC=Contoso,DC=com"

**Добавление пользователя в группу (для примера: Group=Experts, User=EdPrice)** Add-ADGroupmember Experts -Member EdPrice

**Удаление группы (для примера: Group=Experts)** Remove-ADGroup Experts

**Удаление пользоателя из группы (для примера Group=Experts, User=EdPrice)** Remove-ADGroupMember Experts -Member EdPrice

**Установить описание для группы (для примера Group=JoinPC, Description=This group is allowed join PCs to Domain)** Set-ADGroup JoinPC -Description "This group is allowed join PCs to Domain"

**Работа с OU**

**Все OU (Organization Unit или Подразделение) в домене** Get-ADOrganizationalUnit -Filter {Name -like „*“} | FT Name, DistinguishedName -A

**Создание OU (для примера OU=IT, Domain=domain.com)** New-ADOrganizationalUnit -Name IT -Path "DC=Domain,DC=Com"

**Содержание определенного OU (для примера: OU=IT, Domain=Contoso.com)** Get-ADObject -Filter {Name -Like "*"} -Searchbase "OU=IT,DC=Contoso,DC=Com"

**Удаление OU (для примера: Old-Name=IT, New-Name=Admin, Domain=Contoso.com)** Rename-ADObject "OU=IT,DC=Contoso,DC=Com" -NewName Admin

**Удаление содержимого OU (для примера: OU=IT, Domain=Contoso.com)** Remove-ADOrganizationalUnit IT -Recursive

**Удаление пользователя из определенного OU (для примера: User=EdPrice, OU=IT, Domain=Contoso.com )** Remove-ADObject "CN=EdPrice,OU=IT,DC=Contoso,DC=Com"

**Перемещение всех объектов из одного OU в другой (для примера: Old-OU=IT, New-OU=Manager, Domain=Contoso.com)** Get-ADObject -Filter {Name -Like "*"} -Searchbase "OU=IT,DC=Contoso,DC=Com" -SearchScope OneLevel | Move-ADObject -TargetPath "OU=Manager,DC=Contoso,DC=Com"

**Работа с пользователями**

**Список всех пользователей домена** Get-ADUser –Filter *

**Список пользователей определенного OU (для примера: OU=IT, Domain=Contoso.com)** Get-ADUser –Filter * -Searchbase "OU=IT,DC=Contoso,DC=Com" | FT

**Список всех пользователей из определенного города (поле City)** Get ADUser -Filter {city - like "NewYork"} | FT

**Список отключенных аккаунтов пользователей домена**

Search-ADAccount –AccountDisabled –Usersonly | FT Name

**Список всех пользователей, чье имя начинается на Ed** Get-ADUser –Filter {givenName –Like "Ed"} | FT

**Список пользователей, чья фамилия Prince** Get-ADUser –Filter {Surname –Like "Price"} | FT

**Список аккаунтов пользоатлей определенного департамента (поле Department)** Get-ADUser –Filter {Department –Like "Support"} | FT

**Список членства в группах определенного пользователя (для примера:** Get-ADPrincipalGroupMembership -Identity Richard

**Поиск пользователей входящих в определенную группу и перемещение их в другой OU (для примера: Group=People, Target OU=NewYork, Domain=Contoso.com)** Get-ADGroupMember People -Recursive | Move-ADObject –TargetPath "OU=NewYork,DC=Contoso,DC=Com"

 

**Удаление всех пользователей OU в определенную группу (для примера: Group=People, OU=NewYork, Domain=Contoso.com)** $Users = Get-ADUser -Filter * -Searchbase "OU=NewYork,DC=Contoso,DC=Com" Remove-ADGroupMember -Identity People -Member $Users -Confirm:0

---

Source: [https://yvision.kz/post/powershell-poisk-neispolzuemyh-uchetnyh-zapisey-polzovateley-i-kompyuterov-v-domene-718031](https://yvision.kz/post/powershell-poisk-neispolzuemyh-uchetnyh-zapisey-polzovateley-i-kompyuterov-v-domene-718031)