1+ //go:build windows
2+
13package schtasks
24
35import (
@@ -11,10 +13,6 @@ import (
1113 "strings"
1214)
1315
14- const (
15- binaryPath = "schtasks.exe"
16- )
17-
1816func getRegisteredTasks () ([]string , error ) {
1917 raw , err := listRegisteredTasks ()
2018 if err != nil {
@@ -26,7 +24,7 @@ func getRegisteredTasks() ([]string, error) {
2624 }
2725 list := make ([]string , 0 )
2826 for _ , taskLine := range all {
29- if strings .HasPrefix (taskLine [0 ], tasksPath ) {
27+ if len ( taskLine ) > 0 && strings .HasPrefix (taskLine [0 ], tasksPathPrefix ) {
3028 list = append (list , taskLine [0 ])
3129 }
3230 }
@@ -72,9 +70,14 @@ func createTask(taskName, filename, username, password string) (string, error) {
7270 return "" , ErrEmptyTaskName
7371 }
7472 params := []string {"/create" , "/tn" , taskName , "/xml" , filename }
73+
74+ if len (password ) > 0 && len (username ) == 0 {
75+ return "" , errors .New ("username is required when specifying a password" )
76+ }
7577 if len (password ) > 0 {
7678 params = append (params , "/ru" , username , "/rp" , password )
7779 }
80+
7881 stdout , stderr := & bytes.Buffer {}, & bytes.Buffer {}
7982 cmd := exec .Command (binaryPath , params ... )
8083 cmd .Stdout = stdout
0 commit comments