আমার মনে আছে আপনি কখন এই প্রশ্নটি জিজ্ঞাসা করেছিলেন, তবে অবশেষে আমি এটি সন্ধান করার জন্য প্রায় পেয়েছিলাম। আশা করি এটি এখনও আপনার বা অন্য কারও কাজে লাগবে!
আপনি কল করে এই তথ্য অ্যাক্সেস করতে পারেন GetLocalUsage পদ্ধতি ConnectionProfile বস্তু, যা বেতার হয় / সংযোগ (যেমন SSIDs) WAN। গেটলোকলসেজে দুটি ডেটটাইম প্যারামিটার লাগে এবং নির্দিষ্ট ব্যবধানের সময় প্রেরণ এবং প্রাপ্ত ডেটার পরিমাণ সম্বলিত একটি ডেটা ইউজ অবজেক্ট দেয়। আপনি নেটওয়ার্ক ইনফরমেশন এর getConnicationProfiles পদ্ধতিতে কল করে সংযোগপ্রফিল অবজেক্টের একটি তালিকা পেতে পারেন ।
আমি নিম্নলিখিত ফাংশনটি লিখেছি যা তথ্য পুনরুদ্ধার করে এবং কোনও বস্তু ফেরত দেয়। এতে এক বা একাধিক এসএসআইডি পাস করুন এবং optionচ্ছিকভাবে ডেটটাইম শুরু এবং বন্ধ করুন:
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
}
}
}
}