diff --git a/core/lib/Drupal/Core/Template/TwigPhpStorageCache.php b/core/lib/Drupal/Core/Template/TwigPhpStorageCache.php
index 744953dc574f12bd2b3d41a4bd42f2b1c5f35844..3d8501d84455ab3a9d10e575dacf0310fa79a932 100644
--- a/core/lib/Drupal/Core/Template/TwigPhpStorageCache.php
+++ b/core/lib/Drupal/Core/Template/TwigPhpStorageCache.php
@@ -83,6 +83,9 @@ public function generateKey(string $name, string $className): string {
     }
     else {
       $name = basename($name);
+      // Windows does not allow colons, which are used by Single Directory
+      // Components, in directory or file names.
+      $name = str_replace(':', '_', $name);
     }
 
     // Windows (and some encrypted Linux systems) only support 255 characters in