Azure Powershell命令不起作用,在模块中找到命令,但是无法加载模块

问题描述 投票:0回答:1

我已经在winform中使用Az模块来控制Azure Winform,但是从winform执行脚本时出错。

Using objPS As PowerShell = PowerShell.Create()
    'Create the Selected Snapshot to VM OS Disk
    Dim strPowerShellScriptCreateOsDisk = "$storageType = 'StandardSSD_LRS'
                                           $location = 'Southeast Asia'
                                           $diskSizeGB = 64
                                           $snapshot = Get-AzSnapshot -ResourceGroupName '" & gstrResourceGroupName & "' -SnapshotName '" & gstrSelectedSnapshot & "' 
                                                             $osDisk = New-AzDisk -DiskName '" & gstrSelectedSnapshot & "_" & gstrVmName & "' -Disk `
                                                             (New-AzDiskConfig -AccountType $storageType -DiskSizeGB $diskSizeGB `
                                                             -Location $location -CreateOption Copy `
                                                             -SourceResourceId $snapshot.Id) `
                                                             -ResourceGroupName '" & gstrResourceGroupName & "'"

            'Swap the Created VM OS Disk to Virtual Machine
            Dim strPowerShellScriptSwapOsDisk = "$vm = Get-AzVM -ResourceGroupName '" & gstrResourceGroupName & "' -Name '" & gstrVmName & "'
                                             $disk = Get-AzDisk -ResourceGroupName '" & gstrResourceGroupName & "' -Name '" & gstrSelectedSnapshot & "_" & gstrVmName & "' 
                                             Set-AzVMOSDisk -VM $vm -ManagedDiskId $disk.Id -Name $disk.Name 
                                             Update-AzVM -ResourceGroupName '" & gstrResourceGroupName & "' -VM $vm"


            'Delete the Replaced Old Disk from Azure Storage
            Dim strPowerShellScriptDeleteDisk = "Remove-AzDisk -ResourceGroupName '" & gstrResourceGroupName & "' -DiskName '" & strOldDisk & "' -Force"


            objPS.AddScript(strPowerShellScriptConnectAccount + vbNewLine + strPowerShellScriptCreateOsDisk + vbNewLine + strPowerShellScriptSwapOsDisk + vbNewLine + strPowerShellScriptDeleteDisk)

            ' Check if objResult is Nothing then Ignore
            For Each objResult As PSObject In objPS.Invoke()
                If objResult IsNot Nothing Then Debug.WriteLine(objResult.ToString())
            Next
        End Using

它在我的计算机上可以运行,但是当我将该exe发布到另一台计算机上时,该功能不再起作用。我收到这些错误

在模块'Az.Accounts'中找到'Disconnect-AzAccount'命令,但是无法加载该模块。有关更多信息,请运行“导入模块Az.Accounts”。

在模块'Az.Compute'中找到'Get-AzSnapshot'命令,但是无法加载该模块。有关更多信息,请运行“导入模块Az.Compute”

但是我确保目标计算机Azure Powershell,az模块,.net核心和.net框架已安装并更新。我需要在目标计算机上安装任何动作吗?

winforms azure powershell azure-virtual-machine
1个回答
0
投票

此错误似乎是由于潜在的模块不兼容而发生的。请在此处检查相同的可能原因:Symptom: Cannot load Az modules in Windows PowerShell。一旦安装了所有最新模块,请仔细阅读文档中提供的所有疑难解答,以交叉检查并重新启动系统。

其他参考:

尽管尝试了上述步骤,请让我们知道问题是否仍然存在,我们可以进行进一步调查。感谢您的耐心等待!

© www.soinside.com 2019 - 2024. All rights reserved.