-
Notifications
You must be signed in to change notification settings - Fork 0
/
import-azure-servers.ps1
66 lines (55 loc) · 2.46 KB
/
import-azure-servers.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
59
60
61
62
63
64
65
66
<#
.SYNOPSIS
.NOTES
Version: 1.0
Author: Andy Escolastico
Creation Date: 9/24/2020
#>
#---------------------------------------------------------[Initialisations]--------------------------------------------------------
# Requires -RunAsAdministrator
# Requires -Version 5
#----------------------------------------------------------[Declarations]----------------------------------------------------------
# DB queries for ADI
$AzureQuery = "
SELECT *
FROM devices
WHERE device_type_name = 'Azure Backup'
"
# Initialize results array
$CreatedDevices = @()
# Result file paths
$CsvPath = "\\rfabatch\Reports\Backups\device-imports_$(Get-Date -format "MM-dd-yy_HH-mm").csv"
#-----------------------------------------------------------[Functions]------------------------------------------------------------
. .\general-functions.ps1
. .\adi-functions.ps1
. .\credentials.ps1
. .\azure-accounts.ps1
#-----------------------------------------------------------[Execution]------------------------------------------------------------
# Ignores invalid certificate errors
Skip-InvalidCertErrors
$ADIDBName = "production_new"
# Querys Data from ADI
$ConnectedAzureDevices = Invoke-MySqlMethod -Server $ADIDBServer -User $ADIDBUser -Pass $ADIDBPass -DataBase $ADIDBName -Query $AzureQuery
# Gets auth token from ADI
$ADIToken = (Get-ADIToken -Server $ADIAPIServer -User $ADIAPIUser -Pass $ADIAPIPass).accessToken
# Loop through azure accounts file
foreach ($i in $azure_accounts){
# Create device if not already in ADI
if ($i.device_name -notin $ConnectedAzureDevices.name){
# Set loop variables
$DeviceName = $i.device_name
$DeviceTypeName = "Azure Backup"
$TenantId = $i.tenant_id
$SubscriptionId = $i.subscription_id
$ClientId = $i.client_id
$ClientSecret = $i.client_secret
# Make request to ADI
$CreateResult = New-ADIDevice -Server $ADIAPIServer -Token $ADIToken -DeviceName $DeviceName -DeviceTypeName $DeviceTypeName -TenantId $TenantId -SubscriptionId $SubscriptionId -ClientId $ClientId -ClientSecret $ClientSecret
Write-Host "Adding: $DeviceName" -ForegroundColor "Green" -BackgroundColor "Black"
$CreatedDevices += $CreateResult
# Re-poll ADI
$ConnectedAzureDevices = Invoke-MySqlMethod -Server $ADIDBServer -User $ADIDBUser -Pass $ADIDBPass -DataBase $ADIDBName -Query $AzureQuery
}
}
# Export to csv
$CreatedDevices | Export-Csv -Path $CsvPath -NoTypeInformation