Метод, который вы предоставили, работал отлично для меня (я протестировал его с Ruby 2.5.8, 2.6.6 и 2.7.1), поэтому должно быть более глубокое обоснование того, что он не работает. Тем не менее, у меня есть решение. В своем личном опыте с Ruby и PowerShell я всегда использовал оператор `, который также выполняет команду и возвращает результат. Например, вы могли бы сделать:
if ( $operatingsystemrelease == '2008 R2' )
`powershell.exe Import-Module ServerManager`
end
Если это все еще не работает, я бы обратился к вашей установке Windows Server, в частности, убедившись, что ваши переменные среды не испорчены. Какими бы невероятными и дикими ни казались вещи, всегда есть такие моменты, которые можно объяснить только словами «потому что windows»;)