我正在编写一个通常会被另一个应用程序(VMware vCenter Server)调用的脚本。从该应用程序中,我触发批处理文件(redirect.bat)并传递一个变量,即powershell脚本名称(TestMe.ps1)。
脚本放在Windows Server上,当我进入Windows Server的命令提示符并调用重定向脚本时,我看到我的PowerShell脚本按预期运行。但是当我从应用程序触发它时,Powershell脚本没有运行或者没有产生输出。我确认运行了redirect.bat,因为redirect.bat在日志文件中写了一行。
vCenter Server应用程序在本地系统帐户下运行。这可能是权限错误吗? LocalSystem是否允许运行Powershell脚本?
我现在不知道Powershell脚本是否会启动,因为它(当然)在运行时在我的控制台中不可见。批处理文件始终返回errorlevel = 0。
有关如何在脚本中插入应始终提供输出的调试信息的任何提示?有关如何解决此问题的提示?
redirect.bat:
set POWERSHELL=C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -nologo -noprofile -noninteractive
SET ERRORLEVEL =
echo %1 > G:\DataStoreAlarms\Log\Redirect-batch.txt
start %POWERSHELL% -command "&"%1""
echo Error level: %ERRORLEVEL% >> G:\DataStoreAlarms\Log\Redirect-batch.txt
我从命令行和应用程序中调用redirect.bat,如下所示:
redirect.bat G:\DataStoreAlarms\Scripts\TestGabrie.ps1
TestGabrie.ps1:
$String = "This is a test"
$String | Out-File -FilePath "G:\DataStoreAlarms\Log\Powershell.txt" -Append
此致 Gabrie
答案 0 :(得分:0)
问题似乎是START命令:
start %POWERSHELL% -command "&"%1""
将其更改为此后,它有效:
%POWERSHELL% -command "&"%1""
感谢您的帮助。