Initial commit

This commit is contained in:
Jurjen Ladenius
2020-07-09 10:28:42 +02:00
parent f912178afb
commit 34b041dc2e
16 changed files with 825 additions and 20 deletions

View File

@@ -0,0 +1,96 @@
# import AD Module
Import-Module activedirectory
#Set-ExecutionPolicy unrestricted
#---------------------------
#-------- Variable ---------
#---------------------------
$ADUserMembers=""; $ADUser=""
$ADGroupName=""; $ADGroupCategory=""; $ADGroupScope=""
$i=0
#---------------------------
#------- Functions ---------
#---------------------------
function Get-ADGroupName ($DN)
{
$ADGrpName= (Get-ADGroup -Filter {DistinguishedName -eq $DN}).SamAccountName
return $ADGrpName
}
function Get-GroupMemberOf ($ADGroupName)
{
if ($ADGroupName -eq "# Developer") {
break
}
$ii++; $a=0
$Message=""; $Prefix=""
$GroupCategory=""; $GroupScope=""; $GroupName=""
For ($a=0; $a -lt $ii; $a++) {$Prefix = $Prefix + " "}
$DNs=(Get-ADGroup $ADGroupName -Properties *).MemberOf
if ($DNs.count -ne 0)
{
foreach ($DN in $DNs)
{
# $Prefix =" $ADGroupName => "
$GroupName = (Get-ADGroupName $DN)
$GroupCategory = (Get-ADGroup $GroupName -Properties *).GroupCategory
$GroupScope = (Get-ADGroup $GroupName -Properties *).GroupScope
$Message="$Prefix $ADGroupName => $GroupName [$GroupCategory - $GroupScope]"
Write-Host $Message
Get-GroupMemberOf $GroupName ' '
}# End ForEach
}# End IF
}#End Function
function Get-UserMemberships ($ADUser)
{
$ADUserMembers=(Get-ADUser $ADUser -Properties *).MemberOf
Write-Host "AD-User: $ADUser" -ForegroundColor blue
#PrimaryGroup
$ADPrimaryGroupDN = (Get-ADUser -Properties * -Filter {SamAccountName -eq $ADUser}).PrimaryGroup
$ADPrimaryGroupName=(Get-ADGroupName $ADPrimaryGroupDN)
$ADGroupCategory=(Get-ADGroup $ADPrimaryGroupName).GroupCategory
$ADGroupScope=(Get-ADGroup $ADPrimaryGroupName).GroupScope
$Message = "Primary Group: $ADPrimaryGroupName [$ADGroupCategory, $ADGroupScope]"
Write-Host $Message -BackgroundColor yellow
#Other groups
foreach ($ADUserMember in $ADUserMembers)
{$i++
$ADGroupName = (Get-ADGroupName $ADUserMember)
$ADGroupCategory=(Get-ADGroup $ADGroupName).GroupCategory
$ADGroupScope=(Get-ADGroup $ADGroupName).GroupScope
$Message = "($i) $ADGroupName [$ADGroupCategory, $ADGroupScope]"
Write-Host $Message -ForegroundColor black
Get-GroupMemberOf $ADGroupName ' '
Write-Host " "
}
}
function Get-AllMembershipsOfUsers($ADGroupName) {
$devadmaccounts = get-adgroupmember -Identity $ADGroupName -Recursive
foreach ($devADM in $devadmaccounts) {
Get-UserMemberships $devADM.name
Write-Host "======================================================================================================"
}
}
#-----------------------------------------------------------------
Clear-Host
$ADUser= "DannyADM"
Get-UserMemberships $ADUser
#$ADGroupName = "# Developer ADM"
#Get-AllMembershipsOfUsers $ADGroupName

View File

@@ -0,0 +1,91 @@
#Connect-AzAccount
$fileName = ".\azure_appservice_certificates.csv"
$subscriptions = Get-AzSubscription
class CertificateCheck {
[string] $SubscriptionId = ""
[string] $CertificateId = ""
[string] $ResourceGroupName = ""
[string] $SubjectName = ""
[string] $ThumbPrint = ""
[DateTime] $ExpirationDate
[double] $TotalDays
[string] $Comment = ""
}
[CertificateCheck[]]$Result = @()
$StartDate=(GET-DATE)
foreach ($subscription in $subscriptions)
{
Set-AzContext -SubscriptionId $subscription.Id
$certs = Get-AzResource -ResourceType Microsoft.Web/certificates
foreach ($cert in $certs)
{
$id = $cert.Id
$thumbprint = ($cert.Name.Split([char]"#", [char]"-"))[0]
Write-Host "Certificate $id"
[CertificateCheck] $certificateCheck = [CertificateCheck]::new()
$certificateCheck.SubscriptionId = $subscription.Id
$certificateCheck.CertificateId = $id
$certificateCheck.ThumbPrint = $thumbprint
$certificateCheck.ResourceGroupName = $cert.ResourceGroupName
$Result += $certificateCheck
}
}
$Result | Export-Csv -Path $fileName -NoTypeInformation -Force
$fileName = ".\azure_appservice_certificates_1.csv"
foreach ($certificateCheck in $Result)
{
try
{
Set-AzContext -SubscriptionId $certificateCheck.SubscriptionId
$thumbprint = $certificateCheck.ThumbPrint
Write-Host "thumbprint: $thumbprint"
$certificate = Get-AzWebAppCertificate -ResourceGroupName $certificateCheck.ResourceGroupName -Thumbprint $thumbprint -debug -verbose
if ($null -eq $certificate)
{
$certificateCheck.Comment = "Could not find certificate"
}
else
{
try
{
$subjectname = $certificate.SubjectName
$certificateCheck.SubjectName = $subjectname
Write-Host "Subject name: $subjectname"
$EndDate=[datetime]$certificate.ExpirationDate
$certificateCheck.ExpirationDate = $EndDate
$span = NEW-TIMESPAN Start $StartDate End $EndDate
$certificateCheck.TotalDays = $span.TotalDays
}
catch {
$certificateCheck.Comment = "Could not find expiry for certificate"
}
}
}
catch
{
$certificateCheck.Comment = "Could not load certificate"
}
}
$Result | Export-Csv -Path $fileName -NoTypeInformation -Force
$Result | ft

View File

@@ -0,0 +1,63 @@
#Connect-AzAccount
class ResourceCheck {
[string] $ResourceId = ""
[string] $Id = ""
[string] $Kind = ""
[string] $Location = ""
[string] $ResourceName = ""
[string] $ResourceGroupName = ""
[string] $ResourceType = ""
[string] $SubscriptionId = ""
[string] $SubscriptionName = ""
[string] $Tag_Team = ""
[string] $Tag_Product = ""
[string] $Tag_Environment = ""
[string] $Tag_Data = ""
[string] $Tag_Delete = ""
[string] $Tag_Split = ""
}
Write-Host "========================================================================================================================================================================"
Write-Host "Creating resource overview."
Write-Host "========================================================================================================================================================================"
$subscriptions = Get-AzSubscription
$fileName = "c:\temp\2020-07-07 azure_resources.csv"
rm $fileName
foreach ($subscription in $subscriptions)
{
Set-AzContext -SubscriptionId $subscription.Id
$allResources = Get-AzResource
[ResourceCheck[]]$Result = @()
foreach ($resource in $allResources) {
[ResourceCheck] $resourceCheck = [ResourceCheck]::new()
$resourceCheck.ResourceId = $resource.ResourceId
$resourceCheck.Id = $resource.Id
$resourceCheck.Kind = $resource.Kind
$resourceCheck.Location = $resource.Location
$resourceCheck.ResourceName = $resource.ResourceName
$resourceCheck.ResourceGroupName = $resource.ResourceGroupName
$resourceCheck.ResourceType = $resource.ResourceType
$resourceCheck.SubscriptionId = $subscription.Id
$resourceCheck.SubscriptionName = $subscription.Name
$resourceCheck.Tag_Team = $resource.Tags.team
$resourceCheck.Tag_Product = $resource.Tags.product
$resourceCheck.Tag_Environment = $resource.Tags.environment
$resourceCheck.Tag_Data = $resource.Tags.data
$resourceCheck.Tag_Delete = $resource.Tags.delete
$resourceCheck.Tag_Split = $resource.Tags.split
$Result += $resourceCheck
}
$Result | Export-Csv -Path $fileName -Append -NoTypeInformation
}
Write-Host "========================================================================================================================================================================"
Write-Host "Done."