Powershell and Azure Resource Explorer showing different set of properties - azure

I have created a private link connection to the storage account blob service, by the architecture, the private link has a private endpoint - which is linked to the interface in the virtual network and its subnet.
After the creation of the private link, the network interface which was provisioned gets the private IP address and FQDN - which is the name of the storage account and its public blob endpoint - like(myblob.blog.storage.net).
When I examine the network interface resource via Powershell, I can dig into members/properties and see the FQDN name.
PROBLEM: Unfortunately, I can not find any properties referencing to the private link connection on the network interface when I search via Azure Resource Explorer.
EDIT: Azure Resource Explorer is showing exactly the same information as to when we retrieve information via Powershell - using Get-AzResource command. Does this mean that we can't see all properties related to the resource via Resource Explorer as with dedicated Powershell resource commands - such as
Get-AzNetworkInterface ?

Yes, you can't see all properties related to the resource via Azure Resource Explorer.
The reason is that Azure Resource Explorer and Get-AzNetworkInterface are using different version of api in background.
For Azure Resource Explorer, it's using the old api whose version is 2018-07-01. Screenshot as below:
For Get-AzNetworkInterface, it's using the newest api whose version is 2019-11-01. Screenshot as below:

Related

Unable to get storage account container details

Is there a way to get the storage account container details in Azure when private endpoint is enabled?
When i am trying to use get-azcontainer -name -context
I get an error saying this is not an authorised operation. However when i remove the private endpoint and enable public access. I am able to do so.
Hence, unable to figure out if there is any other way to achieve this
Tried using get-azcontainer. It didn't work as expected.
Request your help
Private endpoint means it is created with the help of VNet-Subnet.
So, you have to access the Storage account from the Virtual Machines connected to that Subnet added in your Storage Account > Networking > Vnet - Subnet which is linked with that Private Endpoint.
Reference: Microsoft Documentation of Azure Storage Account using Private Link

How to get the azure VMUUID of azure VM?

I am creating an ARM template for the Azure Log Analytics workspace.it has some queries which use azure VM's VMUUID. Is there is any way to fetch the azure VM's VMUUID inside the ARM template or any other way to fetch azure VMUUID?
ARM Template I just need to get the values of VMUUID of all VM's in that subscription.
You can also get this information programmatically from the Azure Instance Metadata Service (IMDS). It provides information about currently running virtual machine instances. You can use IMDS to manage and configure your virtual machines. This information includes the SKU, storage, network configurations, and upcoming maintenance events. For a complete list of the data available, see the Endpoint Categories Summary.
IMDS is a REST API that's available at a well-known, non-routable IP address 169.254.169.254. You can only access it from within the VM. Communication between the VM and IMDS never leaves the host.
https://learn.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service
Try Azure Resource Explorer
You could easily find it in the Azure Resource Explorer.
//One more extra reference: What is Azure Resource Explorer?
Just navigate to the Microsoft.Compute => virtualMachines view:
There is one more way to find it, but for me seems more complicated as you need to connect to the VM:
https://azure.microsoft.com/en-us/blog/accessing-and-using-azure-vm-unique-id/
Update: Try PowerShell
The simple PowerShell script below returns a list of all VMUUIDs in the specified subscription:
Get-AzSubscription
Select-AzSubscription -SubscriptionId "Olga's Subscription"
$GetVM = Get-AzVM
Foreach ($vm in $GetVM)
{
$vmId =""
$vmId = $vm.vmid
$vmIdList +=$vmId + "`r`n"
}
Write-Output $vmIdList
Please let me know if above answers your question.

Unable to create SSIS Integration Runtime on Azure Data Factory

I'm having an error when i try to create my SSIS Integration Runtime on Azure Data Factory :
Microsoft.Batch resource provider is not registered under the same subscription of VNet
And here is the detail of the error :
Thank you
A resource provider is a service that supplies the resources you can deploy and manage through Resource Manager. Each resource provider offers a set of resources and operations for working with an Azure service. For example, if you want to store keys and secrets, you work with the Microsoft.KeyVault resource provider.
It appears the SSIS Integration runtime requires a batch account. But you are not able to provision a batch account because the resource provider is not registered. To register a resource provider, you must have permission to perform the /register/action operation for the resource provider. This operation is included in the Contributor and Owner roles.
You can use PowerShell to register it:
Register-AzureRmResourceProvider -ProviderNamespace Microsoft.Batch
You can also register it through the portal. Go to Subscriptions -> Resource Providers. Search for Microsoft.Batch and click the register link on that result.
You can find more info in the MS Docs here.
You get this error when you join the SSIS Integration Runtime to Azure VNet.
Go to your Subscription -> Resource Provider -> Microsoft.Batch and register it.
Microsoft.Batch is required because when you join the Integration Runtime to the VNet, Azure, behind the scenes uses Azure Batch service to provision necessary resources like Load Balancer, NSG, Public IP to continue the communication even after IR is within the VNet

How can I add Azure VM to existing Vnet or new Vnet using ARM template

I am creating JSON file for ARM template to deploy Azure VM and its dependent resources.
I have created RHEL VM with following resources(all are newly created):-
Storage Account
Diagnostic Storage Account
Virtual Network
Network Interface
Public IP Address
Network Security Group
Now I want to create Azure VM with existing Vnet, Subnet or new Vnet, subnet. Is there any example I can follow up. How can I do so?
Now I want to create Azure VM with existing Vnet
You could refer to this example.
If you want to more templates, you could search the templates gallery to discover what you need.
or new Vnet, subnet.
You could refer to this example, just use an existing resource group.
This is pretty straightforward with Microsoft's documentation.
The challenge here usually lies with understanding the dependencies. In that example, you aren't saying I want this VM to launch in this Vnet, you are saying, "I want this VM to use this NIC which is associated with this Subnet of this Vnet"
It is easiest to just use the example provided at the bottom of that link and work your way forward. With your case, you will end up being able to simply remove the Vnet resource block and add your own Vnet's properties in.
This is an extra tool for working with ARM templates.

Azure Windows VM - how can I find out what Resource Group it is in?

I have C# code running on an Azure Windows VM. Is there a way for me to find out what Resource Group this VM is in?
VM has been deployed with Azure Resource Management API (new, not classic)
The following will guarantee the ability to distinguish between vm's with the same name across different resource groups:
From your C# code, find the vmId (involves running one of the commands at the following link or possibly using an Azure SDK: https://azure.microsoft.com/en-us/blog/accessing-and-using-azure-vm-unique-id/). If using a Linux VM, be sure to take into account the different endian-ness, otherwise the vmId will not match.
Once you have the vmId, you can use either CLI or Powershell (or potentially an Azure SDK) to list all of the VM's in the subscription, then search through the list to find which VM has the vmId you got from the machine. Then you should be able to parse out the resource group name from the "id" field of the json for that VM (which, as Gaurav mentioned, is a string with the resource group in it). For an example, try the following:
azure vm list --json -vv
This command will show you the url's it is using to make the requests and the response body. In this body you will find the "vmId" and "id" field. For instance, one of the requests it sends is:
https://management.azure.com/subscriptions/{my-subscription-id}/providers/Microsoft.Compute/virtualMachines?api-version=2015-06-15
and the response body for this is the json with the relevant entries. Hope this helps! :)
One way to find out the resource group is to list all the virtual machines in your Azure Subscription. The URL you would use for that would be:
https://management.azure.com/subscriptions/[subscription-id]/providers/Microsoft.Compute/virtualMachines?api-version=2015-06-15
It will return you a list of all Virtual Machines in your Azure Subscription in JSON format where each item represents a Virtual Machine. You can first filter by the name property to find the matching Virtual Machine. Then the property which is important to you there is id which is always of the format:
/subscriptions/[subscription-id]/resourceGroups/[resource-group-name]/providers/Microsoft.Compute/virtualMachines/[virtual-machine-name]
You could simply parse this to get the resource group name.
How did you deploy the VM? Through portal.azure.com? Through CLI? Powershell? In any of these cases, usually you are required to specify a resource group name. In fact, in the portal, if you click on "Virtual Machines", it should say the resource group:
resource group of VM in portal
write-host(Get-AzVm -name "hostname").ResourceGroupName

Resources