Skip to content

Instantly share code, notes, and snippets.

View astaykov's full-sized avatar

Anton Staykov astaykov

  • Microsoft (former Microsoft Azure MVP)
  • Berlin, Germany
  • X @astaykov
View GitHub Profile
@astaykov
astaykov / CopyFromMcd.ps1
Created May 2, 2017 08:36
Copy VHDs for VMs in Microsoft Cloud Deutschalnd to any other Azure location
param(
[String] $destinationUri = "https://[YOUR STORAGE ACCOUNT NAME].blob.core.windows.net/vhds",
[String] $destinationKey = "[YOUR STORAGE ACCOUNT KEY]",
[String] $sourceAccountPattern = "*disk*",
[String] $pathToAzCopy = "C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy\AzCopy.exe"
)
clear
Login-AzureRmAccount -EnvironmentName AzureGermanCloud
$storageAccounts = Get-AzureRmStorageAccount
@astaykov
astaykov / GetAzureVnetGateways.ps1
Last active November 8, 2016 13:18
Get the type of all Azure Virtual Network Gateways in your Azure subscriptions
Login-AzureRmAccount
cls
$subs = Get-AzureRmSubscription
ForEach ($sub in $subs)
{
Write-Host 'ARM: VPN Gateways in subscription' $sub.SubscriptionName '(' $sub.SubscriptionId ')'
Select-AzureRmSubscription -SubscriptionName $sub.SubscriptionName -OutVariable out
$gwr = Find-AzureRmResource -ResourceType "Microsoft.Network/virtualNetworkGateways"
if ( $gwr -ne $null)
{
$errConnections = Get-AzureRmResource -ResourceGroupName RG-Development `
-ResourceType "Microsoft.Web/connections" -ExpandProperties |
Where-Object { $_.Properties.Statuses.Status -eq "Error" }
$errConnections.Count
$errConnections[0].Properties
Function DeleteUser
{
param(
[String] $token,
[String] $upn
)
$headers = @{"Authorization" = "Bearer $($token)"; "Content-Type" = "application/json"}
$deleteUserUri = "https://graph.windows.net/<your.tenant.domain>/users/$($upn)?api-version=1.5"
$userDeleteResult = Invoke-WebRequest -Uri $deleteUserUri -Headers $headers -Method Delete
$userDeleteResult
Connect-MsolService
# Get Service Principal to add the role to
$sp = Get-MsolServicePrincipal -ServicePrincipalName "<URI_OF_YOUR_AZURE_AD_APP>"
# Get role object ID
# Alternatively, you can list all the roles (in order to get a different role name) using just `Get-MsolRole`
$roleId = (Get-MsolRole -RoleName "Company Administrators").ObjectId
# Add role to service principal
@astaykov
astaykov / UpdateUser.ps1
Created October 29, 2015 23:48
Update user properties in Azure AD Graph API
Function UpdateUser
{
param(
[String] $token
)
$headers = @{"Authorization" = "Bearer $($token)"; "Content-Type" = "application/json"}
$updateUserUri = "https://graph.windows.net/dayzure.onmicrosoft.com/users/maxm@dayzure.onmicrosoft.com?api-version=1.5"
$updateBody = @"
{
"department":"Super Devs"
Function GetToken
{
param(
[String] $authority = "https://login.microsoftonline.com/<your_tenant>/oauth2/token",
[String] $clientId = "<client_id>",
[String] $clientSecret = "<client_secret>",
[String] $resourceId = "https%3a%2f%2fgraph.windows.net"
)
$body = "grant_type=client_credentials&resource=$($resourceId)&client_id=$($clientId)&client_secret=$($clientSecret)"
@astaykov
astaykov / GetToken.ps1
Created October 29, 2015 20:56
Get access token from Azure AD OAuth 2.0 endpoint
Function GetToken
{
param(
[String] $authority = "https://login.microsoftonline.com/lab09.onmicrosoft.com/oauth2/token",
[String] $clientId = "<your_client_id_here>",
[String] $clientSecret = "<client_secret>",
[String] $resourceId = "https%3a%2f%2fgraph.windows.net"
)
$body = "grant_type=client_credentials&resource=$($resourceId)&client_id=$($clientId)&client_secret=$($clientSecret)"
Function GetToken
{
param(
[String] $authority = "https://login.microsoftonline.com/lab09.onmicrosoft.com/oauth2/token",
[String] $clientId = "0bc190c9-e84e-4df3-9ef8-xyxyxyxyxyxyxyx",
[String] $clientSecret = "RJ30qUKSyRMhLICJRsqxxxCX01yyUMeF8xxyoo9xL7ltY=",
[String] $resourceId = "https%3a%2f%2fgraph.windows.net"
)
$body = "grant_type=client_credentials&resource=$($resourceId)&client_id=$($clientId)&client_secret=$($clientSecret)"