Windows 8 lưu trữ mức sử dụng dữ liệu ước tính qua Wifi ở đâu?


19

Tôi vô tình phát hiện ra rằng trong Windows 8, nếu bạn nhấp chuột phải vào mạng không dây được kết nối trước đó từ giao diện màn hình Bắt đầu, có một tùy chọn để hiển thị mức sử dụng dữ liệu ước tính.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Dữ liệu này được lưu trữ ở đâu? Có thể tìm nạp thông qua PowerShell / WMI không? Trường hợp sử dụng đối với tôi sẽ là thiết lập cảnh báo tự động dựa trên việc sử dụng dữ liệu - Tôi hiện đang sử dụng Networx để phân tích chi tiết hơn, nhưng để cảnh báo nhanh, nếu tôi có thể tìm nạp cách sử dụng, tuyến đường tự động sẽ giúp ích rất nhiều.


1
Tôi tự hỏi tại sao nó chỉ ước tính .
Der Hochstapler

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Network\DataUsage\Wlancó vẻ liên quan. Tôi vẫn đang tìm kiếm.
Bob

Nó có liên quan, nhưng nghiên cứu của tôi cho thấy nó hoàn toàn liên quan đến gui, chưa thấy bất cứ điều gì về nơi ước tính thực tế được lưu trữ. không có gì trên google cho khóa reg đó ngoại trừ một kết quả tại thời điểm này.
MDMoore313

1
@OliverSalzburg Có lẽ họ gọi nó là ước tính vì nó có thể hiển thị một số khác với ISP của bạn. Có thể họ cũng đoán được phần trăm chi phí cũng vậy (điều mà Windows không thể đo lường được, vì nó được thêm vào ở nơi khác)
derobert

Câu trả lời:


3

Tôi nhớ khi bạn hỏi câu hỏi này lần đầu tiên, nhưng cuối cùng tôi cũng tìm ra được. Hy vọng nó vẫn còn sử dụng cho bạn hoặc người khác!

Bạn có thể truy cập dữ liệu này bằng cách gọi phương thức GetLocalUsage của các đối tượng ConnectionProfile , là các kết nối WLAN / WAN (tức là SSID). GetLocalUsage nhận hai tham số DateTime và trả về một đối tượng DataUsage chứa lượng dữ liệu được gửi và nhận trong khoảng thời gian được chỉ định. Bạn có thể nhận được một danh sách các đối tượng ConnectionProfile bằng cách gọi phương thức GetConnectionProfiles của NetworkIn information .

Tôi đã viết hàm sau lấy dữ liệu và trả về một đối tượng. Truyền cho nó một hoặc nhiều SSID và tùy ý bắt đầu và dừng 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

            }
        }
    }
}

Tuyệt vời, cảm ơn cho nghiên cứu và câu trả lời!
Sathyajith Bhat

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.