我正在编写一个脚本,该脚本通常会被另一个应用程序(VMware vCenter Server)调用。从该应用程序中,我触发了一个批处理文件(重定向.bat)并传递一个变量,该变量是powershell脚本名称(TestMe.ps1)。
该脚本放置在Windows服务器上,当我进入Windows服务器的命令提示符并调用重定向脚本时,我看到我的PowerShell脚本按预期运行。但是,当我从应用程序触发它时,Powershell 脚本未运行或未产生输出。我确认重定向.bat正在运行,因为重定向.bat在日志文件中写入一行。
vCenter Server 應用程式正在「本地系統」帳戶下執行。可能是权限错误吗?LocalSystem 是否允许运行 Powershell 脚本?
我现在不知道 Powershell 脚本是否启动,因为它(当然)在运行时在我的控制台中不可见。批处理文件始终返回错误级别 = 0。
有关如何在脚本中插入应始终提供输出的调试信息的任何提示?有关如何解决此问题的提示?
重定向.bat:
set POWERSHELL=C:WINDOWSsystem32windowspowershellv1.0powershell.exe -nologo -noprofile -noninteractive
SET ERRORLEVEL =
echo %1 > G:DataStoreAlarmsLogRedirect-batch.txt
start %POWERSHELL% -command "&"%1""
echo Error level: %ERRORLEVEL% >> G:DataStoreAlarmsLogRedirect-batch.txt
我从命令行和应用程序调用重定向.bat如下所示:
redirect.bat G:DataStoreAlarmsScriptsTestGabrie.ps1
TestGabrie.ps1:
$String = "This is a test"
$String | Out-File -FilePath "G:DataStoreAlarmsLogPowershell.txt" -Append
问候加布里
问题似乎是 START 命令:
start %POWERSHELL% -command "&"%1""
将其更改为此后,它起作用了:
%POWERSHELL% -command "&"%1""
感谢您的帮助。