PowerShell: List All Subnets in Sites & Services

Как получить список всех подсетей в сайте AD.

Скрипт написан Джоном Догерти (John Dougherty)

PowerShell: List All Subnets in Sites & Services

## Get a list of all domain controllers in the forest
$DcList = (Get-ADForest).Domains | ForEach { Get-ADDomainController -Discover -DomainName $_ } | ForEach { Get-ADDomainController -Server $_.Name -filter * } | Select Site, Name, Domain

## Get all replication subnets from Sites & Services
$Subnets = Get-ADReplicationSubnet -filter * -Properties * | Select Name, Site, Location, Description

## Create an empty array to build the subnet list
$ResultsArray = @()

## Loop through all subnets and build the list
ForEach ($Subnet in $Subnets) {

$SiteName = “”
If ($Subnet.Site -ne $null) { $SiteName = $Subnet.Site.Split(‘,’)[0].Trim(‘CN=’) }

$DcInSite = $False
If ($DcList.Site -Contains $SiteName) { $DcInSite = $True }

$RA = New-Object PSObject
$RA | Add-Member -type NoteProperty -name “Subnet” -Value $Subnet.Name
$RA | Add-Member -type NoteProperty -name “SiteName” -Value $SiteName
$RA | Add-Member -type NoteProperty -name “DcInSite” -Value $DcInSite
$RA | Add-Member -type NoteProperty -name “SiteLoc” -Value $Subnet.Location
$RA | Add-Member -type NoteProperty -name “SiteDesc” -Value $Subnet.Description

$ResultsArray += $RA


## Export the array as a CSV file
$ResultsArray | Sort Subnet | Export-Csv -Encoding UTF8 .\AD-Subnets.csv -nti


Find all domain controllers in domain

Получить список всех контроллеров домена.

Using powershell one can find all domain controllers in domain using:

1. a LDAP filter:

Get-ADComputer -LDAPFilter “(&(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=8192))”

2. “Domain controllers” group and retreive his memebers:

Get-ADGroupMember ‘Domain Controllers’

3. Get-ADDomainController cmdlet:

Get-ADDomainController -Filter * | Select-Object name

Как удалить профиль пользователя (Windows)

Open up “Control Panel | System and Security | System”
In the dialog click on “Advanced system settings” (requires Admin rights)
The “System Properties” dialog will be displayed
Make sure you are in the “Advanced” register
In the “User Profiles” section click on “Settings”
The “User Profiles” dialog is displayed
Select the account. Hit Delete.

Start | Run
switch to register “Advanced”
In the “User Profiles” section click on “Settings”
The “User Profiles” dialog is displayed
Select the account. Hit Delete.
The greyed out button possibly means that the registry hive has not been released by the operating system, as pointed out by @joeqwerty in the comments.

You could always delete the C:\Users\[ACCOUNT] directory, but that leaves some registry entries behind that have to be manually deleted.

Deleting the Registy Keys

Open Regedit with Administrator Permissions (Runas Administrator)
Select the HKEY_USERS branch
Search for the Domain Account without the domain (e.g. login = DOMAIN\ACCOUNT then search for ACCOUNT)
Keep on searching until the status bar shows Computer\HKEY_USERS\[SID]\Software\Microsoft\Windwos\CurrentVersion\Explorer\Shell Folders
There should be a large list of your ACCOUNTs folders e.g. C:\Users\ACCOUNT\Desktop
You are in the right HKEY_USERS\[SID]\Software\Microsoft\Windwos\CurrentVersion\Explorer\Shell Folders branch if the ACCOUNT in “Shell Folders” matches the ACCOUNT you just manually deleted form the C:\Users\[ACCOUNT] directory. This branch [SID] can be exported and/or deleted to clean up the last of the user profile.


Спасибо hot2use.



Ищем свободный IP из диапозона

Очень пригодилось, огромное спасибо!


function Ping-Address {
    $ping = 'unreachable'
    $formatstring = "{0,-15}  {1,-12} {2}"
    $queryString  = "SELECT * FROM Win32_PingStatus"
    $queryString += " WHERE Address = '$_' AND"
    $queryString += " ResolveAddressNames = $true"
    $results = Get-WmiObject -query $queryString
    foreach ($result in $results) {
      if ($results.StatusCode -eq 0) {
        $ping = 'ping!'
    $formatstring -f $_,$ping,$results.ProtocolAddressResolved
И далее
PS Z:\> (14..20) | %{ '132.198.59.'+ $_.ToString()} | Ping-Address    ping!    ping!    ping!        xxxxxxx.campus.ad.uvm.edu    ping!        xxxxxxx.uvm.edu    unreachable    ping!        xxxx.uvm.edu    unreachable


Best practices for DNS settings on DC and domain members.

Best practices for DNS settings on DC and domain members.

Украдено тут https://abhijitw.wordpress.com/2012/03/03/best-practices-for-dns-client-settings-on-domain-controller/

The following information explains the Best practices for DNS client settings on Domain Controller and Domain Member.

Domain controller with DNS installed:
On a domain controller that also acts as a DNS server, recommended that you configure the domain controller’s DNS client settings according to these specifications:

IP configuration on domain controller:

  • In single DC/DNS in a domain environment,  DC / DNS server points to its private IP address (not to loopback 127.x.x.) as preferred DNS server in TCP/IP property.
  • If multiple DCs that’s the DNS servers are in a domain environment, recommendation to have all DCs point to ANOTHER/REMOTE DC’s IP address as preferred DNS and then point to it’s private IP address as an alternate DNS.
  • Each DC has just one IP address and one network adapter is enabled (disable unused NICs).
  • IPv6 should not be disabled on DC’s NIC card. Set it to “obtain IPV6 address automatically” and “obtain DNS server address automatically”
  • If multiple NICs (enabled and disabled) are present on server, make sure the active NIC should be on top in NIC binding.
  • Contact your ISP and get valid DNS IPs from them and add it in to the forwarders, Do not set public DNS server in TCP/IP settings of DC.

How to set/view the NIC bind order in Windows

IP configuration on domain member:

  • Each workstation/member server should point to local DNS server as preferred DNS and remote DNS servers as an alternate DNS server in TCP/IP property.
  • Do not set public DNS server in TCP/IP setting of domain member.

Once you are done with above, run “ipconfig /flushdns & ipconfig /registerdns“, restart DNSserver and NETLOGON service on each DC.

Quick note: MULTIHOMED domain controller is not recommended, it always results in multiple problems.

  • Being a VPN Server and even simply running RRAS makes it multi-homed.
  • Domain Controllers with the PDC Role are automatically Domain Master Browser. Master Browsers should not be multi-homed

Active Directory Communication Fails on Multihomed Domain Controllers http://support.microsoft.com/default.aspx?scid=kb;en-us;272294

Symptoms of Multihomed Browsers

Reference: http://support.microsoft.com/kb/825036

Как найти активные учетки в домене.

Ниже самый простой и доступный способ.

Активные и отключенные пользователи домена Active Directory

Открываем «Active Directory – пользователи и компьютеры», выбираем «Сохраненные запросы». Создаем запрос, задаем Имя и Описание, нажимаем «Запрос», выбираем «Пользовательский поиск», переходим в «Дополнительно» и вставляем текст запроса.

Включенные (незаблокированные) учетные записи в домене

Отключенные (заблокированные) учетные записи в домене


Используем dsquery

Так же возможно использовать системную утилиту dsquery, но активных пользователей она не показывает, только отключенных

dsquery user -inactive 12 -limit 10000


Украдено тут https://rtzra.ru/wiki/software/microsoft/ad-users

проблемы установки W8.1/W10

Достаточно часто сталкиваюсь со следующей проблемой установки ОС

“We couldn’t create a new partition or locate an existing one. For more information, see the Setup log files.”

“Программе установки не удалось создать новый или найти существующий системный раздел“


  1. Грузим инсталятор с флехи
  2. Практический в любой момент жмемshift+f10, попадаем в командную строку
  3. Запускаемdiskpart.exe (что писать в командной строке дальше пишу жирным)
  4. В этой программе выполняем следующие действия:
    1. select disk=0. Подразумевается, что диск 0 это то, куда Вы ставите винду и там нет ничего полезного. Иначе 10 раз подумайте и почитайте справку по утилите diskpart.
    2. create partition primary size=xxx, где ххх это не залить раздел картинками с голыми тётями, а размер будущего диска С, куда Вы будете ставить ОС.
    3. select partition=1
    4. active(сделали раздел активным)
    5. format fs=ntfs quick(быстрое форматирование в NTFS)
    6. assign. Сделали на винте диск, подключили его и готовы с ним дальше работать
    7. exit, вышли из программы diskpart.
  5. Идем на флешку (привод), где у нас дистрибутив винды. В моем случае это “cd d:“.
  6. Копируем все, что там есть, на наш краснознаменный диск С:.xcopy d: c: /e /h /k
  7. Идем в подкаталог boot дистрибутива винды.cd boot
  8. Используем утилиту bootsect для создания загрузочного кода на диске С, так:bootsect /nt60 c:Что мы сделали? Мы сделали… мнэ… инсталяционный жесткий диск с Windows.
  9. Вытаскивает флешку и ребутим комп. Ставим винду. С диска С: на диск С:. Потом дистрибутивные файлы можно будет потереть.
  10. После установки уберем лишний пункт с меню загрузки (Windows Setup)
    1. Запускаемcmd.exe от имени администратора
    2. Смотрим список пунктов меню загрузкиbcdedit
    3. Находим Windows Setup и копируем его identifier
    4. Запускаем bcdedit /delete {identifier}

украдено тут