diff --git a/lib/puppet/util/monkey_patches.rb b/lib/puppet/util/monkey_patches.rb
index <HASH>..<HASH> 100644
--- a/lib/puppet/util/monkey_patches.rb
+++ b/lib/puppet/util/monkey_patches.rb
@@ -2,8 +2,12 @@ require 'puppet/util'
 module Puppet::Util::MonkeyPatches
 end
 
-unless defined? JRUBY_VERSION
+begin
   Process.maxgroups = 1024
+rescue Exception
+  # Actually, I just want to ignore it, since various platforms - JRuby,
+  # Windows, and so forth - don't support it, but only because it isn't a
+  # meaningful or implementable concept there.
 end
 
 module RDoc
Recover better when `maxgroups` is not implemented.

Puppet tries to bump up the maximum number of supplementary groups for the
process, which works only on Unix-like platform, in C-like implementations of
Ruby.

Previously there was a blacklist of platforms where this didn't work, which
means that as new platforms come along we failed in new and exciting ways.

Instead we can just rescue any failure from invoking the method and carry on,
which works for any failure mode including "not implemented" nicely.