Nodejs execSync работает, но не работает, изменение на sytem не вступает в силу - PullRequest
0 голосов
/ 31 января 2019

Я хочу заблокировать chrome.exe в брандмауэр Windows .Команда для выполнения задачи:

netsh advfirewall firewall add rule name="Block Chrome" dir=out action=block program="C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" enable=yes'

Приведенная выше команда работает нормально, когда она запускается через PowerShell .Но когда я пытаюсь сделать это в Nodejs

const execSync = require('child_process').execSync,  

    command = 'netsh advfirewall firewall add rule name="Block Chrome" dir=out action=block program="C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" enable=yes'

const result = execSync( command )

console.log( result )

Он печатает

Ok.

По выводу, я предполагаю, что команда выполняется.Но на Chrome это не влияет.Он по-прежнему может получить доступ к Интернету.

Когда я запускаю ту же команду в PowerShell , он немедленно блокирует Chrome.Мне интересно, почему запуск команды на Nodejs не работает должным образом?

Учитывая, что Nodejs имеет права администратора , в чем здесь проблема?

1 Ответ

0 голосов
/ 31 января 2019

Вам необходимо избежать обратной косой черты:

    command = 'netsh advfirewall firewall add rule name="Block Chrome" dir=out action=block program="C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" enable=yes'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...