Question: I would like to change the vmsize of a running Azure web role during deployment preferrably using powershell. 

Is this at all possible?

The use case here is that not all of our customers (and test environments) should run the same vm sizes, but they all use the same .csdef file.

Answer: 
You can use the Set-AzureDeployment cmdlet to upgrade a webrole size, which you could then work into your existing PowerShell script. For instance, if you automatically deploy every customer web service/web role at a basic level/scale and then only upgraded them to larger capacity as needed, you could then use the following cmdlet as needed:

```
Set-AzureDeployment -Upgrade -ServiceName "MySvc1" -Mode Auto `
  -Package "C:\Temp\MyApp.cspkg" -Configuration "C:\Temp\MyServiceConfig.Cloud.csfg"

```

I would envision you just adding a parameter to your current PowerShell script, and if specified, run the above cmdlet to Upgrade the Azure Web role.
This is not possible for a role, you have to do a new deployment with the settings change. You can however change the number of instances without redeploying maybe that could help you out?

On plain VM's you can use the following powershell snippet:

```
Get-AzureVM –ServiceName $ServiceName –Name $Name | 
Set-AzureVMSize $VMSize | 
Update-AzureVM

```

[Taken from here](https://msdn.microsoft.com/en-us/library/dn168976%28v=nav.70%29.aspx)