我在Win7机器上试过你的脚本。我没有DFSCMD.EXE存在,所以每次脚本执行它时我都会收到错误。除此之外,脚本运行了30多次没有任何麻烦。
我建议注释掉DFSCMD.EXE的调用表达式,看看它是如何工作的。如果它一致地工作,我会将其添加回来,然后在进行5-10次调用时观察Powershell和任务管理器中的整体系统性能。在Powershell下,我会寻找内存使用,句柄和线程。我预计Powershell会增加一些内存使用量,但不会很大,如果PS闲置,它应该会回落。退出后,每个DFSCMD.EXE实例都应从taskmgr中消失。
您还可以使用Process Explorer并获得更深入的信息。例如,procexp将让您查看进程的线程堆栈。一旦你进入“不工作状态”,你可以通过查看PS的线程来获得关于发生了什么的提示。您需要加载符号以使procexp在堆栈上显示符号。我认为procexp的帮助告诉你如何做到这一点。
除此之外,我将打破一个调试器...让好时光滚动