调用命令 StackOverFlowException
Invoke-command StackOverFlowException
我正在尝试使用 Invoke-Command
到 运行 远程计算机上的脚本块。
脚本块是:
$scriptBlock = { echo Y | .\DP.EXE IMPORT $remoteExportDir 'MicrosoftDynamicsAx' $remoteMachine }
我运行这个脚本块是这样的:
Invoke-Command -ComputerName $remoteMachine -ScriptBlock $scriptBlock -AsJob
我 运行 这个,我可以看到它在远程机器上执行进程。此命令在本地 运行 大约需要 40-50 分钟。当我像这样远程操作时,它只需要 运行s 大约 25 分钟。
查看状态,它说它已完成且没有错误,但 DP.exe
生成了一个日志文件,但它没有生成。当我查看作业的输出时,我发现它失败并显示以下消息:
+ 类别信息:未指定:(:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
进程因 WhosebugException 而终止。
进程因 WhosebugException 而终止。
DP.EXE
是一个用于将数据导入 Microsoft Dynamics AX 2012 测试环境的应用程序。如果我只是 运行 在计算机本地执行此命令,则此命令可以正常工作。我正在尝试按计划在一系列 5 台以上的机器上为 运行 这个命令编写一个脚本。
我不确定为什么会收到此 WhosebugException 以及我可以做些什么来解决它。
问题出在脚本块中的变量上。当脚本块在远程机器上执行时,远程机器上的会话不知道这些变量是什么。为了解决这个问题,您需要向脚本块添加参数,然后在远程计算机上调用它时将值传递给它。
$scriptBlock = {
Param(
$remoteExportDir,
$remoteMachine
)
echo Y | .\DP.EXE IMPORT $remoteExportDir 'MicrosoftDynamicsAx' $remoteMachine
}
Invoke-Command -ComputerName $remoteMachine -ScriptBlock $scriptBlock -AsJob -ArgumentList $remoteExportDir,$remoteMachine
问题是 MaxMemoryPerShellMB 配置为 150mb 的内存使用量。我增加了这个,它解决了问题。为此,我打开了 powershell 并输入:
winrm 设置 winrm/config/winrs '@{MaxMemoryPerShellMB="2000"}'
我正在尝试使用 Invoke-Command
到 运行 远程计算机上的脚本块。
脚本块是:
$scriptBlock = { echo Y | .\DP.EXE IMPORT $remoteExportDir 'MicrosoftDynamicsAx' $remoteMachine }
我运行这个脚本块是这样的:
Invoke-Command -ComputerName $remoteMachine -ScriptBlock $scriptBlock -AsJob
我 运行 这个,我可以看到它在远程机器上执行进程。此命令在本地 运行 大约需要 40-50 分钟。当我像这样远程操作时,它只需要 运行s 大约 25 分钟。
查看状态,它说它已完成且没有错误,但 DP.exe
生成了一个日志文件,但它没有生成。当我查看作业的输出时,我发现它失败并显示以下消息:
+ 类别信息:未指定:(:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError 进程因 WhosebugException 而终止。 进程因 WhosebugException 而终止。
DP.EXE
是一个用于将数据导入 Microsoft Dynamics AX 2012 测试环境的应用程序。如果我只是 运行 在计算机本地执行此命令,则此命令可以正常工作。我正在尝试按计划在一系列 5 台以上的机器上为 运行 这个命令编写一个脚本。
我不确定为什么会收到此 WhosebugException 以及我可以做些什么来解决它。
问题出在脚本块中的变量上。当脚本块在远程机器上执行时,远程机器上的会话不知道这些变量是什么。为了解决这个问题,您需要向脚本块添加参数,然后在远程计算机上调用它时将值传递给它。
$scriptBlock = {
Param(
$remoteExportDir,
$remoteMachine
)
echo Y | .\DP.EXE IMPORT $remoteExportDir 'MicrosoftDynamicsAx' $remoteMachine
}
Invoke-Command -ComputerName $remoteMachine -ScriptBlock $scriptBlock -AsJob -ArgumentList $remoteExportDir,$remoteMachine
问题是 MaxMemoryPerShellMB 配置为 150mb 的内存使用量。我增加了这个,它解决了问题。为此,我打开了 powershell 并输入:
winrm 设置 winrm/config/winrs '@{MaxMemoryPerShellMB="2000"}'