Class: Inspec::Resources::WindowsTasks
- Inherits:
- 
      Object
      
        - Object
- Inspec::Resources::WindowsTasks
 
- Defined in:
- lib/resources/windows_task.rb
Instance Method Summary collapse
- #disabled? ⇒ Boolean
- 
  
    
      #enabled?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    rubocop:disable Style/WordArray. 
- #exists? ⇒ Boolean
- #info ⇒ Object
- 
  
    
      #initialize(taskuri)  ⇒ WindowsTasks 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of WindowsTasks. 
- #last_result ⇒ Object
- #logon_mode ⇒ Object
- #run_as_user ⇒ Object
- #task_to_run ⇒ Object
- #to_s ⇒ Object
- #type ⇒ Object
Constructor Details
#initialize(taskuri) ⇒ WindowsTasks
Returns a new instance of WindowsTasks.
| 28 29 30 31 | # File 'lib/resources/windows_task.rb', line 28 def initialize(taskuri) @taskuri = taskuri @cache = nil end | 
Instance Method Details
#disabled? ⇒ Boolean
| 44 45 46 47 | # File 'lib/resources/windows_task.rb', line 44 def disabled? return false if info.nil? || info[:state].nil? info[:scheduled_task_state] == 'Disabled' || info[:state] == 'Disabled' end | 
#enabled? ⇒ Boolean
rubocop:disable Style/WordArray
| 39 40 41 42 | # File 'lib/resources/windows_task.rb', line 39 def enabled? return false if info.nil? || info[:state].nil? ['Ready', 'Running'].include?(info[:state]) end | 
#exists? ⇒ Boolean
| 33 34 35 36 | # File 'lib/resources/windows_task.rb', line 33 def exists? return true unless info.nil? || info[:uri].nil? false end | 
#info ⇒ Object
| 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | # File 'lib/resources/windows_task.rb', line 69 def info return @cache unless @cache.nil? # PowerShell v5 has Get-ScheduledTask cmdlet, # _using something with backward support to v3_ # script = "Get-ScheduledTask | ? { $_.URI -eq '#{@taskuri}' } | Select-Object URI,@{N='State';E={$_.State.ToString()}} | ConvertTo-Json" # Using schtasks as suggested by @modille but aligning property names to match cmdlet to future proof. script = "schtasks /query /v /fo csv /tn '#{@taskuri}' | ConvertFrom-Csv | Select @{N='URI';E={$_.TaskName}},@{N='State';E={$_.Status.ToString()}},'Logon Mode','Last Result','Task To Run','Run As User','Scheduled Task State' | ConvertTo-Json -Compress" cmd = inspec.powershell(script) begin params = JSON.parse(cmd.stdout) rescue JSON::ParserError => _e return nil end @cache = { uri: params['URI'], state: params['State'], logon_mode: params['Logon Mode'], last_result: params['Last Result'], task_to_run: params['Task To Run'], run_as_user: params['Run As User'], scheduled_task_state: params['Scheduled Task State'], type: 'windows-task', } end | 
#last_result ⇒ Object
| 53 54 55 | # File 'lib/resources/windows_task.rb', line 53 def last_result info[:last_result] end | 
#logon_mode ⇒ Object
| 49 50 51 | # File 'lib/resources/windows_task.rb', line 49 def logon_mode info[:logon_mode] end | 
#run_as_user ⇒ Object
| 61 62 63 | # File 'lib/resources/windows_task.rb', line 61 def run_as_user info[:run_as_user] end | 
#task_to_run ⇒ Object
| 57 58 59 | # File 'lib/resources/windows_task.rb', line 57 def task_to_run info[:task_to_run].to_s.strip end | 
#to_s ⇒ Object
| 98 99 100 | # File 'lib/resources/windows_task.rb', line 98 def to_s "Windows Task '#{@taskuri}'" end | 
#type ⇒ Object
| 65 66 67 | # File 'lib/resources/windows_task.rb', line 65 def type info[:type] unless info.nil? end |