Я хотел бы создать сценарий, который будет выполнять различные действия при изменении сетевого подключения. Например, если машина подключается к моей офисной сети, я могу пожелать, чтобы она:
Затем, когда машина отключена от офисной сети, она может восстановить некоторые из них.
Предположительно «активная сеть» будет основана на диапазоне IP-адресов / шлюзов, имени сети WIFI и т. Д.
Есть ли у вас какие-либо рекомендуемые инструменты для этого? Я вижу, что что-то подобное применимо ко многим ИТ-специалистам, поэтому я уверен, что есть несколько хороших советов.
Обратите внимание, что это желательно, чтобы работать при изменении сети, а не только при входе / выходе пользователя.
Вы можете сделать это, используя Диспетчер задач:
На всякий случай там же доступны события для компьютера «Приостановить» и «Возобновить». Я, например, использую их, чтобы останавливать и перезапускать Hamachi при этих событиях, поскольку в противном случае на моем компьютере возникают проблемы.
Для компьютера «Suspend» вы можете использовать журнал «Microsoft-Windows-Kernel-Power / Thermal-Operational», источник «Kernel-Power» и идентификатор события 42.
Для компьютера «Возобновить» можно использовать журнал «Система», источник «Средство устранения неполадок с питанием» и идентификатор события 1.
Для входа / выхода пользователя я не знаю событий в Планировщике заданий (но я считаю, что они также доступны там), но вы можете настроить его здесь:
Вы можете сделать аналогичные действия для событий компьютера «Запуск» и «Завершение работы» в папке «Конфигурация компьютера» в том же окне. Сценарий запуска запускается под системной учетной записью до того, как пользователь войдет в систему.
Услуга "Распознавание сетевого местоположения" (http://msdn.microsoft.com/en-us/library/ms739931(VS.85).aspx) в Windows XP (и 2000? Я не помню ...) и выше включат эту функцию, но я не нашел, где кто-нибудь написал приложение, чтобы воспользоваться этим. Я бы сам хотел что-то написать, но у меня нет свободных циклов, чтобы даже подумать об этом.
Это не была бы простая мелочь на VBScript, но и кодирования было бы не так уж и много. Может быть, кто-нибудь подхватит идею и воплотит ее в жизнь. Есть даже образец кода на http://www.microsoft.com/downloads/details.aspx?familyid=ef8a6228-f11d-4ba0-b73e-dd8dc7dd11e8&displaylang=en.
Я много раз хотел эту функциональность, и я думаю, что многие люди хотели бы ее увидеть.
У меня был некоторый успех с Сетевые профили перед.
Используя платформу .net версии 2, можно использовать пространство имен System.Net.NetworkInformation. Отсюда можно определить:
доступность сети: NetworkAvailabilityChangedEventHandler () изменения сетевого адреса: NetworkAddressChangedEventHandler () ipaddress: IPAddressInformation
и так далее.
Я не знаю, насколько это доступно через PowerShell, потому что я им не пользуюсь. Но я написал очень простое приложение на панели задач vb.net, которое просто отслеживает доступность сети и подключается к общему сетевому ресурсу, когда сеть доступна. Если вас интересуют простые элементы кода, дайте мне знать.
Это своего рода косой и частичный ответ (и даже не задокументированный, потому что я не могу найти исходную статью), но я почти уверен, что в Windows 7 есть лист свойств объекта принтера, позволяющий изменять значения по умолчанию в зависимости от подсеть.
Я также хотел бы увидеть функции, относящиеся к остальной части вашего списка.
Вы можете создать командный файл, который считывает результаты команды ipconfig и запускать его каждые 5 секунд или около того ...