gpt4 book ai didi

powershell - 为什么我的 Powershell session 有时拒绝运行外部命令行程序?

转载 作者:行者123 更新时间:2023-12-02 23:30:58 24 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,当在 Powershell 命令行中进行大量播放时,它会在某些时候停止执行任何命令行应用程序,例如 cmd.exemore.com ,但会继续执行 Powershell 功能等。我可以打开一个新的 Powershell 窗口

情况

  • 我正在使用 Powershell Community Extensions
  • 我有一个 Powershell profile
  • 我在尝试调试时似乎遇到了这个问题 a script I'm writing (稍后会详细介绍)

  • 问题举例

    通常我应该能够运行 ping 并看到像这样的正常输出:
    PS> ping google.com
    Pinging google.com [74.125.227.78] with 32 bytes of data:
    Reply from 74.125.227.78: bytes=32 time=30ms TTL=49
    Reply from 74.125.227.78: bytes=32 time=38ms TTL=49
    Reply from 74.125.227.78: bytes=32 time=31ms TTL=49
    Reply from 74.125.227.78: bytes=32 time=32ms TTL=49

    Ping statistics for 74.125.227.78:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
    Minimum = 30ms, Maximum = 38ms, Average = 32ms
    PS>

    但是,当我遇到此问题时,PS 提示会立即返回:
    PS> ping google.com
    PS>

    我可以在任务管理器中验证在此期间 ping 没有运行。此外,对于应该修改文件系统上文件的程序(如 takeown.exe 或 GnuWin32 的 wget.exe ),不会发生修改。据我所知,该命令根本没有运行。

    我能想到的每个非 Powershell 命令行应用程序都会发生这种情况( more.com 、GnuWin32 的 less.exeping.execmd.exepython.exe 来自官方 Python 发行版、草莓等)。

    我仍然可以运行任何 Powershell 函数、cmdlet 或别名。此外,我可以运行非命令行应用程序,如 perl.exe .

    (可能的)罪魁祸首:我的脚本

    过去几天我一直在尝试编写 PS 脚本,当这个问题开始出现时。在这里粘贴太长了(目前有 400 行),但我已经 uploaded it to pastebin如果你想看的话。 (目前效果不佳。)

    现在我正在处理该脚本中 WinPE-AddExplorer 函数中的一些权限问题,所以很多时候我在该函数运行时使用 Ctrl-C ...... ?

    最佳答案

    我有这个确切的问题。我猜你正在使用 Powershell V2。请参阅此错误报告 ( https://connect.microsoft.com/PowerShell/Feedback/Details/665809 )。据称已在 Powershell v3 中修复。 (我没有在 v4 中看到这个问题,使用在 v2 中不起作用的相同脚本)

    解决方法是将“[GC]::Collect()”放入写入控制台的循环中。

    关于powershell - 为什么我的 Powershell session 有时拒绝运行外部命令行程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10823595/

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