diff --git a/ProcessLib/HeatTransportBHE/Tests.cmake b/ProcessLib/HeatTransportBHE/Tests.cmake
index 1f97f770e7c94809d9652565dfcc1c2a6eb981fe..c3d6a2fdeb5d97febe0c73ca4a74684a6477dfee 100644
--- a/ProcessLib/HeatTransportBHE/Tests.cmake
+++ b/ProcessLib/HeatTransportBHE/Tests.cmake
@@ -89,7 +89,7 @@ AddTest(
     RUNTIME 50
     EXECUTABLE ogs
     EXECUTABLE_ARGS 3bhes_1U.prj
-    WRAPPER poetry # required for PYTHON_PACKAGES
+    WRAPPER time
     TESTER vtkdiff
     REQUIREMENTS OGS_USE_PYTHON AND NOT OGS_USE_MPI
     PYTHON_PACKAGES TESPy=0.3.2
diff --git a/scripts/cmake/ConanSetup.cmake b/scripts/cmake/ConanSetup.cmake
index 13950af348cfc38ad19beb56f6093d33205886fa..5c07f1f8dea75e56a584015760a00c0e3df1516b 100644
--- a/scripts/cmake/ConanSetup.cmake
+++ b/scripts/cmake/ConanSetup.cmake
@@ -3,9 +3,11 @@ if(NOT OGS_USE_CONAN)
 endif()
 string(TOLOWER ${OGS_USE_CONAN} OGS_USE_CONAN_lower)
 if(OGS_USE_CONAN_lower STREQUAL "auto" AND POETRY)
-    execute_process(
-        COMMAND poetry add conan=${ogs.minimum_version.conan}
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
+    execute_process(COMMAND ${CMD_COMMAND} poetry add conan=${ogs.minimum_version.conan})
+    find_program(CONAN_CMD conan HINTS
+        ${PROJECT_BINARY_DIR}/.venv/bin
+        ${PROJECT_BINARY_DIR}/.venv/Scripts
+        REQUIRED NO_DEFAULT_PATH
     )
 endif()
 find_program(CONAN_CMD conan HINTS ${PROJECT_BINARY_DIR}/.venv/bin)
diff --git a/scripts/cmake/PreFind.cmake b/scripts/cmake/PreFind.cmake
index 252127fc15bb11e7f52cd6685ad252e851f02e0b..783387ea358989c9d919d15163b08280e21f165d 100644
--- a/scripts/cmake/PreFind.cmake
+++ b/scripts/cmake/PreFind.cmake
@@ -85,6 +85,10 @@ if(IS_GIT_REPO AND NOT OGS_VERSION)
     )
 endif()
 
+if(MSVC)
+    set(CMD_COMMAND "cmd" "/c" CACHE INTERNAL "")
+endif()
+
 ### Python setup ###
 find_program(POETRY poetry)
 if(POETRY)
@@ -95,13 +99,7 @@ if(POETRY)
             ${PROJECT_BINARY_DIR}/pyproject.toml)
     endif()
     if(NOT EXISTS ${PROJECT_BINARY_DIR}/.venv)
-        if(MSVC)
-            set(CMD_PREFIX cmd /C)
-        endif()
-        execute_process(
-            COMMAND ${CMD_PREFIX} ${POETRY} install
-            WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-        )
+        execute_process(COMMAND ${CMD_COMMAND} poetry install)
     endif()
     set(Python3_ROOT_DIR ${PROJECT_BINARY_DIR}/.venv)
     set(Python3_EXECUTABLE ${Python3_ROOT_DIR}/bin/python)
@@ -116,6 +114,13 @@ else()
     find_package(Python3 ${ogs.minimum_version.python} COMPONENTS Interpreter)
 endif()
 if(POETRY)
-    set(Python3_VIRTUALENV_SITEPACKAGES
-        ${Python3_ROOT_DIR}/lib/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages)
+    if(MSVC)
+        file(TO_NATIVE_PATH "${Python3_ROOT_DIR}/Lib/site-packages"
+            Python3_VIRTUALENV_SITEPACKAGES)
+        string(REPLACE "\\" "\\\\" Python3_VIRTUALENV_SITEPACKAGES
+            ${Python3_VIRTUALENV_SITEPACKAGES})
+    else()
+        set(Python3_VIRTUALENV_SITEPACKAGES
+            ${Python3_ROOT_DIR}/lib/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages)
+    endif()
 endif()
diff --git a/scripts/cmake/test/AddTest.cmake b/scripts/cmake/test/AddTest.cmake
index ce12ca9fc8a81b0b355c9061383ea3b76f165470..fb18a77ae8509550c72c054ca1c1b7f43ef0d9e5 100644
--- a/scripts/cmake/test/AddTest.cmake
+++ b/scripts/cmake/test/AddTest.cmake
@@ -126,13 +126,6 @@ function (AddTest)
             message(STATUS "ERROR: mpirun was not found but is required for ${AddTest_NAME}!")
             return()
         endif()
-    elseif(AddTest_WRAPPER STREQUAL "poetry")
-        if(POETRY)
-            set(WRAPPER_COMMAND ${POETRY})
-            set(AddTest_WRAPPER_ARGS "run")
-        else()
-            set(DISABLED_TESTS_LOG "${DISABLED_TESTS_LOG}\nDisabling poetry wrapper for ${AddTest_NAME} as poetry exe was not found!" CACHE INTERNAL "")
-        endif()
     endif()
 
     # --- Implement testers ---
@@ -293,17 +286,10 @@ Use six arguments version of AddTest with absolute and relative tolerances")
     endif()
 
     if(AddTest_PYTHON_PACKAGES)
-        if(NOT AddTest_WRAPPER STREQUAL "poetry")
-            message(FATAL_ERROR "Benchmark ${AddTest_NAME} uses PYTHON_PACKAGES"
-                ", make sure to have the WRAPPER set to 'poetry'!")
-        endif()
         if(POETRY)
-            if(MSVC)
-                set(CMD_PREFIX cmd /C)
-            endif()
             execute_process(
-               COMMAND ${CMD_PREFIX} poetry add ${AddTest_PYTHON_PACKAGES}
-               WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
+                COMMAND ${CMD_COMMAND} poetry add ${AddTest_PYTHON_PACKAGES}
+                WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
             )
         else()
             message(STATUS "Warning: Benchmark ${AddTest_NAME} requires these "