Похож на Вас, пытаются изменить полномочия файлов, которыми Вы не владеете. Необходимо приняться как владелец затем chmod 750.
Можно сделать это из приложения .NET, поскольку существует несколько рычагов, которые могут использоваться для инициирования его, когда сетевой кабель отключается, в особенности Уведомления Shell, к которым в теории можно было получить доступ через Powershell как его базирующийся .NET. Однако проблема состоит в том, что Ваше приложение/сценарий должно было бы работать, когда событие заторможено, чтобы поймать событие и сделать что-то.
Я предполагаю то, что Вашему желанию состоял в том, чтобы только назвать сценарий, когда сетевой кабель удален ни с чем больше работающим в фоновом режиме. Я не думаю, что это будет возможно без, имеют некоторое приложение, даже если его просто тупиковый сервис, который затем запустит Ваш скрипт, ожидающий события для случая.
Тем не менее у кого-то могло бы быть оригинальное решение, о котором я не думал.
Можно создать задачу в планировщике задач, который будет инициирован каждый раз, когда конкретное событие зарегистрировано. Если можно выяснить, какой идентификатор события зарегистрирован, когда сетевое соединение потеряно, у Вас может быть та задача, запускает Ваш скрипт.
Хорошо, существует простой код Powershell для запуска с. Обратите внимание, что можно использовать имя DNS вместо IP-адреса. Можно изменить {Запись "Работа"} блок для {} (ничего не сделайте), но это проверит с помощью ping-запросов слишком много времена секунда. Так используют Сон commandlet в блоке. Замена {пишет "Отказ!"} блок сценария для действий необходимо сделать в случае отказа. Можно расширить тот сценарий для проверки с помощью ping-запросов массива адресов последовательно, или можно установить некоторых в противоречии с броском действие не для первого потерянного ping, но после того, как набор их потерян. Можно даже использовать некоторый оператор выбора для принятия различных мер для различных неудавшихся хостов. Спросите, нужна ли Вам некоторая дополнительная помощь в сценариях.
while ((get-WmiObject Win32_PingStatus -filter "Address='192.168.1.1' ").Statuscode -eq 0) {Write "Working"; Sleep 2};{write "Failure!"}