Я пытаюсь получить список процессов, включая их текущую загрузку.typeperf "\Process(*)\% Processor Time" -sc 1
, кажется, дает мне вывод, который я хочу.Выполнение этого из cmd
работает.
Теперь я пытаюсь вызвать эту команду из моего кода Go
// Command to list processes
cmdPS := exec.Command("typeperf", "\"\\Process(*)\\% Processor Time\"", "-sc", "1")
cmdPS.Stdout = &buff
cmdPS.Stderr = &errBuff
err := cmdPS.Run()
if err != nil {
log.Printf("Err: %s", buff.String())
return nil, errors.Wrapf(err, "Failed to call: ps ax -o")
}
Это приводит к:
Exiting, please wait...
Error: No valid counters.
Note:
In order to use typeperf, you must either be a member of the local
Performance Log Users group, or the command must be executed from an
elevated command window.
СпособЯ неправильно форматирую командную строку?Я ожидаю, что при выполнении этой команды напрямую и через Go она будет работать с теми же разрешениями.