네트워크 변경 사항을 지속적으로 모니터링하고 대응하는 PowerShell 스크립트

네트워크 변경 사항을 지속적으로 모니터링하고 대응하는 PowerShell 스크립트

현재 저는 간단히 확인하는 정말 기본적인 PS 스크립트를 만들었습니다.기본 연결기본값이 스크립트에 지정된 것이 아닌 경우 VPN에 연결합니다.

$DefaultNetworkIndex = Get-NetRoute -DestinationPrefix 0.0.0.0/0 | Sort-Object {$_.RouteMetric+(Get-NetIPInterface -AssociatedRoute $_).InterfaceMetric} | Select-Object -First 1 -ExpandProperty InterfaceIndex
$DefaultNetwork = (Get-NetConnectionProfile -InterfaceIndex $DefaultNetworkIndex).Name

if ($DefaultNetwork -ne 'Some Connection Name') {
    Invoke-Expression 'rasdial VPN username password /phonebook:rasphone.pbk'
}

나는 그것을 구체화하고 싶다:

  1. 지속적으로 네트워크 변경 사항을 모니터링하고 이에 대응하여 작업을 수행합니다.
  2. VPN이 실행될 때까지 지정되지 않은 네트워크에 있는 경우 모든 네트워크 액세스를 차단합니다.

하지만 내 Google-fu는 위의 사항을 수행할 방법을 찾지 못했습니다. 이를 달성할 수 있는 조언(PS용 네트워킹 라이브러리 등)이 있으면 매우 환영할 것입니다.

답변1

나는 당신이 이것을 할 수 있는 두 가지 방법을 봅니다.

하나는 PowerShell 스크립트를 지속적으로 실행하므로 N초마다 루프에서 변경된 네트워크 상태를 확인합니다(유휴 상태인 경우 sleep 명령 사용).

또 다른 더 좋은 방법은 Windows 작업 스케줄러 이벤트에서 스크립트를 시작하는 것입니다. 예를 들어 사용자가 로그온하거나 컴퓨터가 시작될 때 검사를 트리거할 수 있습니다. 또한 사용할 수 있는 네트워크 관련 이벤트가 포함될 수 있는 시스템 이벤트 로그의 이벤트를 사용하여 특정 트리거를 정의할 수도 있습니다. (저는 네트워크 관련 작업에 이것을 사용하지 않았으므로 직접 확인해야 합니다.) 올바른 트리거를 사용하면 네트워크 상태가 변경될 때만 스크립트가 실행되도록 할 수 있습니다.

도움이 되었기를 바랍니다.

관련 정보