-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRun-CustomScriptAzVMExtension.ps1
More file actions
59 lines (48 loc) · 2.11 KB
/
Run-CustomScriptAzVMExtension.ps1
File metadata and controls
59 lines (48 loc) · 2.11 KB
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
<#
.SYNOPSIS
Script to run a Powershell script that resides on a storage account in the same subscription on a given VM. You can also apply a parameter name and value by modifying the run part. Default it just runs the script.
Microsoft docs: https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/custom-script-windows
.DESCRIPTION
This script is intended to be run from PowerShell in your current AzContext
.EXAMPLE
.\Run-CustomScriptAzVMExtension.ps1 `
-vmName vm01 -vmResourceGroupName virtualmachines `
-FileName Install-IIS.ps1 `
-storageAccountName deploymentstorage -storageResourceGroupName storage -containerName scripts
.EXAMPLE
.\Run-CustomScriptAzVMExtension.ps1 `
-vmName vm01 -vmResourceGroupName virtualmachines -FileName Install-IIS.ps1 `
-storageAccountName deploymentstorage -storageResourceGroupName storage -containerName scripts `
-parameterName WebsiteName -parameterValue defaultwebsite
Created by RBNMK
#>
param (
[Parameter(Mandatory = $true)]$storageAccountName,
[Parameter(Mandatory = $true)]$storageResourceGroupName,
[Parameter(Mandatory = $true)]$containerName,
[Parameter(Mandatory = $true)]$vmResourceGroupName,
[Parameter(Mandatory = $true)]$vmName,
[Parameter(Mandatory = $true)]$FileName,
[Parameter(Mandatory = $false)]$ParameterName,
[Parameter(Mandatory = $false)]$ParameterValue
)
$vm = Get-AzVM `
-ResourceGroupName $irtResourceGroupName `
-Name $VmName
$storageAccountKey = (Get-AzStorageAccountKey `
-Name $storageAccountName `
-ResourceGroupName $storageResourceGroupName)[0].Value
$scriptParams = @{
'ResourceGroupName' = $vmResourceGroupName
'VMName' = $vmName
'Name' = $fileName
'Location' = $vm.Location
'StorageAccountName' = $storageAccountName
'StorageAccountKey' = $storageAccountKey
'FileName' = $fileName
'ContainerName' = $containerName
'Run' = '{0}' -f $FileName
#'Run' = '{0} -{1} {2}' -f $fileName, $ParameterName, $ParameterValue
}
#run command on the vm
Set-AzVMCustomScriptExtension @scriptParams