Windows 8은 Wi-Fi를 통한 예상 데이터 사용량을 어디에 저장합니까?


19

실수로 Windows 8의 시작 화면 인터페이스에서 이전에 연결된 무선 네트워크를 마우스 오른쪽 버튼으로 클릭하면 예상 데이터 사용량을 표시하는 옵션이 있음을 발견했습니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

이 데이터는 어디에 저장되어 있습니까? PowerShell / WMI를 통해이를 가져올 수 있습니까? 나를위한 유스 케이스는 데이터 사용량을 기반으로 자동 알림을 설정하는 것입니다. 현재 Networx 를 사용 하여보다 자세한 분석을 수행하지만 빠른 알림을 위해 사용법을 가져올 수 있으면 자동 경로가 크게 도움이됩니다.


1
왜 그것이 단지 추정 되는지 궁금합니다 .
Der Hochstapler

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Network\DataUsage\Wlan관련이 있습니다. 아직도 찾고 있어요
Bob

관련이 있지만 내 연구에 따르면 순전히 GUI와 관련이 있으며 실제 추정치가 저장된 위치에 대해서는 아무것도 보지 못했습니다. 현재 하나의 결과를 제외하고 해당 reg 키에 대해 Google에 아무것도 없습니다.
MDMoore313

1
@OliverSalzburg ISP와 다른 번호가 표시 될 수 있기 때문에 추정치라고합니다. 아마도 그들은 약간의 오버 헤드도
예상

답변:


3

나는 당신이이 질문을 처음했을 때를 기억하지만, 마침내 그것을 알아 내기 위해 나왔습니다. 그것이 여전히 당신이나 다른 사람에게 사용되기를 바랍니다!

WLAN / WAN 연결 (예 : SSID) 인 ConnectionProfile 객체 의 GetLocalUsage 메서드를 호출하여이 데이터에 액세스 할 수 있습니다 . GetLocalUsage는 두 개의 DateTime 매개 변수를 사용하며 지정된 간격 동안 보내고받은 데이터 양을 포함 하는 DataUsage 개체를 반환 합니다. NetworkInformationGetConnectionProfiles 메소드를 호출하여 ConnectionProfile 오브젝트 목록을 얻을 수 있습니다 .

데이터를 검색하고 객체를 반환하는 다음 함수를 작성했습니다. 하나 이상의 SSID를 전달하고 선택적으로 DateTime을 시작 및 중지하십시오.

function Get-EstimatedDataUsage()
{
    Param(
        [Parameter(Position=0, Mandatory=$true, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)]
        [ValidateNotNullOrEmpty()]
        [String]$ProfileName,

        [Parameter(Position=1, Mandatory=$false)]
        [ValidateNotNullOrEmpty()]
        [DateTime]$From,

        [Parameter(Position=2, Mandatory=$false)]
        [ValidateNotNullOrEmpty()]
        [DateTime]$To
    )

    Process
    {
        foreach($profile in $ProfileName)
        {
            try
            {
                [void][Windows.Networking.Connectivity.NetworkInformation,Windows,ContentType=WindowsRuntime]
                $ConnectionProfiles = [Windows.Networking.Connectivity.NetworkInformation]::GetConnectionProfiles() | Where-Object ProfileName -EQ $profile
            }
            catch
            {
                Write-Error 'Unable to create instance of Windows.Networking.Connectivity.NetworkInformation.'
                continue
            }

            foreach($ConnectionProfile in $ConnectionProfiles)
            {
                $ProfileName = $ConnectionProfile.ProfileName

                if($From -eq $null)
                {
                    try
                    {
                        $ResetTime = Get-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Network\DataUsage\Wlan\$ProfileName -Name ResetTime -ErrorAction Stop | Select-Object -ExpandProperty ResetTime
                        $From_determined = [datetime]::FromFileTime($ResetTime)
                    }
                    catch
                    {
                        $From_determined = [datetime]::FromFileTime(0)
                    }
                }
                else
                {
                    $From_determined = $From
                }

                if($To -eq $null)
                {
                    $To_determined = Get-Date
                }
                else
                {
                    $To_determined = $To
                }

                $usage = $ConnectionProfile.GetLocalUsage($From_determined, $To_determined)

                $op = '' | select Name,Received,Sent,From,To

                $op.Name = $ProfileName
                $op.Received = $usage.BytesReceived
                $op.Sent = $usage.BytesSent
                $op.From = $From_determined
                $op.To = $To_determined

                $op

            }
        }
    }
}

연구와 답변에 감사드립니다!
Sathyajith Bhat

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.