diff --git a/application/pom.xml b/application/pom.xml
index 4241b66634..89a6377bea 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -417,6 +417,28 @@
+
+ copy-windows-install
+ process-resources
+
+ copy-resources
+
+
+ ${pkg.win.dist}/install
+
+
+ src/main/scripts/install
+
+ logback.xml
+
+ true
+
+
+
+ src/main/filters/windows.properties
+
+
+
copy-data
process-resources
@@ -503,6 +525,9 @@
org.apache.maven.plugins
maven-jar-plugin
+
+ **/logback.xml
+
ThingsBoard
diff --git a/application/src/main/assembly/windows.xml b/application/src/main/assembly/windows.xml
index 023c4350a8..5c6e0ee47e 100644
--- a/application/src/main/assembly/windows.xml
+++ b/application/src/main/assembly/windows.xml
@@ -33,6 +33,11 @@
*/**
+
+ ${pkg.win.dist}/install
+ install
+ windows
+
${pkg.win.dist}/conf
conf
@@ -75,5 +80,10 @@
windows
+
+ ${pkg.win.dist}/upgrade.bat
+
+ windows
+
diff --git a/application/src/main/scripts/windows/install.bat b/application/src/main/scripts/windows/install.bat
index d124e9a358..c160367486 100644
--- a/application/src/main/scripts/windows/install.bat
+++ b/application/src/main/scripts/windows/install.bat
@@ -69,9 +69,34 @@ IF "%JRE_PATH2%" == "" GOTO JAVA_NOT_INSTALLED
@ECHO Java 1.8 found!
@ECHO Installing ${pkg.name} ...
-%~dp0${pkg.name}.exe install
-@ECHO DONE.
+SET loadDemo=false
+
+if "%1" == "--loadDemo" (
+ SET loadDemo=true
+)
+
+SET BASE=%~dp0
+SET LOADER_PATH=%BASE%\conf,%BASE%\extensions
+SET jarfile=%BASE%\lib\${pkg.name}.jar
+SET installDir=%BASE%\data
+
+java -cp %jarfile% -Dloader.main=org.thingsboard.server.ThingsboardInstallApplication^
+ -Dinstall.data_dir=%installDir%^
+ -Dinstall.load_demo=%loadDemo%^
+ -Dspring.jpa.hibernate.ddl-auto=none^
+ -Dinstall.upgrade=false^
+ -Dlogging.config=%BASE%\install\logback.xml^
+ org.springframework.boot.loader.PropertiesLauncher
+
+if errorlevel 1 (
+ @echo ThingsBoard installation failed!
+ exit /b %errorlevel%
+)
+
+%BASE%${pkg.name}.exe install
+
+@ECHO ThingsBoard installed successfully!
GOTO END
diff --git a/application/src/main/scripts/windows/upgrade.bat b/application/src/main/scripts/windows/upgrade.bat
new file mode 100644
index 0000000000..3e6aed34f0
--- /dev/null
+++ b/application/src/main/scripts/windows/upgrade.bat
@@ -0,0 +1,45 @@
+@ECHO OFF
+
+setlocal ENABLEEXTENSIONS
+
+@ECHO Upgrading ${pkg.name} ...
+
+SET BASE=%~dp0
+
+:loop
+IF NOT "%1"=="" (
+ IF "%1"=="--fromVersion" (
+ SET fromVersion=%2
+ )
+ SHIFT
+ GOTO :loop
+)
+
+if not defined fromVersion (
+ echo "--fromVersion parameter is invalid or unspecified!"
+ echo "Usage: upgrade.bat --fromVersion {VERSION}"
+ exit /b 1
+)
+
+SET LOADER_PATH=%BASE%\conf,%BASE%\extensions
+SET jarfile=%BASE%\lib\${pkg.name}.jar
+SET installDir=%BASE%\data
+
+java -cp %jarfile% -Dloader.main=org.thingsboard.server.ThingsboardInstallApplication^
+ -Dinstall.data_dir=%installDir%^
+ -Dspring.jpa.hibernate.ddl-auto=none^
+ -Dinstall.upgrade=true^
+ -Dinstall.upgrade.from_version=%fromVersion%^
+ -Dlogging.config=%BASE%\install\logback.xml^
+ org.springframework.boot.loader.PropertiesLauncher
+
+if errorlevel 1 (
+ @echo ThingsBoard upgrade failed!
+ exit /b %errorlevel%
+)
+
+@ECHO ThingsBoard upgraded successfully!
+
+GOTO END
+
+:END