#Set the variables
$SubscriptionID = "<Subscription ID>"
$ResourceGroup = "<Resource Group>"
$NetInter="<The Network interface of the VM>"
$VNET = "<Virtual network>"
$subnet= "<The virtual network subnet>"
$PrivateIP = "<New Private IP>"
#You can ignore the publicIP variable if the VM does not have a public IP associated.
$publicIP =Get-AzPublicIpAddress -Name <the public IP name> -ResourceGroupName $ResourceGroup
#Log in to the subscription
Add-AzAccount
Select-AzSubscription -SubscriptionId $SubscriptionId
#Check whether the new IP address is available in the virtual network.
Get-AzVirtualNetwork -Name $VNET -ResourceGroupName $ResourceGroup | Test-AzPrivateIPAddressAvailability -IPAddress $PrivateIP
#Add/Change static IP. This process will change MAC address
$vnet = Get-AzVirtualNetwork -Name $VNET -ResourceGroupName $ResourceGroup
$subnet = Get-AzVirtualNetworkSubnetConfig -Name $subnet -VirtualNetwork $vnet
$nic = Get-AzNetworkInterface -Name $NetInter -ResourceGroupName $ResourceGroup
#Remove the PublicIpAddress parameter if the VM does not have a public IP.
$nic | Set-AzNetworkInterfaceIpConfig -Name ipconfig1 -PrivateIpAddress $PrivateIP -Subnet $subnet -PublicIpAddress $publicIP -Primary
$nic | Set-AzNetworkInterface
az vm repair reset-nic -g MyResourceGroup -n vmName --subscription subscriptionId --yes
Or
#Log in to the subscription
az login
az account set --subscription
#Check whether the new IP address is available in the virtual network.
az network vnet check-ip-address -g MyResourceGroup -n MyVnet --ip-address 10.0.0.4
#Add/Change static IP. This process won't change MAC address
az network nic ip-config update -g MyResourceGroup --nic-name MyNic -n MyIpConfig --private-ip-address 10.0.0.9