gpt4 book ai didi

powershell - 父PowerShell控制台似乎可以控制子PowerShell控制台I/O

转载 作者:行者123 更新时间:2023-12-02 23:50:28 25 4
gpt4 key购买 nike

$ PSVersionTable输出为

Name                           Value
---- -----
PSVersion 5.1.18362.628
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.18362.628
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1

[System.Environment]::OSVersion.Version输出为
Major  Minor  Build  Revision
----- ----- ----- --------
10 0 18363 0

C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe以属于本地管理员组成员的用户身份启动,但未处于提升模式。将此称为“父”控制台。

在父控制台中,执行(其中“UserName”应由以交互方式登录到计算机的相同或不同用户替换)
Start-Process -FilePath powershell.exe -Credential UserName

输入正确的“用户名”密码后,将打开一个新的PowerShell窗口(我们称其为“子”控制台)。在其中键入“exit”,然后按Enter / Return键。子控制台中什么也没有发生:没有字母出现,Enter / Return不被处理。

切换到父控制台,按空格键四次。按下空格键时,“退出”将出现在子控制台中。再按一次空格键将在 child 中处理“Enter / Return”键,然后退出。

我已经在另一台运行Win 10的2016版(10.0 build 14393)的计算机上尝试过此方法,并且结果相同。

这似乎不正确。这样对吗?如果是,该如何避免?

谢谢。

最佳答案

This doesn't seem right. Is it right?



不,这是一个 长期存在的错误,不幸的是,自PowerShell 7.0以来,该错误仍然存​​在。据报道在this GitHub issue中。

JosefZ在评论中缩小了范围:

It seems that both processes (created via described procedure) are blocking keyboard input mutually. If I use the -Wait switch, then at least the child process accepts keyboard input…



how do I avoid it?



解决方法是使用标准的 runas.exe utility :
runas /user:UserName powershell.exe

警告:正如您所指出的那样,在新 session (自Windows 10版本1909起)中没有正确设置HOMEPATH(大概也是HOMEDRIVE)环境变量:HOMEPATH意外指向\WINDOWS\system32而不是用户的本地路径;相反,USERPROFILE确实包含期望值。

关于powershell - 父PowerShell控制台似乎可以控制子PowerShell控制台I/O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60676418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com