我最近已经开始与库伯内特斯和多克尔合作,并仍然是新的工作方式。我已经制作了一个ps1脚本来运行在Kubernetes上构建映像和执行映像所需的所有步骤。
我看到的是,所有步骤在ISE上都能很好地工作(除了这个:"kubectl exec -it测试运行程序pwsh")。仅就这一步而言,我必须在另一个PowerShell窗口上运行它。
当我在ISE中运行此步骤时,脚本将继续运行,而不会出现任何错误或停止。
有人知道这是库伯奈特斯在ISE上工作的一个限制,还是有一个解决办法可以让它发挥作用?
使用ISE非常快速,而且节省了大量的时间,所以当我必须复制、粘贴、每次在单独的PowerShell窗口中输入这些信息时,这确实会产生很大的影响。
提前感谢您的帮助!
P.S:我看了其他类似的问题/答案,这些问题似乎都与库伯内特斯不从事ISE有关。因此,这个问题。
命令:
kubectl exec -it test-runner pwsh预期(以及从PowerShell控制台运行时的实际情况):
----------------------
PS C:\windows\system32> kubectl exec -it test-runner pwsh
PowerShell 6.2.2
Copyright (c) Microsoft Corporation. All rights reserved.
https://aka.ms/pscore6-docs
Type 'help' to get help.
PS /test>
-----------------------------
Actual (when running from PowerShell ISE):
PS C:\SourceCodeTLM\Apollo> kubectl exec -it test-runner pwsh
PowerShell 6.2.2
Copyright (c) Microsoft Corporation. All rights reserved.
https://aka.ms/pscore6-docs
Type 'help' to get help.
(with a blinking cursor and script running without breaking and changing to the new path)...
-----------------------------------------------发布于 2019-08-23 08:53:10
PowerShell ISE 不支持交互式控制台应用程序,这意味着您不能从它启动其他shell。
ISE试图通过拒绝启动众所周知的shell来预测这一问题。例如,尝试启动cmd.exe时会出现以下错误消息:
Cannot start "cmd". Interactive console applications are not supported.
To run the application, use the Start-Process cmdlet or use
"Start PowerShell.exe" from the File menu.注意:
pwsh.exe,PowerShell (核心) 7+的CLI,并不是众所周知的shell之一,它表示ISE陈旧状态.正在被 Visual Studio代码 和 PowerShell扩展所取代。但是,ISE不可能检测到给定命令(最终)调用交互式控制台应用程序的所有情况;如果不调用,则尝试调用命令,从而产生模糊的错误消息或挂起(在您的情况下)。
正如错误消息所暗示的,必须在常规控制台窗口中在 ISE外部运行交互式控制台应用程序。
从ISE可以使用 启动过程 在新的常规控制台窗口中启动程序;在当前情况下:
Start-Process kubectl 'exec -it test-runner pwsh'Alternatively,首先在ISE之外运行PowerShell会话,例如在常规控制台窗口、Windows终端或的集成终端中。
发布于 2022-01-16 16:31:13
在深入研究之后,我找到了一种与交互式控制台应用程序交互的方法。
我们可以将SendKeys('key_here')用于特定的应用程序。
发布于 2022-02-08 16:11:34
您可以从PowerShell打开一个命令窗口并发送命令来打开shell。
Start-Process PowerShell -Wait "-NoProfile -ExecutionPolicy Bypass -Command `"kubectl exec helloworld-web-8495f4c888-jw2tg -n local-v1 -it -- /bin/bash`""https://stackoverflow.com/questions/57622459
复制相似问题