class Specinfra::Command::Windows::Base::Process

Public Class Methods

check_process(process) click to toggle source
# File lib/specinfra/command/windows/base/process.rb, line 3
def check_process(process)
  Backend::PowerShell::Command.new do
    exec "(Get-Process '#{process}') -ne $null"
  end
end
get(process, opts) click to toggle source
# File lib/specinfra/command/windows/base/process.rb, line 9
def get(process, opts)
  column = opts[:format].chomp '='

  case column
  when 'pid'
    # map 'pid' to its windows equivalent
    get_process_property(process, 'processid')
  when 'user'
    %Q!gwmi win32_process -filter "name = '#{process}'" | select -first 1 | %{$_.getowner().user}!
  when 'group'
    # no concept of process group on Windows
    raise NotImplementedError.new('Unable to get process group on Windows')
  else
    get_process_property(process, column)
  end
end

Private Class Methods

get_process_property(process, property) click to toggle source
# File lib/specinfra/command/windows/base/process.rb, line 27
def get_process_property(process, property)
  %Q!Get-WmiObject Win32_Process -Filter "name = '#{process}'" | select -First 1 #{property} -ExpandProperty #{property}!
end