Using PowerShell to create a custom reference for Azure PowerShell cmdlets and parameters
I was looking into the list of Azure PowerShell cmdlets and I could not find a page with all cmdlets and parameters in a single list. There are individual pages for each cmdlet on TechNet, but not all cmdlets in one page. There is a list of all cmdlets in one page, but that does not include the parameters as well.
However, since we have the Get-Command and Get-Help cmdlets, that is something that we can solve by writing a script. So, after installing the latest (as of 11/14/14) Azure PowerShell cmdlets, I wrote a little script to output all cmdlet names and parameters to HTML. Here’s that script:
$Cmdlet = "" | Select Name, Parameters
Get-command -Module Azure | % {
Get-Help $_ | % {
$ParameterSetCount = 1
$CmdletName = $_.Name
$ParameterSets = $_.syntax.syntaxItem
$ParameterSets | % {
$Cmdlet.Name=$CmdletName
If ($ParameterSets.Count -gt 1) {
$Cmdlet.Name+=” (“+$ParameterSetCount+”)”
$ParameterSetCount++
}
$Parameters = $_.parameter
$StringPar=””
If ($Parameters) {
$First=$true
$Parameters | % {
If ($First) {$First=$false} else {$StringPar+="%%"}
$StringPar+= “ -“+$_.name+” “;
if ($_.parameterValue -and ($_.parameterValue –notlike “Switch*”)) {
$StringPar+= ”<”+$_.parameterValue+”> “
}
}
}
$StringPar=$StringPar.Replace(“Nullable``1”,””)
$StringPar=$StringPar.Replace(“System.[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]”,”Int32”)
$StringPar=$StringPar.Replace(“System.[[System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]”,”Boolean”)
$Cmdlet.parameters=$StringPar;
$Cmdlet
}
}
} | ConvertTo-HTML | Out-File D:AzureCmdlets.HTML
I ended up having to make a few adjustments to make things work better for my specific purpose:
- If a cmdlet has more than one form (more than one parameter set), I listed them with a number next to the cmdlet name
- I added the data type next to the parameter name, enclosed in <angle brackets> (except for switch parameters)
- Certain data types were showing some additional info that I did not need (like “Nullable”), which I removed
- The script adds a “%%” mark between parameters. I later replaced those with HTML line breaks (“<BR>”)
Here is the output of the script, with some minor adjustments to the HTML:
Name | Parameters |
---|---|
Add-AzureEnvironment | -Name <String>-PublishSettingsFileUrl <String>-ServiceEndpoint <String>-ManagementPortalUrl <String>-StorageEndpoint <String>-ActiveDirectoryEndpoint <String>-ResourceManagerEndpoint <String>-GalleryEndpoint <String> |
Disable-AzureWebsiteApplicationDiagnostic | -Name <String>-File-Storage-PassThru-Slot <String> |
Enable-AzureWebsiteApplicationDiagnostic | -Name <String>-File-Storage <String>-StorageAccountName <String>-LogLevel <String>-PassThru-Slot <String> |
Get-AzureStorageContainer (1) | -Name <String>-MaxCount <[Int32]>-ContinuationToken <BlobContinuationToken>-Context <AzureStorageContext>-ServerTimeoutPerRequest <[Int32]>-ClientTimeoutPerRequest <[Int32]>-ConcurrentTaskCount <[Int32]> |
Get-AzureStorageContainer (2) | -Prefix <String>-MaxCount <[Int32]>-ContinuationToken <BlobContinuationToken>-Context <AzureStorageContext>-ServerTimeoutPerRequest <[Int32]>-ClientTimeoutPerRequest <[Int32]>-ConcurrentTaskCount <[Int32]> |
Get-AzureEnvironment | -Name <String> |
Get-AzurePublishSettingsFile | -Realm <String>-Environment <String> |
Get-AzureSBLocation | |
Get-AzureSBNamespace | -Name <String> |
Get-AzureSubscription (1) | -SubscriptionName <String>-ExtendedDetails-SubscriptionDataFile <String> |
Get-AzureSubscription (2) | -Current-ExtendedDetails-SubscriptionDataFile <String> |
Get-AzureSubscription (3) | -Default-ExtendedDetails-SubscriptionDataFile <String> |
Get-AzureWebsite | -Name <String>-Slot <String> |
Get-AzureWebsiteDeployment | -CommitId <String>-MaxResults <Int32>-Details-Name <String>-Slot <String> |
Get-AzureWebsiteLocation | |
Get-AzureWebsiteLog | -Name <String>-Path <String>-Message <String>-Tail-ListPath-Slot <String> |
Import-AzurePublishSettingsFile | -PublishSettingsFile <String>-SubscriptionDataFile <String> |
Invoke-AzureHDInsightHiveJob | -Arguments <String[]>-Defines <Hashtable>-File <String>-Files <String[]>-JobName <String>-Query <String>-StatusFolder <String> |
New-AzureSBNamespace | -Name <String>-Location <String>-CreateACSNamespace <Boolean>-NamespaceType <NamespaceType> |
New-AzureWebsite | -Location <String>-Hostname <String>-PublishingUsername <String>-Git-GitHub-GithubCredentials <PSCredential>-GithubRepository <String>-Name <String>-Slot <String> |
Remove-AzureEnvironment | -Name <String>-PassThru <String> |
Remove-AzureSBNamespace | -Name <String> |
Remove-AzureSubscription | -SubscriptionName <String>-Force-PassThru-SubscriptionDataFile <String>-Confirm-WhatIf |
Remove-AzureWebsite | -Force-Name <String>-Slot <String> |
Restart-AzureWebsite | -Name <String> |
Restore-AzureWebsiteDeployment | -CommitId <String>-Force-Name <String>-WhatIf-Confirm-Slot <String> |
Save-AzureWebsiteLog | -Output <String>-Name <String>-Slot <String> |
Select-AzureSubscription (1) | -SubscriptionName <String>-Current-PassThru-SubscriptionDataFile <String> |
Select-AzureSubscription (2) | -SubscriptionName <String>-PassThru-SubscriptionDataFile <String>-Default |
Select-AzureSubscription (3) | -PassThru-SubscriptionDataFile <String>-NoCurrent |
Select-AzureSubscription (4) | -PassThru-SubscriptionDataFile <String>-NoDefault |
Set-AzureEnvironment | -Name <String>-PublishSettingsFileUrl <String>-ServiceEndpoint <String>-ManagementPortalUrl <String>-StorageEndpoint <String>-ActiveDirectoryEndpoint <String>-ResourceManagerEndpoint <String>-GalleryEndpoint <String> |
Set-AzureSubscription (1) | -SubscriptionName <String>-Certificate <X509Certificate2>-CurrentStorageAccountName <String>-PassThru-ResourceManagerEndpoint <String>-ServiceEndpoint <String>-SubscriptionDataFile <String>-SubscriptionId <String> |
Set-AzureSubscription (2) | -SubscriptionName <String>-PassThru-SubscriptionDataFile <String> |
Set-AzureWebsite | -NumberOfWorkers <Int32>-DefaultDocuments <String[]>-NetFrameworkVersion <String>-PhpVersion <String>-RequestTracingEnabled <Boolean>-HttpLoggingEnabled <Boolean>-DetailedErrorLoggingEnabled <Boolean>-HostNames <String[]>-AppSettings <Hashtable>-Metadata <NameValuePair>-ConnectionStrings <ConnStringPropertyBag>-HandlerMappings <HandlerMapping[]>-SiteWithConfig <SiteWithConfig>-Name <String>-PassThru-ManagedPipelineMode <String>-WebSocketsEnabled <String>-Slot <String>-RoutingRules <Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities.RampUpRule>-Use32BitWorkerProcess <Boolean> |
Show-AzurePortal | -Name <String>-Realm <String>-Environment <String> |
Show-AzureWebsite | -Name <String>-Slot <String> |
Start-AzureStorageBlobCopy (1) | -SrcBlob <String>-SrcContainer <String>-DestContainer <String>-DestBlob <String>-Context <AzureStorageContext>-DestContext <AzureStorageContext>-Force-ServerTimeoutPerRequest <[Int32]>-ClientTimeoutPerRequest <[Int32]>-ConcurrentTaskCount <[Int32]> |
Start-AzureStorageBlobCopy (2) | -ICloudBlob <ICloudBlob>-DestICloudBlob <ICloudBlob>-Context <AzureStorageContext>-DestContext <AzureStorageContext>-Force-ServerTimeoutPerRequest <[Int32]>-ClientTimeoutPerRequest <[Int32]>-ConcurrentTaskCount <[Int32]> |
Start-AzureStorageBlobCopy (3) | -ICloudBlob <ICloudBlob>-DestContainer <String>-DestBlob <String>-Context <AzureStorageContext>-DestContext <AzureStorageContext>-Force-ServerTimeoutPerRequest <[Int32]>-ClientTimeoutPerRequest <[Int32]>-ConcurrentTaskCount <[Int32]> |
Start-AzureStorageBlobCopy (4) | -CloudBlobContainer <CloudBlobContainer>-SrcBlob <String>-DestContainer <String>-DestBlob <String>-Context <AzureStorageContext>-DestContext <AzureStorageContext>-Force-ServerTimeoutPerRequest <[Int32]>-ClientTimeoutPerRequest <[Int32]>-ConcurrentTaskCount <[Int32]> |
Start-AzureStorageBlobCopy (5) | -AbsoluteUri <String>-DestContainer <String>-DestBlob <String>-Context <AzureStorageContext>-DestContext <AzureStorageContext>-Force-ServerTimeoutPerRequest <[Int32]>-ClientTimeoutPerRequest <[Int32]>-ConcurrentTaskCount <[Int32]> |
Start-AzureWebsite | -Name <String>-Slot <String> |
Stop-AzureStorageBlobCopy (1) | -Blob <String>-Container <String>-Force-CopyId <String>-Context <AzureStorageContext>-ServerTimeoutPerRequest <[Int32]>-ClientTimeoutPerRequest <[Int32]>-ConcurrentTaskCount <[Int32]> |
Stop-AzureStorageBlobCopy (2) | -ICloudBlob <ICloudBlob>-Force-CopyId <String>-Context <AzureStorageContext>-ServerTimeoutPerRequest <[Int32]>-ClientTimeoutPerRequest <[Int32]>-ConcurrentTaskCount <[Int32]> |
Stop-AzureStorageBlobCopy (3) | -CloudBlobContainer <CloudBlobContainer>-Blob <String>-Force-CopyId <String>-Context <AzureStorageContext>-ServerTimeoutPerRequest <[Int32]>-ClientTimeoutPerRequest <[Int32]>-ConcurrentTaskCount <[Int32]> |
Stop-AzureWebsite | -Name <String>-Slot <String> |
Test-AzureName (1) | -Service-Name <String> |
Test-AzureName (2) | -Storage-Name <String> |
Test-AzureName (3) | -ServiceBusNamespace-Name <String> |
Test-AzureName (4) | -Website-Name <String> |
Add-AzureAccount | -Credential <PSCredential>-Environment <String>-SubscriptionDataFile <String> |
Add-AzureCacheWorkerRole | -Name <String>-Instances <Int32> |
Add-AzureCertificate | -ServiceName <String>-CertToDeploy <Object>-Password <String> |
Add-AzureDataDisk (1) | -CreateNew-DiskSizeInGB <Int32>-DiskLabel <String>-LUN <Int32>-MediaLocation <String>-HostCaching <String>-VM <IPersistentVM> |
Add-AzureDataDisk (2) | -Import-DiskName <String>-LUN <Int32>-HostCaching <String>-VM <IPersistentVM> |
Add-AzureDataDisk (3) | -ImportFrom-DiskLabel <String>-LUN <Int32>-MediaLocation <String>-HostCaching <String>-VM <IPersistentVM> |
Add-AzureDisk | -DiskName <String>-MediaLocation <String>-Label <String>-OS <String> |
Add-AzureDjangoWebRole | -Name <String>-Instances <Int32> |
Add-AzureDns | -Name <String>-IPAddress <String>-ServiceName <String> |
Add-AzureEndpoint (1) | -Name <string>-Protocol <string>-LocalPort <int>-DefaultProbe-LBSetName <string>-ProbePort <int>-ProbeProtocol <string>-VM <IPersistentVM>-ACL <NetworkAclObject>-DirectServerReturn <Boolean>-IdleTimeoutInMinutes <Int32>-InternalLoadBalancerName <string>-LoadBalancerDistribution <string>-PipelineVariable <string>-ProbeIntervalInSeconds <Int32>-ProbePath <string>-ProbeTimeoutInSeconds <Int32>-PublicPort <Int32> |
Add-AzureEndpoint (2) | -Name <string>-Protocol <string>-LocalPort <int>-NoProbe-VM <IPersistentVM>-ACL <NetworkAclObject>-DirectServerReturn <Boolean>-IdleTimeoutInMinutes <Int32>-InternalLoadBalancerName <string>-LoadBalancerDistribution <string>-PipelineVariable <string>-PublicPort <Int32> |
Add-AzureEnvironment | -Name <String>-PublishSettingsFileUrl <String>-ServiceEndpoint <String>-ManagementPortalUrl <String>-StorageEndpoint <String>-ActiveDirectoryEndpoint <String>-ResourceManagerEndpoint <String>-GalleryEndpoint <String> |
Add-AzureHDInsightConfigValues | -Config <AzureHDInsightConfig>-Core <Hashtable>-Yarn <Hashtable>-Hdfs <Hashtable>-Hive <AzureHDInsightHiveConfiguration>-MapReduce <AzureHDInsightMapReduceConfiguration>-Oozie <AzureHDInsightOozieConfiguration>-Storm <Hashtable>-HBase <AzureHDInsightHBaseConfiguration> |
Add-AzureHDInsightMetastore | -Config <AzureHDInsightConfig>-Credential <PSCredential>-DatabaseName <String>-MetastoreType <AzureHDInsightMetastoreType>-SqlAzureServerName <String> |
Add-AzureHDInsightStorage | -Config <AzureHDInsightConfig>-StorageAccountKey <String>-StorageAccountName <String> |
Add-AzureInternalLoadBalancer (1) | -InternalLoadBalancerName <String>-ServiceName <String> |
Add-AzureInternalLoadBalancer (2) | -InternalLoadBalancerName <String>-ServiceName <String>-SubnetName <String>-StaticVNetIPAddress <IPAddress> |
Add-AzureInternalLoadBalancer (3) | -InternalLoadBalancerName <String>-ServiceName <String>-SubnetName <String> |
Add-AzureNetworkInterfaceConfig | -Name <string>-SubnetName <string>-StaticVNetIPAddress <string>-VM <IPersistentVM> |
Add-AzureNodeWebRole | -Name <String>-Instances <Int32> |
Add-AzureNodeWorkerRole | -Name <String>-Instances <Int32> |
Add-AzurePHPWebRole | -Name <String>-Instances <Int32> |
Add-AzurePHPWorkerRole | -Name <String>-Instances <Int32> |
Add-AzureProvisioningConfig (1) | -VM <IPersistentVM>-DisableGuestAgent-CustomDataFile <String>-Windows-AdminUsername <String>-Password <String>-ResetPasswordOnFirstLogon-DisableAutomaticUpdates-NoRDPEndpoint-TimeZone <String>-Certificates <CertificateSettingList>-EnableWinRMHttp-DisableWinRMHttps-WinRMCertificate <X509Certificate2>-X509Certificates <X509Certificate2[]>-NoExportPrivateKey-NoWinRMEndpoint |
Add-AzureProvisioningConfig (2) | -VM <IPersistentVM>-DisableGuestAgent-Linux-LinuxUser <String>-DisableSSH-NoSSHEndpoint-NoSSHPassword-SSHPublicKeys <LinuxProvisioningConfigurationSet+SSHPublicKeyList>-SSHKeyPairs <LinuxProvisioningConfigurationSet+SSHKeyPairList>-CustomDataFile <String>-Password <String> |
Add-AzureProvisioningConfig (3) | -VM <IPersistentVM>-DisableGuestAgent-CustomDataFile <String>-AdminUsername <String>-WindowsDomain-Password <String>-ResetPasswordOnFirstLogon-DisableAutomaticUpdates-NoRDPEndpoint-TimeZone <String>-Certificates <CertificateSettingList>-JoinDomain <String>-Domain <String>-DomainUserName <String>-DomainPassword <String>-MachineObjectOU <String>-EnableWinRMHttp-DisableWinRMHttps-WinRMCertificate <X509Certificate2>-X509Certificates <X509Certificate2[]>-NoExportPrivateKey-NoWinRMEndpoint |
Add-AzureTrafficManagerEndpoint | -DomainName <String>-Location <String>-Type <String>-Status <String>-Weight <[Int32]>-MinChildEndpoints <[Int32]>-TrafficManagerProfile <IProfileWithDefinition> |
Add-AzureVhd | -Destination <Uri>-LocalFilePath <FileInfo>-NumberOfUploaderThreads <Int32>-BaseImageUriToPatch <Uri>-OverWrite |
Add-AzureVMImage | -ImageName <String>-MediaLocation <String>-OS <String>-Label <String>-Eula <String>-Description <String>-ImageFamily <String>-PublishedDate <[DateTime]>-PrivacyUri <Uri>-RecommendedVMSize <String> |
Add-AzureWebRole | -Name <String>-Instances <Int32>-TemplateFolder <String> |
Add-AzureWorkerRole | -Name <String>-Instances <Int32>-TemplateFolder <String> |
Disable-AzureServiceProjectRemoteDesktop | |
Disable-AzureTrafficManagerProfile | -Name <String>-PassThru |
Disable-AzureWebsiteApplicationDiagnostic | -Name <String>-File-Storage-PassThru-Slot <String> |
Disable-AzureWebsiteDebug | -Name <String>-Slot <String>-PassThru |
Enable-AzureMemcacheRole | -RoleName <String>-CacheWorkerRoleName <String>-CacheRuntimeVersion <String> |
Enable-AzureServiceProjectRemoteDesktop | -Username <String>-Password <SecureString> |
Enable-AzureTrafficManagerProfile | -Name <String>-PassThru |
Enable-AzureWebsiteApplicationDiagnostic | -Name <String>-File-Storage <String>-StorageAccountName <String>-LogLevel <String>-PassThru-Slot <String> |
Enable-AzureWebsiteDebug | -Name <String>-Slot <String>-Version <String>-PassThru |
Export-AzureVM | -ServiceName <String>-Name <String>-Path <String> |
Get-AzureAccount | -Name <String>-SubscriptionDataFile <String> |
Get-AzureAclConfig | -EndpointName <String>-VM <IPersistentVM> |
Get-AzureAffinityGroup | -Name <String> |
Get-AzureAutomationAccount | -Name <String>-Location <String> |
Get-AzureAutomationJob (1) | -AutomationAccountName <String>-EndTime <DateTime>-StartTime <DateTime> |
Get-AzureAutomationJob (2) | -AutomationAccountName <String>-Id <Guid> |
Get-AzureAutomationJob (3) | -AutomationAccountName <String>-EndTime <DateTime>-StartTime <DateTime>-RunbookId <Guid> |
Get-AzureAutomationJob (4) | -AutomationAccountName <String>-EndTime <DateTime>-StartTime <DateTime>-RunbookName <String> |
Get-AzureAutomationJobOutput | -AutomationAccountName <String>-Id <Guid>-StartTime <DateTime>-Stream <String> |
Get-AzureAutomationRunbook (1) | -AutomationAccountName <String> |
Get-AzureAutomationRunbook (2) | -AutomationAccountName <String>-Id <Guid> |
Get-AzureAutomationRunbook (3) | -AutomationAccountName <String>-Name <String> |
Get-AzureAutomationRunbook (4) | -AutomationAccountName <String>-ScheduleName <String> |
Get-AzureAutomationRunbookDefinition (1) | -AutomationAccountName <String>-Slot <String>-Name <String> |
Get-AzureAutomationRunbookDefinition (2) | -AutomationAccountName <String>-Slot <String>-Id <Guid> |
Get-AzureAutomationRunbookDefinition (3) | -AutomationAccountName <String>-Slot <String>-VersionId <Guid> |
Get-AzureAutomationSchedule (1) | -AutomationAccountName <String> |
Get-AzureAutomationSchedule (2) | -AutomationAccountName <String>-Id <Guid> |
Get-AzureAutomationSchedule (3) | -AutomationAccountName <String>-Name <String> |
Get-AzureCertificate | -ServiceName <String>-ThumbprintAlgorithm <String>-Thumbprint <String> |
Get-AzureDataDisk | -Lun <[Int32]>-VM <IPersistentVM> |
Get-AzureDeployment | -ServiceName <String>-Slot <String> |
Get-AzureDeploymentEvent | -EndTime <DateTime>-ServiceName <string>-StartTime <DateTime> |
Get-AzureDisk | -DiskName <String> |
Get-AzureDns | -DnsSettings <DnsSettings> |
Get-AzureEndpoint | -Name <String>-VM <IPersistentVM> |
Get-AzureEnvironment | -Name <String> |
Get-AzureHDInsightCluster | -Certificate <X509Certificate2>-HostedService <String>-Endpoint <Uri>-Name <String>-Subscription <String> |
Get-AzureHDInsightJob (1) | -Cluster <String>-Credential <PSCredential>-JobId <String> |
Get-AzureHDInsightJob (2) | -Certificate <X509Certificate2>-HostedService <String>-Cluster <String>-Endpoint <Uri>-JobId <String>-Subscription <String> |
Get-AzureHDInsightJobOutput | -Certificate <X509Certificate2>-HostedService <String>-Cluster <String>-DownloadTaskLogs-Endpoint <Uri>-JobId <String>-StandardError-StandardOutput-Subscription <String>-TaskLogsDirectory <String>-TaskSummary |
Get-AzureHDInsightProperties | -Certificate <X509Certificate2>-HostedService <String>-Endpoint <Uri>-Locations-Subscription <String>-Versions |
Get-AzureInternalLoadBalancer | -ServiceName <String> |
Get-AzureLocation | |
Get-AzureManagedCache | -Name <String> |
Get-AzureManagedCacheAccessKey | -Name <String> |
Get-AzureManagedCacheLocation | |
Get-AzureMediaServicesAccount | -Name <String> |
Get-AzureNetworkInterfaceConfig | -Name <string>-VM <PersistentVMRoleContext> |
Get-AzureNetworkSecurityGroup | -Name <string>-Detailed |
Get-AzureNetworkSecurityGroupConfig | -VM <IPersistentVM>-Detailed |
Get-AzureNetworkSecurityGroupForSubnet | -VirtualNetworkName <string>-SubnetName <string>-Detailed |