It was my privilege to speak at Global Microsoft 365 Developer Bootcamp Sri Lanka.
I presented on building SPFx solutions for SharePoint Online and MS Teams.
It was my privilege to speak at Global Microsoft 365 Developer Bootcamp Sri Lanka.
I presented on building SPFx solutions for SharePoint Online and MS Teams.
SPSecurityContext: Could not retrieve a valid windows identity for username 'Following are the checkpoints' with UPN ' '. UPN is required when Kerberos constrained delegation is used. Exception: System.ServiceModel.Security.SecurityAccessDeniedException: Access is denied
I was privileged to address at CodeRush hackathon organized by Faculty of IT - University of Moratuwa recently. Myself and my team at LB Finance PLC submitted few challenges for the hackathon from FinTech and cloud spaces.
We spent the same night at University premises and evaluated the competition. I was amazed and thrilled by the competence and dedication from young students
During my speech I presented opportunities available in FinTech and Cloud segments and stressed the importance of not forgetting basic concepts
Recently I used Microsoft Excel 2016 to publish a excel report to SharePoint, it gives following error when running the workbook. The workbook had a connection to BISM which is referring Analysis Services cube.
Error Message
ULS error log
The workbook '' attempted to access external data using the unsupported provider 'Provider=MSOLAP.8;
Following is the data connection I had
To resolve the issue, I had to add MSOLAP.8 to trusted data providers list.
Finally restart IIS to see the change
In our previous article, I explained how to write a simple PowerShell script to expand the size of an Azure VM.
In this article I’ll explain how to execute PowerShell scripts in a given schedule using Azure Automation Account, Runbooks and Schedules.
What is an Azure Automation?
Azure Automation is a Software as a Service (SaaS) that can be used to automate processes. You can automate cloud automation tasks using Azure Automation. Some common tasks are,
- Build and deploy resources
- Configure VMs
- Monitor resources
What is a Runbook?
Azure Automation use Runbooks to automate processes. Runbooks are executed in automation Sandboxes, which means as a Platform as a Service (PaaS) VMs. You will get the isolation that you expect from Runbooks
Following are the steps I used to expand and reduce the size of VMs in my Azure tenant.
1. Create Azure Automation Account
Navigate to Variables section and create following variables
2. Create the Runbook
Create new Runbook as a PowerShell script to expand the size
Add following script
$connectionName = "AzureRunAsConnection"
try
{
# Get the connection "AzureRunAsConnection "
$servicePrincipalConnection=Get-AutomationConnection -Name $connectionName
"Logging in to Azure..."
Add-AzureRmAccount `
-ServicePrincipal `
-TenantId $servicePrincipalConnection.TenantId `
-ApplicationId $servicePrincipalConnection.ApplicationId `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
}
catch {
if (!$servicePrincipalConnection)
{
$ErrorMessage = "Connection $connectionName not found."
throw $ErrorMessage
} else{
Write-Error -Message $_.Exception
throw $_.Exception
}
}
$vmName = Get-AutomationVariable -Name 'vmName'
$resourceGroup = Get-AutomationVariable -Name 'resourceGroup'
$lowHwProfile = Get-AutomationVariable -Name 'lowHwProfile'
"Updating VM size"
Get-AzureRmVMSize -ResourceGroupName $resourceGroup -VMName $vmName
$vm = Get-AzureRmVM -ResourceGroupName $resourceGroup -Name $vmName
$vm.HardwareProfile.VmSize = $lowHwProfile
Update-AzureRmVM -VM $vm -ResourceGroupName $resourceGroup
"VM size updated"
Same way create another Runbook to reduce the VM size
3. Create Schedules and apply to Runbooks
Click on Schedules in Automation Account
Navigate to specific Runbook to apply the schedule
That’s it. We have to create another schedule to reduce the size of the VM on Monday night and apply to the particular Runbook
When we provision VMs from Azure, we select the best possible size template from the gallery. But sometimes our VMs can’t cater the demand for specific time periods or are underutilized in certain times. One of my SQL Server VMs is very busy on Mondays, but manageable on other days.
I had to use Azure PowerShell script to modify the size template. In this article I’ll share the script I’ve used to expand the VM size and later reduce its size.
I’ve split the article in to two
Expand VM size
$vmName = "Test-VM"
$resourceGroup = "Test-Resource"
$highHwProfile = "Standard_DS13_v2_Promo"
$subscriptionId = "<subscription_id>"Login-AzureRmAccount
Select-AzureRMSubscription -SubscriptionId $subscriptionIdGet-AzureRmVMSize -ResourceGroupName $resourceGroup -VMName $vmName
$vm = Get-AzureRmVM -ResourceGroupName $resourceGroup -Name $vmName
$vm.HardwareProfile.VmSize = $highHwProfile
Update-AzureRmVM -VM $vm -ResourceGroupName $resourceGroup
Reduce VM size
$vmName = "Test-VM"
$resourceGroup = "Test-Resource"
$highHwProfile = "Standard_DS12_v2_Promo"
$subscriptionId = "<subscription_id>"Login-AzureRmAccount
Select-AzureRMSubscription -SubscriptionId $subscriptionIdGet-AzureRmVMSize -ResourceGroupName $resourceGroup -VMName $vmName
$vm = Get-AzureRmVM -ResourceGroupName $resourceGroup -Name $vmName
$vm.HardwareProfile.VmSize = $highHwProfile
Update-AzureRmVM -VM $vm -ResourceGroupName $resourceGroup