Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Auth to your azure account
- Add-AzureAccount
- Import-Module 'C:\Program Files (x86)\code4ward.net\Royal TS V3\RoyalDocument.PowerShell.dll' -Force
- function CreateRoyalFolderHierarchy()
- {
- param(
- [string]$folderStructure,
- [string]$splitter,
- $Folder
- )
- $currentFolder = $Folder
- $folderStructure -split $splitter | %{
- $folder = $_
- $existingFolder = Get-RoyalObject -Folder $currentFolder -Name $folder -Type RoyalFolder
- if($existingFolder)
- {
- Write-Verbose "Folder $folder already exists - using it"
- $currentFolder = $existingFolder
- }
- else
- {
- Write-Verbose "Folder $folder does not exist - creating it"
- $newFolder= New-RoyalObject -Folder $currentFolder -Name $folder -Type RoyalFolder
- $currentFolder = $newFolder
- }
- }
- return $currentFolder
- }
- $fileName = "AzureEnv.rtsz"
- $store = New-RoyalStore -UserName ((Get-Item Env:\USERNAME).Value)
- $doc = New-RoyalDocument -Store $store -Name "Azure Environment" -FileName $fileName
- foreach($activeSubscription in (Get-AzureSubscription | Sort SubscriptionName)) {
- $subscriptionName = $activeSubscription.SubscriptionName
- Write-Host "Importing Subscription: $subscriptionName - $($activeSubscription.SubscriptionId)"
- Select-AzureSubscription -SubscriptionId $activeSubscription.SubscriptionId
- Set-AzureSubscription -SubscriptionId $activeSubscription.SubscriptionId
- Get-AzureVM | Sort Name | ForEach-Object {
- $vm = $_
- $rdpEndpoint = $vm | Get-AzureEndpoint | Where LocalPort -eq 3389
- $sshEndpoint = $vm | Get-AzureEndpoint | Where LocalPort -eq 22
- if($rdpEndpoint -ne $null) {
- $uri = "$($vm.ServiceName).cloudapp.net:$($rdpEndpoint.Port)";
- Write-Host "Importing Windows VM - $($vm.Name) - $uri"
- $lastFolder = CreateRoyalFolderHierarchy -folderStructure "Connections/$subscriptionName/$($vm.ServiceName)" -Splitter "\/" -Folder $doc
- $newConnection = New-RoyalObject -Folder $lastFolder -Type RoyalRDSConnection -Name $vm.Name
- $newConnection.URI = $uri
- }
- elseif ($sshEndpoint -ne $null) {
- $uri = "$($vm.ServiceName).cloudapp.net:$($sshEndpoint.Port)";
- Write-Host "Importing Linux VM - $($vm.Name) - $uri"
- $lastFolder = CreateRoyalFolderHierarchy -folderStructure "Connections/$subscriptionName/$($vm.ServiceName)" -Splitter "\/" -Folder $doc
- $newConnection = New-RoyalObject -Folder $lastFolder -Type RoyalSSHConnection -Name $vm.Name
- $newConnection.URI = $uri
- }
- else {
- Write-Host "Skipping $($vm.Name), no RDP or SSH endpoints"
- }
- }
- # Print some whitespace between subscriptions
- Write-Host
- Write-Host
- Write-Host
- }
- Out-RoyalDocument -Document $doc -FileName $fileName
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement