Files
quality_recticel/windows_print_service/install_native_service.bat
2025-09-22 20:34:15 +03:00

160 lines
4.6 KiB
Batchfile

@echo off
REM Quality Label Printing Service - Windows Native Installation
REM This script creates a lightweight PowerShell-based print service
echo ================================================
echo Quality Label Printing Service - Native Windows
echo ================================================
echo.
REM Check if running as administrator
net session >nul 2>&1
if %errorLevel% NEQ 0 (
echo ERROR: This script must be run as Administrator!
echo Right-click on install_native_service.bat and select "Run as administrator"
pause
exit /b 1
)
echo ✅ Administrator privileges confirmed
echo.
REM Service configuration
set SERVICE_NAME=QualityLabelPrinting
set SERVICE_DIR=C:\Program Files\QualityLabelPrinting\PrintService
echo Creating service directory: %SERVICE_DIR%
if not exist "%SERVICE_DIR%" (
mkdir "%SERVICE_DIR%" 2>nul
if errorlevel 1 (
echo ❌ Failed to create service directory
pause
exit /b 1
)
)
echo ✅ Service directory created
echo.
echo Copying service files...
copy /Y "%~dp0print_service.ps1" "%SERVICE_DIR%\print_service.ps1"
if %errorLevel% neq 0 (
echo ❌ Error copying PowerShell service file!
echo Make sure print_service.ps1 is in the same directory as this installer.
pause
exit /b 1
)
copy /Y "%~dp0service_wrapper.bat" "%SERVICE_DIR%\service_wrapper.bat"
if %errorLevel% neq 0 (
echo ❌ Error copying service wrapper file!
echo Make sure service_wrapper.bat is in the same directory as this installer.
pause
exit /b 1
)
echo ✅ Service files copied successfully
echo.
echo Checking for existing service...
sc query "%SERVICE_NAME%" >nul 2>&1
if not errorlevel 1 (
echo ⚠️ Service already exists. Removing existing service first...
sc stop "%SERVICE_NAME%" >nul 2>&1
sc delete "%SERVICE_NAME%" >nul 2>&1
timeout /t 2 /nobreak >nul
)
echo.
echo Installing Windows Service...
REM Create the Windows service with corrected syntax
echo Creating service: %SERVICE_NAME%
echo Binary path: %SERVICE_DIR%\service_wrapper.bat
echo.
sc create %SERVICE_NAME% binPath="%SERVICE_DIR%\service_wrapper.bat" start=auto DisplayName="Quality Label Printing Service"
REM Check if service creation succeeded
sc query %SERVICE_NAME% >nul 2>&1
if errorlevel 1 (
echo ❌ Service creation verification failed
goto :service_error
)
echo ✅ Service created successfully
REM Set description (may fail on older Windows, that's OK)
sc description %SERVICE_NAME% "Local HTTP service for silent PDF printing from Quality Label Printing web application" >nul 2>&1
goto :service_created
:service_error
echo ❌ Failed to create Windows service
echo.
echo Troubleshooting:
echo 1. Make sure you're running as Administrator
echo 2. Check if the service already exists: sc query %SERVICE_NAME%
echo 3. If it exists, delete it first: sc delete %SERVICE_NAME%
echo.
echo Manual commands to try:
echo sc create %SERVICE_NAME% binPath="\"%SERVICE_DIR%\service_wrapper.bat\""
echo sc config %SERVICE_NAME% start=auto
echo.
pause
exit /b 1
:service_created
echo ✅ Windows service created successfully
echo.
echo Configuring service recovery options...
sc failure "%SERVICE_NAME%" reset=30 actions=restart/5000/restart/5000/restart/5000
echo.
echo Starting the service...
sc start "%SERVICE_NAME%"
if errorlevel 1 (
echo ⚠️ Service created but failed to start automatically
echo You can start it manually from Services (services.msc)
echo Or run: sc start %SERVICE_NAME%
) else (
echo ✅ Service started successfully
)
echo.
echo Checking service status...
sc query "%SERVICE_NAME%" | find "RUNNING" >nul
if errorlevel 1 (
echo ⚠️ Service is not running. Check the log file for details.
) else (
echo ✅ Service is running properly
)
echo.
echo ================================================
echo Installation Complete!
echo ================================================
echo.
echo Service Name: %SERVICE_NAME%
echo Service Directory: %SERVICE_DIR%
echo Service URL: http://localhost:8765
echo Log File: %SERVICE_DIR%\print_service.log
echo.
echo Testing endpoints:
echo Health Check: http://localhost:8765/health
echo Printers: http://localhost:8765/printers
echo Print PDF: POST to http://localhost:8765/print/pdf
echo.
echo To manage the service:
echo Start: sc start %SERVICE_NAME%
echo Stop: sc stop %SERVICE_NAME%
echo Delete: sc delete %SERVICE_NAME%
echo Status: sc query %SERVICE_NAME%
echo Restart: sc stop %SERVICE_NAME% ^&^& sc start %SERVICE_NAME%
echo.
echo Next Steps:
echo 1. Install the Chrome extension from the Quality Recticel system
echo 2. Test printing from the web application
echo 3. Check the log file if there are any issues
echo.
pause