win32-taskscheduler 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -7
- data/VERSION +1 -2
- data/lib/win32/taskscheduler.rb +10 -3
- data/lib/win32/taskscheduler/version.rb +1 -1
- data/spec/unit/win32/taskscheduler_spec.rb +37 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75d6081629e7734ccc70835edb8bcf222111038f4a169bc196348a66dd8e9f9d
|
4
|
+
data.tar.gz: 11722828b8240e0096df6bce84c425ecae0f6018500a83614529e45e717d3fa8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 59b2f4034e7ae6ed9048b2b99af095e1402907dae5d917445f9cbba00cdbe9e309b2dca7d87254d077a52643093ac07e2672fd2c4276fa54c22d088f8a3a58b3
|
7
|
+
data.tar.gz: 568cae572869dfa9e93abaaf1f8d593e516fdba1388b75ed962b08020a0c7caa8ec5b5a9831c7b915f3113973dbb27a89bcc745e3255a8a0b33fa1d9fa1229cd
|
data/CHANGELOG.md
CHANGED
@@ -4,28 +4,34 @@ Note: this log contains only changes from win32-taskscheduler release 0.4.0 and
|
|
4
4
|
-- it does not contain the changes from prior releases. To view change history
|
5
5
|
prior to release 0.4.0, please visit the [source repository](https://github.com/chef/win32-taskscheduler/commits).
|
6
6
|
|
7
|
-
<!-- latest_release
|
8
|
-
##
|
7
|
+
<!-- latest_release 2.0.1 -->
|
8
|
+
## [win32-taskscheduler-2.0.1](https://github.com/chef/win32-taskscheduler/tree/win32-taskscheduler-2.0.1) (2018-11-01)
|
9
9
|
|
10
10
|
#### Merged Pull Requests
|
11
|
+
- Minor Fix for logon_type flag while task registration [#75](https://github.com/chef/win32-taskscheduler/pull/75) ([Nimesh-Msys](https://github.com/Nimesh-Msys))
|
11
12
|
- Bump version to 2.0 [#71](https://github.com/chef/win32-taskscheduler/pull/71) ([btm](https://github.com/btm))
|
12
13
|
<!-- latest_release -->
|
13
14
|
|
14
|
-
<!-- release_rollup since=
|
15
|
-
### Changes since
|
15
|
+
<!-- release_rollup since=2.0.0 -->
|
16
|
+
### Changes since 2.0.0 release
|
16
17
|
|
17
18
|
#### Merged Pull Requests
|
18
|
-
-
|
19
|
-
- Move helpers under the Win32::TaskScheduler namespace [#70](https://github.com/chef/win32-taskscheduler/pull/70) ([btm](https://github.com/btm)) <!-- 1.0.13 -->
|
19
|
+
- Minor Fix for logon_type flag while task registration [#75](https://github.com/chef/win32-taskscheduler/pull/75) ([Nimesh-Msys](https://github.com/Nimesh-Msys)) <!-- 2.0.1 -->
|
20
20
|
<!-- release_rollup -->
|
21
21
|
|
22
22
|
<!-- latest_stable_release -->
|
23
|
+
## [win32-taskscheduler-2.0.0](https://github.com/chef/win32-taskscheduler/tree/win32-taskscheduler-2.0.0) (2018-10-11)
|
24
|
+
|
25
|
+
#### Merged Pull Requests
|
26
|
+
- Move helpers under the Win32::TaskScheduler namespace [#70](https://github.com/chef/win32-taskscheduler/pull/70) ([btm](https://github.com/btm))
|
27
|
+
- Bump version to 2.0 [#71](https://github.com/chef/win32-taskscheduler/pull/71) ([btm](https://github.com/btm))
|
28
|
+
<!-- latest_stable_release -->
|
29
|
+
|
23
30
|
## [win32-taskscheduler-1.0.12](https://github.com/chef/win32-taskscheduler/tree/win32-taskscheduler-1.0.12) (2018-10-11)
|
24
31
|
|
25
32
|
#### Merged Pull Requests
|
26
33
|
- Refactored configure_settings [#67](https://github.com/chef/win32-taskscheduler/pull/67) ([btm](https://github.com/btm))
|
27
34
|
- Fixing user registration at Non English version of windows [#69](https://github.com/chef/win32-taskscheduler/pull/69) ([Nimesh-Msys](https://github.com/Nimesh-Msys))
|
28
|
-
<!-- latest_stable_release -->
|
29
35
|
|
30
36
|
## [win32-taskscheduler-1.0.10](https://github.com/chef/win32-taskscheduler/tree/win32-taskscheduler-1.0.10) (2018-07-24)
|
31
37
|
|
data/VERSION
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
2.0.
|
2
|
-
|
1
|
+
2.0.1
|
data/lib/win32/taskscheduler.rb
CHANGED
@@ -512,7 +512,7 @@ module Win32
|
|
512
512
|
# trigger variable is a hash of options that define when the scheduled
|
513
513
|
# job should run.
|
514
514
|
#
|
515
|
-
def new_work_item(task, trigger, userinfo = { user: nil, password: nil })
|
515
|
+
def new_work_item(task, trigger, userinfo = { user: nil, password: nil, interactive: false })
|
516
516
|
raise TypeError unless userinfo.is_a?(Hash) && task.is_a?(String) && trigger.is_a?(Hash)
|
517
517
|
|
518
518
|
# If user ID is not given, consider it as a 'SYSTEM' user
|
@@ -609,6 +609,7 @@ module Win32
|
|
609
609
|
act.Path = 'cmd'
|
610
610
|
|
611
611
|
@password = userinfo[:password]
|
612
|
+
@interactive = userinfo[:interactive]
|
612
613
|
|
613
614
|
register_task_definition(taskDefinition, task, userinfo[:user], userinfo[:password])
|
614
615
|
|
@@ -1236,6 +1237,7 @@ module Win32
|
|
1236
1237
|
definition.Principal.LogonType = principals[:logon_type] if principals[:logon_type].to_s != ""
|
1237
1238
|
definition.Principal.GroupId = principals[:group_id] if principals[:group_id].to_s != ""
|
1238
1239
|
definition.Principal.RunLevel = principals[:run_level] if principals[:run_level].to_s != ""
|
1240
|
+
@interactive = true if principals[:logon_type] == TASK_LOGON_INTERACTIVE_TOKEN
|
1239
1241
|
register_task_definition(definition)
|
1240
1242
|
principals
|
1241
1243
|
end
|
@@ -1417,8 +1419,12 @@ module Win32
|
|
1417
1419
|
TASK_LOGON_SERVICE_ACCOUNT
|
1418
1420
|
elsif group_user?(user_id)
|
1419
1421
|
TASK_LOGON_GROUP
|
1420
|
-
elsif !
|
1421
|
-
|
1422
|
+
elsif !user_id.to_s.empty? && !password.to_s.empty?
|
1423
|
+
if @interactive
|
1424
|
+
TASK_LOGON_INTERACTIVE_TOKEN
|
1425
|
+
else
|
1426
|
+
TASK_LOGON_PASSWORD
|
1427
|
+
end
|
1422
1428
|
else
|
1423
1429
|
TASK_LOGON_INTERACTIVE_TOKEN
|
1424
1430
|
end
|
@@ -1435,6 +1441,7 @@ module Win32
|
|
1435
1441
|
#
|
1436
1442
|
def register_task_definition(definition, path = nil, user_id = nil, password = nil)
|
1437
1443
|
user_id ||= task_user_id(definition)
|
1444
|
+
password ||= @password
|
1438
1445
|
path ||= @task.Path
|
1439
1446
|
@task = @root.RegisterTaskDefinition(
|
1440
1447
|
path, # Path (name) of the task
|
@@ -112,6 +112,43 @@ RSpec.describe Win32::TaskScheduler, :windows_only do
|
|
112
112
|
end
|
113
113
|
end
|
114
114
|
|
115
|
+
describe '#logon_type' do
|
116
|
+
let(:user_id) { 'User' }
|
117
|
+
context 'With Password' do
|
118
|
+
let(:password) { 'Password' }
|
119
|
+
it 'Returns PASSWORD flag for non-system users' do
|
120
|
+
expect(@ts.send(:logon_type, user_id, password)).to eq(Win32::TaskScheduler::TASK_LOGON_PASSWORD)
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'Returns GROUP flag for group users' do
|
124
|
+
user_id = 'Guests'
|
125
|
+
expect(@ts.send(:logon_type, user_id, password)).to eq(Win32::TaskScheduler::TASK_LOGON_GROUP)
|
126
|
+
end
|
127
|
+
|
128
|
+
it 'Returns SERVICE_ACCOUNT flag for service-account users' do
|
129
|
+
user_id = 'System'
|
130
|
+
expect(@ts.send(:logon_type, user_id, password)).to eq(Win32::TaskScheduler::TASK_LOGON_SERVICE_ACCOUNT)
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
context 'Without Password' do
|
135
|
+
let(:password) { nil }
|
136
|
+
it 'Returns INTERACTIVE_TOKEN flag for non-system users' do
|
137
|
+
expect(@ts.send(:logon_type, user_id, password)).to eq(Win32::TaskScheduler::TASK_LOGON_INTERACTIVE_TOKEN)
|
138
|
+
end
|
139
|
+
|
140
|
+
it 'Returns GROUP flag for group users' do
|
141
|
+
user_id = 'Guests'
|
142
|
+
expect(@ts.send(:logon_type, user_id, password)).to eq(Win32::TaskScheduler::TASK_LOGON_GROUP)
|
143
|
+
end
|
144
|
+
|
145
|
+
it 'Returns SERVICE_ACCOUNT flag for service-account users' do
|
146
|
+
user_id = 'System'
|
147
|
+
expect(@ts.send(:logon_type, user_id, password)).to eq(Win32::TaskScheduler::TASK_LOGON_SERVICE_ACCOUNT)
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
115
152
|
private
|
116
153
|
|
117
154
|
def load_task_variables
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: win32-taskscheduler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Park Heesob
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-11-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ffi
|