此计算机上未安装PowerShell管理单元“AzureManagementToolsSnapin”

时间:2013-05-02 11:03:52

标签: powershell-v2.0 azure-powershell

我下载了第一行使用'AzureManagementToolsSnapin'的脚本,如下所示: Add-PSSnapin AzureManagementToolsSnapin

我阅读了几篇博客,并从以下链接下载了Azure Powershell CMDLets: http://wappowershell.codeplex.com/releases/view/84058

当我尝试在下面的链接上安装每个给定的文档时,我无法安装。然而,它记录下面的错误,我完全不明白为什么:

  

安装组件   'C:\ WindowsAzure \ WAPPSCmdletsBin \发布\ Microsoft.WindowsAzure.Samples.ManagementTools.Powershell.dll'。   受影响的参数是:i = assemblypath =   C:\ WindowsAzure \ WAPPSCmdletsBin \发布\ Microsoft.WindowsAzure.Samples.ManagementTools.Powershell.dll   logfile =   C:\ WindowsAzure \ WAPPSCmdletsBin \发布\ Microsoft.WindowsAzure.Samples.ManagementTools.Powershell.InstallLog   logtoconsole =尝试查找时发生异常   安装人员   C:\ WindowsAzure \ WAPPSCmdletsBin \发布\ Microsoft.WindowsAzure.Samples.ManagementTools.Powershell.dll   部件。 System.Reflection.ReflectionTypeLoadException:无法执行   加载一个或多个请求的类型。检索LoaderExceptions   物业了解更多信息。中止安装   C:\ WindowsAzure \ WAPPSCmdletsBin \发布\ Microsoft.WindowsAzure.Samples.ManagementTools.Powershell.dll。   回滚装配   'C:\ WindowsAzure \ WAPPSCmdletsBin \发布\ Microsoft.WindowsAzure.Samples.ManagementTools.Powershell.dll'。   受影响的参数是:i = assemblypath =   C:\ WindowsAzure \ WAPPSCmdletsBin \发布\ Microsoft.WindowsAzure.Samples.ManagementTools.Powershell.dll   logfile =   C:\ WindowsAzure \ WAPPSCmdletsBin \发布\ Microsoft.WindowsAzure.Samples.ManagementTools.Powershell.InstallLog   logtoconsole =尝试查找时发生异常   安装人员   C:\ WindowsAzure \ WAPPSCmdletsBin \发布\ Microsoft.WindowsAzure.Samples.ManagementTools.Powershell.dll   部件。 System.Reflection.ReflectionTypeLoadException:无法执行   加载一个或多个请求的类型。检索LoaderExceptions   物业了解更多信息。中止安装   C:\ WindowsAzure \ WAPPSCmdletsBin \释放\ Microsoft.WindowsAzure.Samples.ManagementTools.Powershell.dll

拜托,有人可以帮助我理解我所缺少的东西。我也尝试从下面下载: http://www.windowsazure.com/en-us/downloads/

但是,我下载的脚本上的许多功能似乎都不存在于windows azure powershell中。

powershell代码片段如下所示,不确定它是否已过时:

Add-PSSnapin AzureManagementToolsSnapIn

#bla bla

Get-HostedServices -SubscriptionId $sub -Certificate $cert|Select ServiceName|

foreach {
 #Logic here
$service = $_.ServiceName

write-host $service

$deployId = (Get-HostedService $service -SubscriptionId $sub -Certificate $cert | Get-Deployment Staging).DeploymentId       

Get-DiagnosticAwareRoles -StorageAccountName $storage -StorageAccountKey $key -DeploymentId $deployId | 

foreach { 

     #DO stuff here

    }   

}



}

感谢。

1 个答案:

答案 0 :(得分:0)

Codeplex站点表明您的第二个链接现在是正确的下载链接。在底部,在命令行工具下,是PowerShell的链接。

我下载了,已安装,启动了新的PoSH会话,发现有一个Azure 模块,但没有管理单元。我似乎记得曾在某处读过微软正在推动每个人从管理单元迁移到模块。

    Directory: C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell


ModuleType Name                                ExportedCommands
---------- ----                                ----------------
Binary     Azure                               {Disable-AzureServiceProjectRemoteDesktop, Enable-AzureMemcacheRole, ...

如果没有您实际尝试执行的脚本,则无法诊断您的具体问题。但是你可能正在使用一些有点过时的东西,你至少需要切换到加载模块而不是管理单元。

在原始帖子编辑后进行修改:

Azure模块中不存在示例中调用的cmdlet,但Get-AzureDeployment可能映射到Get-DeploymentGet-AzureService 可能映射到{{ 1}}和Get-HostedServices 可以映射到Get-AzureRole - 但我不知道Azure。

简短的版本是,如果Codeplex管理单元不适合您,而官方的说法是您应该使用从Microsoft下载的模块(我上面提到的那个),那么您将会必须做出一些调整。