Functions/Get-BCStatusDetailed.ps1
function Get-BCStatusDetailed(){ <# .Synopsis Returns Branch Cache usage statistsics of the last downloads per source host including peer usage statistics. .Description Returns Windows BranchCache usage statistsics of the last downloads per source host including peer usage statistics. With this information you are able to analyze if downloads are using the peers and save internet bandwidth. .Example # Displays a full report BranchCache downloads. Get-BCStatusDetailed #> $Events = Get-WinEvent -LogName "Microsoft-Windows-Bits-Client/Operational" | Where-Object { 60 -eq $_.Id } ForEach ($Event in $Events) { # Convert the event to XML $eventXML = [xml]$Event.ToXml() # Iterate through each one of the XML message properties For ($i=0; $i -lt $eventXML.Event.EventData.Data.Count; $i++) { if($eventXML.Event.EventData.Data[$i].name -eq "url"){ Add-Member -InputObject $Event -MemberType NoteProperty -Force -Name "UrlHost" -Value ([uri]($eventXML.Event.EventData.Data[$i].'#text')).DnsSafeHost } # Append these as object properties Add-Member -InputObject $Event -MemberType NoteProperty -Force -Name $eventXML.Event.EventData.Data[$i].name -Value $eventXML.Event.EventData.Data[$i].'#text' } } $BCStatsExtended = @() $BCStats = $Events | Group-Object -Property "UrlHost" foreach($BCStat in $BCStats){ $t = New-Object PSObject Add-Member -InputObject $t -MemberType NoteProperty -Force -Name "UrlHost" -Value $BCStat.Name Add-Member -InputObject $t -MemberType NoteProperty -Force -Name "Count" -Value $BCStat.Count Add-Member -InputObject $t -MemberType NoteProperty -Force -Name "MBTotal" -Value (($BCStat.Group | Measure-Object -Property bytesTotal -Sum).Sum/1MB) Add-Member -InputObject $t -MemberType NoteProperty -Force -Name "MBTransferedFromPeers" -Value (($BCStat.Group | Measure-Object -Property bytesTransferredFromPeer -Sum).Sum/1MB) Add-Member -InputObject $t -MemberType NoteProperty -Force -Name "peerProtocolFlagsOfFirstDownload" -Value (($BCStat.Group | Select-Object -First 1 -Property peerProtocolFlags).peerProtocolFlags) $BCStatsExtended += $t } $BCStatsExtended } # SIG # Begin signature block # MIINHQYJKoZIhvcNAQcCoIINDjCCDQoCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU5x7aFJIN8AW7gzU1/NMAINKw # DpOgggpfMIIFJzCCBA+gAwIBAgIQCU9NEi6qCZCLwI+uzRfDqjANBgkqhkiG9w0B # AQsFADByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD # VQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFz # c3VyZWQgSUQgQ29kZSBTaWduaW5nIENBMB4XDTE2MDYwNjAwMDAwMFoXDTE5MDYx # MTEyMDAwMFowZDELMAkGA1UEBhMCQ0gxEjAQBgNVBAgTCVNvbG90aHVybjERMA8G # A1UEBwwIRMOkbmlrZW4xFjAUBgNVBAoTDWJhc2VWSVNJT04gQUcxFjAUBgNVBAMT # DWJhc2VWSVNJT04gQUcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCf # mKY1pgRieuqd5gAm/4rtcNaFDhQD2VTUmfJzzmNjDbc4vHdkUUn9evlVUgYcuML+ # bINEALu+iNQeZsFgO94IwxER+C0b4rDS63eXEfwsktQy2bx2NNYOwpOzLTUnpIzx # ByHOixSv+OYENvJwD3Gp0dsKPkTxsbt+EFyoN3HgR/djzptRgxhlDLE4z+zBO2Tn # iyi0nCQ/1a5jB/weiuwKXwBdjv7M8RV6xKPuVXJaFqAkR5mxXu5y5wAvJOSOt2QZ # okouhAXPPSA/l2lVi2L1QjcCPz1RGp5g8QRvUgMUZybXFAGIOtkvOApVzY9sud8T # 1G3Wb895gkU4ryJYYx/RAgMBAAGjggHFMIIBwTAfBgNVHSMEGDAWgBRaxLl7Kgqj # pepxA8Bg+S32ZXUOWDAdBgNVHQ4EFgQUeoT0/y2AkW/rJZXf2lKEeHkGAkAwDgYD # VR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMHcGA1UdHwRwMG4wNaAz # oDGGL2h0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEu # Y3JsMDWgM6Axhi9odHRwOi8vY3JsNC5kaWdpY2VydC5jb20vc2hhMi1hc3N1cmVk # LWNzLWcxLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG/WwDATAqMCgGCCsGAQUFBwIB # FhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMAgGBmeBDAEEATCBhAYIKwYB # BQUHAQEEeDB2MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20w # TgYIKwYBBQUHMAKGQmh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2Vy # dFNIQTJBc3N1cmVkSURDb2RlU2lnbmluZ0NBLmNydDAMBgNVHRMBAf8EAjAAMA0G # CSqGSIb3DQEBCwUAA4IBAQCOcF5DIxnLQNhP33IRlabcNkM3adWtwtQKV+Ek6sYZ # CmkDDCWqO3B2q60HLXY0aNmBxLBLD6TiqUHAdoBFJ4ViJ2oIZqutfDAv1GGbS/4V # HBq2hIUTujxA6DP9l89fhCSW4JkvNdmDoodcV62834ChN2ZdNVbKDYz77A+F7RLg # 9FLY68LIf0Mt4A/Vm/duaGDriM/Yadfo5p0Lu4ZUWla+07cUeGk7U6kHQL9+RSj6 # iXV11GfWPaLVgFgYFm/GBajE8OoIoNxFDkQfjMj1zf8wncK2wHF5azCDx4SrLyel # JMX0JH2+GaM7VbTFAQoR2pxFXF+G1RUMDZw1XK5bfMOiMIIFMDCCBBigAwIBAgIQ # BAkYG1/Vu2Z1U0O1b5VQCDANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQGEwJVUzEV # MBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29t # MSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMTMxMDIy # MTIwMDAwWhcNMjgxMDIyMTIwMDAwWjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMM # RGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQD # EyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBMIIBIjAN # BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8OEa9ndwfTCzFJGc/Q+0WZ # sTrbRPV/5aid2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq8JyGpdglrA55KDp+6dFn # 08b7KSfH03sjlOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRpwsJS8hRniolF1C2ho+mI # LCCVrhxKhwjfDPXiTWAYvqrEsq5wMWYzcT6scKKrzn/pfMuSoeU7MRzP6vIK5Fe7 # SrXpdOYr/mzLfnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3jNEgJSPrCGQ+UpbB8g8S # 9MWOD8Gi6CxR93O8vYWxYoNzQYIH5DiLanMg0A9kczyen6Yzqf0Z3yWT0QIDAQAB # o4IBzTCCAckwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYD # VR0lBAwwCgYIKwYBBQUHAwMweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhho # dHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNl # cnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwgYEG # A1UdHwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2Vy # dEFzc3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0 # LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwTwYDVR0gBEgwRjA4Bgpg # hkgBhv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNv # bS9DUFMwCgYIYIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsqCqOl6nEDwGD5LfZldQ5Y # MB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgPMA0GCSqGSIb3DQEBCwUA # A4IBAQA+7A1aJLPzItEVyCx8JSl2qB1dHC06GsTvMGHXfgtg/cM9D8Svi/3vKt8g # VTew4fbRknUPUbRupY5a4l4kgU4QpO4/cY5jDhNLrddfRHnzNhQGivecRk5c/5Cx # GwcOkRX7uq+1UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8AlEeKcFEehemhor5unXCBc # 2XGxDI+7qPjFEmifz0DLQESlE/DmZAwlCEIysjaKJAL+L3J+HNdJRZboWR3p+nRk # a7LrZkPas7CM1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8B4H6i9r5gkn3Ym6hU/oS # lBiFLpKR6mhsRDKyZqHnGKSaZFHvMYICKDCCAiQCAQEwgYYwcjELMAkGA1UEBhMC # VVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0 # LmNvbTExMC8GA1UEAxMoRGlnaUNlcnQgU0hBMiBBc3N1cmVkIElEIENvZGUgU2ln # bmluZyBDQQIQCU9NEi6qCZCLwI+uzRfDqjAJBgUrDgMCGgUAoHgwGAYKKwYBBAGC # NwIBDDEKMAigAoAAoQKAADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor # BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQUb6uREB5w # chl6gnGm0xY7ykRX95kwDQYJKoZIhvcNAQEBBQAEggEAYt3WuYn8GMqZn5CvOIQp # 765i5gWQJDQSovfWV01UrXUnegiFqF0HkI/7J/aeHT5fZKBEBycyCopnQeYCW5XI # UUO8th8+6FVv6k9y7cgHvlcgR77y6/ercCYqg7dEmAy+zp5hUg7+Xr5+Yw6fBIoi # xMyjsnY7lAodnjJR7wBkF95OhBvFnfyy77GOyQlq0ewNEP+Clo0h67yErFNJQxFN # vJv+tL1nHnWS8fK/YTLaVddhNHTxfCMubPHNCkj0xkKFbpONn6vRaWkj0sZKSnOV # nV4k+L87tLLOlKOjg1P/zezO7Rxd449hb8aAZhyXQl8KvoFl9lkPfbY7vtAouoQJ # bA== # SIG # End signature block |