我已经在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”命令,但无法加载该模块。有关详细信息,请运行“Import-Module Az. Accounts”。
以及
在模块“Az. Compute”中找到了“Get-AzSnapshot”命令,但无法加载该模块。有关详细信息,请运行“Import-Module Az.Compute”
但我确保目标计算机Azure powershell、az模块、.net core和.net framework已安装并更新。是否需要在目标计算机中安装任何操作?
2条答案
按热度按时间aelbi1ox1#
此错误似乎是由于潜在的模块不兼容而发生的。请在此处检查可能的原因:症状:无法在Windows PowerShell中加载Az模块。请运行文档中提供的所有故障排除程序以进行交叉检查,并在安装所有最新模块后重新启动系统。
其他参考文献:
如果尝试了上述步骤后问题仍然存在,请告知我们,我们可以进一步调查。感谢您的耐心等待!
9o685dep2#
大多数情况下,问题是因为不允许从运行脚本的计算机执行脚本。如果尝试从Powershell伊势构建命令,则在帮助工具中可以看到“运行”选项被禁用。这是因为Powershell的当前策略不是由用户启动的,因此命令的执行受到限制
尝试运行以下命令来解决此问题,如果此命令不起作用,则问题可能是模块的问题,请首先尝试执行策略
设置执行策略远程签名-作用域当前用户
谢谢