Powershell和长期运行的外部工具?

我正在试图使用PowerShell脚本使用JetComp.exe压缩MS-Access数据库。

这里是操作线:

# 4. Run JetComp LogWrite("Begin: Running JetComp") .\JETCOMP.EXE -src: $srcDB -dest: $dstDB | Out-Null #Run this command and wait for it to finish... IfErrorExit("Error Compacting Database") LogWrite("End: Running JetComp") 

JETCOMP.EXE程序似乎在实际完成之前就已经完成了,而且$ dstDB最终比compact还要小。 最初($ srcDB)约为1.8 GB,到命令完成时约为300,000 kb(约​​0.29 gb),与1.8 gb相差甚远,手工压缩时约为1.6 gb。

是否有某种types的超时,我不知道在PowerShell脚本?

PS我知道,当手动运行JETCOMP.EXE时,系统经常会将其检测为“无响应”,即使它实际上已经完成了工作,而等待足够长的时间也会使其完成。

这个数字可疑地接近2x 150MB远程PowerShell内存限制。 如果这确实是你的问题,那么JETCOMP可能没有得到足够的内存来做它需要做的事情,并且正在悄然失败。 如果你通过remote-PS运行,你可以这样检查限制:

 Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 

并设置它们:

 Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1024