使用pwsh.exe -File执行脚本后无法返回命令行的问题求助
解决方法
- 检查脚本资源释放情况
VBO的cmdlet在PS7里可能存在资源未释放的问题,导致进程无法正常退出。在脚本末尾添加以下代码强制清理:
$org = $null [GC]::Collect()
- 换用
-Command参数执行脚本
放弃-File参数,尝试用-Command调用脚本,进程退出逻辑可能不同:
pwsh -Command "& '.\Test.ps1'; exit"
也可以直接将脚本内容嵌入命令执行:
pwsh -Command "$org = Get-VBOOrganization -Name 'OrgName.onmicrosoft.com'; $org.Id.ToString(); exit"
升级VBO模块到最新版本
旧版Veeam Backup for Microsoft 365模块可能对PS7支持不完善,存在进程挂起的bug,直接升级到最新版本再测试。显式控制输出与退出状态
修改脚本,明确输出内容并主动指定退出状态:
$org = Get-VBOOrganization -Name "OrgName.onmicrosoft.com" Write-Output $org.Id.ToString() exit 0
之后用非交互模式执行:
pwsh -NonInteractive -File Test.ps1
- 排查进程挂起根源
用Process Explorer查看pwsh进程的线程状态,若发现线程卡在VBO的API调用上,说明是模块本身的问题,可直接向Veeam提交支持工单反馈。
内容的提问来源于stack exchange,提问作者Miroslav Vanický
相关产品推荐
相关产品推荐

