-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGet-DisabledComputersForest.ps1
More file actions
47 lines (40 loc) · 1.72 KB
/
Get-DisabledComputersForest.ps1
File metadata and controls
47 lines (40 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
param()
$ErrorActionPreference = 'SilentlyContinue'
try {
Import-Module ActiveDirectory -ErrorAction Stop
}
catch {
@{ Error = "Failed to load ActiveDirectory module: $($_.Exception.Message)" } | ConvertTo-Json
exit 1
}
$Results = @()
try {
$Forest = Get-ADForest -ErrorAction Stop
foreach ($DomainName in $Forest.Domains) {
try {
$Computers = Get-ADComputer -Filter { Enabled -eq $false } -Server $DomainName -Properties `
Name, OperatingSystem, OperatingSystemVersion, LastLogonDate, Created, Modified, `
Description, DNSHostName, Enabled, DistinguishedName -ErrorAction SilentlyContinue
foreach ($Computer in $Computers) {
$Results += [PSCustomObject]@{
Name = $Computer.Name
DNSHostName = $Computer.DNSHostName
OperatingSystem = $Computer.OperatingSystem
OperatingSystemVersion = $Computer.OperatingSystemVersion
Enabled = $Computer.Enabled
LastLogon = $Computer.LastLogonDate
Created = $Computer.Created
Modified = $Computer.Modified
Description = $Computer.Description
Domain = $DomainName
DistinguishedName = $Computer.DistinguishedName
}
}
} catch { }
}
}
catch {
@{ Error = "Failed to query computers: $($_.Exception.Message)" } | ConvertTo-Json
exit 1
}
@($Results) | ConvertTo-Json -Depth 3