Windows Sandbox PowerShell登录命令窗口不可见



我正在尝试将Windows Sandbox与PowerShell登录命令一起使用。这是我的WSB文件的LogonCommand部分:

<LogonCommand>
<Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -executionpolicy unrestricted -file "C:\Users\WDAGUtilityAccount\Desktop\boot.ps1" -noexit</Command>
</LogonCommand>

Windows Sandbox实例加载正常,表明WSB文件内容没有语法/验证问题,但PowerShell窗口未显示。添加-windowstyle normal无效。

我怀疑LogonCommand内容是在命令提示符中运行的,该命令提示符不可见;继承";终端窗口不可见。

在这种情况下,是否可以强制PowerShell终端窗口显示自己?我想这样做,这样我就可以看到我收到的错误,因为PowerShell脚本没有按预期执行,而且我对任何输出/进度指示都视而不见。

找到一个答案(看起来不是最干净的选项,但有效(:

<Command>powershell -executionpolicy unrestricted -command "start powershell {-noexit -file C:UsersWDAGUtilityAccountDesktopboot.ps1}"</Command>
  • powershell从CMD切换到PowerShell
    • -windowstyle normal无法使此PowerShell窗口可见
    • -executionpolicy unrestricted允许嵌套PowerShell从文件运行
  • start powershell运行另一个具有可见窗口的PowerShell
    • 直接为LogonCommand运行此操作将不起作用
    • -noexit告诉嵌套的PowerShell保持可见
      • 这不是必需的,但对调试脚本错误很有用
    • -file C:UsersWDAGUtilityAccountDesktopboot.ps1运行给定的脚本
      • 在WSB配置中使用MappedFolder与机器共享

最新更新