diff --git a/lib/modules/manager/gradle-wrapper/util.spec.ts b/lib/modules/manager/gradle-wrapper/util.spec.ts
index 1feed75ae9a4c48d1ddf525278ac0620e0d927aa..e5e3ba7bb2d93d5b8fcee8fe8cfd4b9c939682fa 100644
--- a/lib/modules/manager/gradle-wrapper/util.spec.ts
+++ b/lib/modules/manager/gradle-wrapper/util.spec.ts
@@ -62,7 +62,7 @@ describe('modules/manager/gradle-wrapper/util', () => {
 
   describe('prepareGradleCommand', () => {
     it('works', async () => {
-      platform.mockReturnValueOnce('linux');
+      platform.mockReturnValue('linux');
       fs.statLocalFile.mockResolvedValue(
         partial<Stats>({
           isFile: () => true,
diff --git a/lib/modules/manager/gradle-wrapper/utils.ts b/lib/modules/manager/gradle-wrapper/utils.ts
index 430b0d4a226d45ee25c8b1ec597ae81585207484..cbd7a0f9629120e01929b9b54ea4a9750dc3caad 100644
--- a/lib/modules/manager/gradle-wrapper/utils.ts
+++ b/lib/modules/manager/gradle-wrapper/utils.ts
@@ -27,7 +27,8 @@ export async function prepareGradleCommand(
   const gradlewStat = await statLocalFile(gradlewFile);
   if (gradlewStat?.isFile() === true) {
     // if the file is not executable by others
-    if ((gradlewStat.mode & 0o1) === 0) {
+    if (os.platform() !== 'win32' && (gradlewStat.mode & 0o1) === 0) {
+      logger.warn('Gradle wrapper is missing the executable bit');
       // add the execution permission to the owner, group and others
       await chmodLocalFile(gradlewFile, gradlewStat.mode | 0o111);
     }