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沙箱实例可以正常加载,表明WSB文件内容没有语法/验证问题,但未显示PowerShell窗口。添加-windowstyle normal无效。

我怀疑logonCommand内容在不可见的命令提示符中运行,因此运行命令以某种方式从其中打开PowerShell,从而“继承”了终端窗口不可见。

在这种情况下是否可以强制PowerShell终端窗口显示自身?我想这样做是为了看到错误,因为PowerShell脚本未按预期执行,并且我看不到任何输出/进度指示。

解决方法

找到了一个答案(看起来不是最干净的选项,但是可行):

<Command>C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -executionpolicy unrestricted -command "start powershell {-noexit -file C:\\Users\\WDAGUtilityAccount\\Desktop\\boot.ps1}"</Command>
  • C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe从CMD切换到PowerShell
    • powershell单独行不通
    • -windowstyle normal无法使此PowerShell窗口可见
  • -executionpolicy unrestricted允许嵌套的PowerShell从文件运行
  • -command "start powershell运行带有可见窗口的另一个PowerShell
    • 直接为LogonCommand运行此操作
  • -noexit告诉嵌套的PowerShell保持可见
    • 这不是必需的,但对于调试脚本错误很有用
  • -file C:\\Users\\WDAGUtilityAccount\\Desktop\\boot.ps1}"运行给定脚本
    • 在WSB配置中使用MappedFolder将其放入计算机中

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...