| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | package ncutilsimport (	"embed"	"fmt"	"log"	"os"	"os/exec"	"strings"	"syscall")//go:embed windowsdaemon/winsw.exevar winswContent embed.FS// RunCmd - runs a local commandfunc RunCmd(command string, printerr bool) (string, error) {	args := strings.Fields(command)	cmd := exec.Command(args[0], args[1:]...)	cmd.Wait()	//cmd.SysProcAttr = &syscall.SysProcAttr{CmdLine: "/C \"" + command + "\""}	out, err := cmd.CombinedOutput()	if err != nil && printerr {		log.Println("error running command:", command)		log.Println(strings.TrimSuffix(string(out), "\n"))	}	return string(out), err}// RunCmd - runs a local commandfunc RunCmdFormatted(command string, printerr bool) (string, error) {	var comSpec = os.Getenv("COMSPEC")	if comSpec == "" {		comSpec = os.Getenv("SystemRoot") + "\\System32\\cmd.exe"	}	cmd := exec.Command(comSpec)	cmd.SysProcAttr = &syscall.SysProcAttr{CmdLine: "/C \"" + command + "\""}	cmd.Wait()	out, err := cmd.CombinedOutput()	if err != nil && printerr {		log.Println("error running command:", command)		log.Println(strings.TrimSuffix(string(out), "\n"))	}	return string(out), err}// GetEmbedded - Gets the Windows daemon creatorfunc GetEmbedded() error {	data, err := winswContent.ReadFile("windowsdaemon/winsw.exe")	if err != nil {		return err	}	fileName := fmt.Sprintf("%swinsw.exe", GetNetclientPathSpecific())	err = os.WriteFile(fileName, data, 0700)	if err != nil {		Log("could not mount winsw.exe")		return err	}	return nil}
 |