一个简单的PowerShell脚本,可以破坏PS控制台

mar*_*ark 3 windows powershell

这个问题在精神上与Powershell命令提示打印^ C时按Ctrl + C,为什么? - 两者都处理PowerShell控制台被搞砸了.

鉴于:

  • Windows 10或8或8.1
  • PowerShell控制台

请考虑以下脚本:

$iisexpress = "C:\Program Files (x86)\IIS Express\iisexpress.exe"
$config = "c:\xyz\.vs\config\applicationhost.config"
$logFile = "$env:temp\1.log"
$id = (Start-Process $iisexpress "/site:Site1","/config:$config" -PassThru -RedirectStandardOutput $logFile -NoNewWindow).Id
$id
Run Code Online (Sandbox Code Playgroud)

我不认为在这里有特定于解决方案的配置.重要的是我在重定向输出和收集进程ID时启动一个站点.

而已.尝试使用控制台一点.如果没有任何反应 - 再次运行脚本,即使它没有必要.控制台很拙劣.

为什么?我如何解决它?

rav*_*agw 6

我相信这是给-NoNewWindow你带来麻烦的旗帜.iisexpress.exe使用此开关在Powershell窗口内运行,似乎部分劫持了您的输入.

我还是好奇地研究为什么发生这种情况,没有答案的还没有,但一个简单的办法就是更换-NoNewWindow-WindowStyle hidden