PowerShell

PowerShell: Retrieve List of Domain-Computers by Operating System

As an administrator, you should have an overview of your Active Directory environment. Of course, this also includes user and computer accounts . In this blog post I will carry out some PowerShell commands to get a list of domain-computers filtered by operating system. I will successively retrieve all enabled Windows Servers, Windows Clients and Domain-Controllers and display them separately. Finally I will query all domain-computers and sort them by operating system. Let’s go.

I will use PowerShell. If you want to join in, open PowerShell (powershell.exe) or PowerShell ISE (ise.exe).

Retrieve all Windows Server Computer

To retrieve all enabled Windows Servers sorted by operatingsystem, we need to target the operating system attribute.


Get-ADComputer -Filter 'operatingsystem -like "*server*" -and enabled -eq "true"' `
-Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Sort-Object -Property Operatingsystem |
Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address

1.PNG

Retrieve all Windows Client Computer

Windows Client computer doesn’t have the term server in its operating system attribute. Therefore we simply change the code above and set the operating system query to -notlike server.


Get-ADComputer -Filter 'operatingsystem -notlike "*server*" -and enabled -eq "true"' `
-Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Sort-Object -Property Operatingsystem |
Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address

1.PNG

Retrieve all Domain-Controllers (no Member-Server)

To display all Domain-Controllers I decided to target on the computer account group membership. All Domain-Controllers are member of the group Domain-Controllers, which ID is 516.


Get-ADComputer -Filter 'primarygroupid -eq "516"' `
-Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Sort-Object -Property Operatingsystem |
Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address

1.PNG

Retrieve all Member-Server

To retrieve all servers that are not Domain-Controllers, run the following code.


Get-ADComputer -Filter 'operatingsystem -like "*server*" -and enabled -eq "true" -and primarygroupid -ne "516"' `
-Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Sort-Object -Property Operatingsystem |
Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address

1.PNG

Retrieve all Computer sorted by Operatingsystem

Last but not least, we retrieve all domain-computers by running the following code.


Get-ADComputer -Filter 'enabled -eq "true"' `
-Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Sort-Object -Property Operatingsystem |
Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address

1.PNG

Customize the output

For a nicer view you can add Out-Gridview at the end. This will open a graphical window. Or you want to save the output to a file. Then Out-File or ConvertTo-HTML can help.

Out-GridView


Get-ADComputer -Filter 'enabled -eq "true"' `
-Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Sort-Object -Property Operatingsystem |
Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Out-GridView

1.PNG

ConvertTo-Html | Out-File

If you want to save the output to a file, more precise in a HTML file, you can use ConverToHtml along with Out-File.


Get-ADComputer -Filter 'enabled -eq "true"' `
-Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Sort-Object -Property Operatingsystem |
Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
ConvertTo-Html | Out-File C:\Temp\listcomputer.htm

1.PNG

I hope I was able to help one or the other to get a documentation of his network, especially the Active Directory network.

See also

For a graphical menu of the topic, visit my blog post “Active Directory Domain Services Section”.

https://sid-500.com/2018/05/22/active-directory-domain-services-section-version-1-1/

1.PNG

18 replies »

  1. SICK reporting any chance it can auto create reports in csv/html as powershell runs out of space to display the many thousands of entries – too much to parse i guess?

    Like

  2. How doe i filter servers with no ip adress like
    Get-ADComputer -Filter ‘operatingsystem -like “*server*” -and enabled -eq “true” -and Ipv4Address -eq “10.0*”‘ `
    -Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
    Sort-Object -Property Operatingsystem |
    Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address

    Like

  3. Maybe someone know how to add to that commend windows key i need to know list servers witn assigned keys.

    Like

    • Get-ADComputer -Filter ‘OperatingSystem -like “*windows*”‘ -Properties Name,IPv4Address,OperatingSystem,LastLogonDate,CanonicalName | ft Name,IPv4Address,OperatingSystem,LastLogonDate,CanonicalName -AutoSize | Export-Csv -Path “c:\temp\windows.csv” -NoTypeInformation

      csv will show the blanks at the bottom

      Like

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.