我正在尝试编写一个 powershell 脚本来自动化 Splunk 的oneshot
命令,该命令将明确地重新索引包含在受监视目录中的日志文件。给定一个日期范围,脚本将遍历保存日志文件的目录,并oneshot
为每个以该日期为目标的文件执行一次(通常每天有 50 到 110 个左右)。无论如何,我绝对不是你所说的“powershell guru”,这就是把我带到这里的原因。
仔细观察时,Invoke-Expression
似乎每次调用它时都会启动一个单独的 cmd.exe 实例。这会导致 splunkd 守护程序崩溃,或者导致 cmd.exe 崩溃。
话虽这么说,是否有更好的替代方案来使用Invoke-Expression
?看来我的脚本在触发下一个表达式之前并没有等待每个调用的表达式完成,这对服务器造成了不利影响。我已经读过在使用Invoke-Expression
调用外部非控制台应用程序时会发生这种情况。在这种情况下,我调用 splunk.exe 来执行命令,所以这是有道理的。
我正在考虑使用脚本主机而不是使用Invoke-Expression
,但首先想向 StackOverflow 的专业人士询问一些潜在的替代方案 :)
话虽这么说,过去有没有人遇到过类似的问题,如果有的话,你有什么替代方案?或者,是否有其他我可以使用的 powershell 工具来代替Invoke-Expression
它,不仅可以完成这项工作,而且可以提供更稳定的执行?非常感谢任何帮助/建议!