前面的博文中和大家聊了如何部署微软的最新混合云技术Microsoft Azure Stack,那么既然已经部署了Azure Stack,我们可以考虑创建一个存储帐户(blob或table),启动我们的第一个虚拟机,与租户/计划,或者向现有的Azure Stack市场发布更多的内容。但在进行下一步之前,我们需要我们的MSA环境准备好接受PowerShell连接。我们需要额外的模块和工具来运行针对Azure Stack本地订阅的现有AzureRM命令。
通过使用Windows Management Framework 5.0,我们可以有一种更好的方式与其他社区成员以预定义的格式共享PowerShell工作,这样任何人都可以在组织中轻松使用这些工具。使用名为“PowerShellGet”的新软件包管理器,您可以搜索公共或专用存储库来查找所需的PowerShell模块。默认情况下,有一个名为PSGallery的存储库,我们可以使用如下命令来产看:
Get-PSRepository
若需注册PSGallery存储库可运行如下命令:
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
配置使用Powershell管理Azure Stack
安装所需版本的Powershell模块:
Azure stack通过安装API版本配置文件兼容AzureRM模块,AzureRM.Bootstrapper模块提供使用API版本配置文件所需的PowerShell命令。使用以下命令安装AzureRM.Bootstrapper模块:
Install-Module -Name AzureRm.BootStrapper
为计算、存储、网络、密钥库等安装2017-03-09配置文件版本的AzureRM模块:
Use-AzureRmProfile -Profile 2017-03-09-profile
安装Azure Stack特定的Powershell模块,如AzureStackAdmin和AzureStackStorage:
Install-Module -Name AzureStack -RequiredVersion 1.2.10
配置使用Powershell管理Azure Stack
查看所需的版本的Powershell模块是否安装成功:
Get-Module -ListAvailable | where-Object {$_.Name -like “Azure*”}
配置使用Powershell管理Azure Stack
从GitHUB下载并解压Azure Stack Tools:
配置使用Powershell管理Azure Stack

invoke-webrequest https://github.com/Azure/AzureStack-Tools/archive/master.zip -OutFile master.zip
expand-archive master.zip -DestinationPath . -Force
cd AzureStack-Tools-master
配置使用Powershell管理Azure Stack
配置Powershell环境
导入Connect Powershell模块:
配置使用Powershell管理Azure Stack
注册AzureRM环境(管理环境用户环境二选一):
管理环境:
Add-AzureRMEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external"
配置使用Powershell管理Azure Stack
用户环境:
Add-AzureRMEnvironment -Name "AzureStackUser" -ArmEndpoint "https://management.local.azurestack.external"
配置使用Powershell管理Azure Stack
使用以下PS命令设置GraphEndpointResourceId值:
管理环境:
Set-AzureRmEnvironment -Name "AzureStackAdmin" -GraphAudience "https://graph.windows.net/"
配置使用Powershell管理Azure Stack
用户环境:
Set-AzureRmEnvironment -Name "AzureStackUser" -GraphAudience "https://graph.windows.net/"
配置使用Powershell管理Azure Stack

获取用于部署Azure Stack的活动目录租户的GUID值(使用AAD部署)
$TenantID = Get-AzsDirectoryTenantId -AADTenantName "wuyvzhanghotmail.onmicrosoft.com" -EnvironmentName "AzureStackAdmin"
配置使用Powershell管理Azure Stack
登陆到Azure Stack
管理员:
Login-AzureRmAccount -EnvironmentName "AzureStackAdmin" -TenantId $TenantID
配置使用Powershell管理Azure Stack
配置使用Powershell管理Azure Stack
用户:
Login-AzureRmAccount -EnvironmentName "AzureStackUser" -TenantId $TenantID
配置使用Powershell管理Azure Stack
配置使用Powershell管理Azure Stack
注册资源提供程序:
登录到管理员或用户门户后, 可以针对在该订阅中注册的资源提供程序发出操作。默认情况下, 所有基础资源提供程序都在默认的提供程序订阅 (管理员订阅) 中注册。在对新创建的用户订阅进行操作时, 如果这些订阅没有通过门户部署任何资源, 则应使用以下命令注册此订阅的资源提供程序
foreach($s in (Get-AzureRmSubscription)) {
Select-AzureRmSubscription -SubscriptionId $s.SubscriptionId | Out-Null
Write-Progress $($s.SubscriptionId + " : " + $s.SubscriptionName)
Get-AzureRmResourceProvider -ListAvailable | Register-AzureRmResourceProvider -Force
}
配置使用Powershell管理Azure Stack
在Azure上注册Azure Stack:
允许如下PS命令使用Azure注册Azure Stack:
C:\AzureStack-Tools-master\Registration\RegisterWithAzure.ps1 -azureDirectory wuyvzhanghotmail.onmicrosoft.com -azureSubscriptionId e5a2e705-e06f-454e-bbce-41d3bbeb1b9f -azureAccountId mas@wuyvzhanghotmail.onmicrosoft.com
配置使用Powershell管理Azure Stack
注册完成以后登陆Azure Stack管理端可以看到Azure Stack已经可以调用Azure中的部分资源:
配置使用Powershell管理Azure Stack