Add methods to check .Net and Powershell versions

bug/bundler_fix
wchen-r7 2016-08-03 17:49:15 -05:00
parent 14a387e4eb
commit 3ea3d95744
1 changed files with 36 additions and 0 deletions

View File

@ -30,6 +30,42 @@ module Powershell
return false return false
end end
#
# Returns the .Net version
#
def get_dotnet_version
cmd_out = cmd_exec('wmic /namespace:\\\\root\\cimv2 path win32_product where "name like \'%%.NET%%\'" get version')
cmd_out.scan(/[\d\.]+/).flatten.first || ''
end
#
# Returns the Powershell version
#
def get_powershell_version
return nil unless have_powershell?
process, pid, c = execute_script('$PSVersionTable.PSVersion')
o = ''
while (d = process.channel.read)
if d == ""
if (Time.now.to_i - start < time_out) && (o == '')
sleep 0.1
else
break
end
else
o << d
end
end
o
o.scan(/[\d \-]+/).last.split[0,2] * '.'
end
# #
# Get/compare list of current PS processes - nested execution can spawn many children # Get/compare list of current PS processes - nested execution can spawn many children
# doing checks before and after execution allows us to kill more children... # doing checks before and after execution allows us to kill more children...