Private/Add-Description.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
function Add-Description 
{
    Param(
        [Parameter(Mandatory = $true)]
        [Alias("DescriptionPath")]
        $pathToDescription,
        [ValidateSet("Organisational Unit", "Group", "User", "GPOPolicy", "FineGrainedPasswordPolicy","Computer")]
        [String] $descriptionType
    )

    $descriptionFileContent = Get-Content $pathToDescription | ConvertFrom-Json
    $descriptionObject=$null
    if ($descriptionType -like "Organisational Unit")
    {
        $descriptionObject=$descriptionFileContent[0].Elements.PSObject.Properties | ForEach-Object {
        "$($_.Name) - $($_.Value)"
        }
    }
    elseif ($descriptionType -like "Group") {
        $descriptionObject = $descriptionFileContent[1].Elements.PSObject.Properties | ForEach-Object {
            "$($_.Name) - $($_.Value)"
        }
    }
    elseif ($descriptionType -like "User") {
        $descriptionObject = $descriptionFileContent[2].Elements.PSObject.Properties | ForEach-Object {
            "$($_.Name) - $($_.Value)"
        }
    }
    elseif ($descriptionType -like "GPOPolicy") {
        $descriptionObject = $descriptionFileContent[3].Elements.PSObject.Properties | ForEach-Object {
            "$($_.Name) - $($_.Value)"
        }
    }
    elseif ($descriptionType -like "FineGrainedPasswordPolicy") {
        $descriptionObject = $descriptionFileContent[4].Elements.PSObject.Properties | ForEach-Object {
            "$($_.Name) - $($_.Value)"
        }
    }
    elseif ($descriptionType -like "Computer") {
        $descriptionObject = $descriptionFileContent[5].Elements.PSObject.Properties | ForEach-Object {
            "$($_.Name) - $($_.Value)"
        }
    }
    Add-WordList -WordDocument $reportFile -ListType Bulleted -ListData $descriptionObject -Supress $true -Verbose

}