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

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 最终比压缩后的大小还要小。最初 ($srcDB) 大约为 1.8 GB,到命令完成时,它大约为 300,000 kb(约​​ 0.29 gb),这与 1.8 gb 相差甚远,手动压缩后最终约为 1.6 gb。

powershell 脚本中是否存在我不知道的某种超时?

PS,我知道,当手动运行 JETCOMP.EXE 时,系统通常会将其检测为“没有响应”,即使它实际上正在完成工作,等待足够长的时间才能完成。

答案1

该数字可疑地接近 150MB 远程 Powershell 内存限制的 2 倍。如果这确实是您的问题,则可能是 JETCOMP 没有获得足够的 RAM 来执行其需要执行的操作,并且正在悄悄失败。如果您通过 remote-PS 运行此操作,则可以按如下方式检查限制:

Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB

设置方法如下:

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

相关内容