-
Notifications
You must be signed in to change notification settings - Fork 0
/
Get-AdAssessment.ps1
58 lines (48 loc) · 1.72 KB
/
Get-AdAssessment.ps1
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
48
49
50
51
52
53
54
55
56
57
58
<#
.SYNOPSIS
Reports domain and server configuration data
.DESCRIPTION
Used to document Active Directory and Windows server configurations.
Saves workbook is same directory as script. This script requires the ImportExcel module for PowerShell.
https://github.com/dfinke/ImportExcel
https://www.powershellgallery.com/packages/ImportExcel/4.0.11
.PARAMETER ClientName
Required parameter.
Client name will be appended to the exported file name
.EXAMPLE
.\Get-ServerData 'Company Name'
.OUTPUTS
Company Name_AdAssessment.xlsx
.NOTES
#>
Param
(
[Parameter(Mandatory=$true)]
[string]$ClientName
)
Import-Module activedirectory
## variables
$domain = Get-ADDomain
$forest = Get-ADForest
$DCs = Get-ADDomainController -Filter *
$servers = Get-ADComputer -LDAPFilter "(&(objectcategory=computer)(OperatingSystem=*server*))"
$path = $ClientName + '_AdASsessment.xlsx'
$arr01 = @()
## functions
function Get-Servers {
foreach($server in $servers)
{
$name = $server.Name
if(Test-Connection $name -Count 1 -Quiet)
{
#roles
Get-ADComputer -Filter {Name -eq $name} -Properties * | Select-Object Name,OperatingSystem,@{n="IP Address";`
e={$_.IPv4Address}} | fl
$roles = Get-WindowsFeature | Where-Object {$_.Installed -and $_.DisplayName -notlike "*tools*"} | `
Where-Object {$_.displayName -notlike "*shell*"} | Where-Object {$_.displayName -notlike "*.net*"} | `
Where-Object {$_.displayName -notlike "*64*"} | `
Where-Object {$_.displayName -notlike "*support*"}
#$roles.displayname
}
}
}