Powershell

Powershell 和長期執行的外部工具?

  • November 12, 2012

我正在嘗試使用 JetComp.exe 使用 powershell 腳本壓縮 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 ends up being smaller than the compact should even make it. Initially ( $ srcDB)它大約是 1.8 GB,到命令完成時它大約是 300,000 kb(大約 0.29 gb),這與手動壓縮時最終大約為 1.6 gb 的 1.8 gb 相差很遠。

在powershell腳本中是否有某種我不知道的超時?

PS 我知道,當手動執行 JETCOMP.EXE 時,系統經常將其檢測為“無響應”,即使它實際上正在完成工作,並且等待足夠長的時間將允許它完成。

這個數字可疑地接近 150MB 遠端 Powershell 記憶體限制的 2 倍。如果這確實是您的問題,則 JETCOMP 可能沒有足夠的 RAM 來完成它需要做的事情,並且正在悄悄地失敗。如果您通過遠端 PS 執行它,則可以檢查限制:

Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB

並設置它們:

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

引用自:https://serverfault.com/questions/419498