44 lines
1.9 KiB
PowerShell
44 lines
1.9 KiB
PowerShell
<#
|
|
.SYNOPSIS
|
|
List all workstations in the domain. Fields include LastLogonDate and the latest BitLocker password set date (if present)
|
|
.DESCRIPTION
|
|
List all workstations in the domain. Fields include LastLogonDate and the latest BitLocker password set date (if present)
|
|
.PARAMETER SearchBase
|
|
OU where the script will begin it's search
|
|
.INPUTS
|
|
None
|
|
.OUTPUTS
|
|
CSV in script path
|
|
.EXAMPLE
|
|
.\Get-BitlockerStatus.ps1 -SearchBase ""
|
|
.NOTES
|
|
|
|
#>
|
|
|
|
[CmdletBinding()]
|
|
Param (
|
|
[string]$SearchBase = "OU=..."
|
|
)
|
|
|
|
Try { Import-Module ActiveDirectory -ErrorAction Stop }
|
|
Catch { Write-Warning "Unable to load Active Directory module because $($Error[0])"; Exit }
|
|
|
|
|
|
Write-Verbose "Getting Workstations..." -Verbose
|
|
$Computers = Get-ADComputer -Filter * -SearchBase $SearchBase -Properties LastLogonDate
|
|
$Count = 1
|
|
$Results = ForEach ($Computer in $Computers) {
|
|
Write-Progress -Id 0 -Activity "Searching Computers for BitLocker" -Status "$Count of $($Computers.Count)" -PercentComplete (($Count / $Computers.Count) * 100)
|
|
New-Object PSObject -Property @{
|
|
ComputerName = $Computer.Name
|
|
LastLogonDate = $Computer.LastLogonDate
|
|
BitLockerPasswordSet = Get-ADObject -Filter "objectClass -eq 'msFVE-RecoveryInformation'" -SearchBase $Computer.distinguishedName -Properties msFVE-RecoveryPassword, whenCreated | Sort-Object whenCreated -Descending | Select-Object -First 1 | Select-Object -ExpandProperty whenCreated
|
|
}
|
|
$Count ++
|
|
}
|
|
Write-Progress -Id 0 -Activity " " -Status " " -Completed
|
|
|
|
$ReportPath = Join-Path (Split-Path $MyInvocation.MyCommand.Path) -ChildPath "Get-BitlockerStatus.csv"
|
|
Write-Verbose "Building the report..." -Verbose
|
|
$Results | Select-Object ComputerName, LastLogonDate, BitLockerPasswordSet | Sort-Object ComputerName | Export-Csv $ReportPath -NoTypeInformation -Delimiter ";" -Encoding UTF8
|
|
Write-Verbose "Report saved at: $ReportPath" -Verbose |