From 82c4a312d42351e8a16eb7499d6c84d84c53bc94 Mon Sep 17 00:00:00 2001 From: Donna Ryan <100233767+DonnaRyanMicrosoft@users.noreply.github.com> Date: Tue, 25 Feb 2025 20:01:27 -0500 Subject: [PATCH 1/6] Update Get-AVDW365Gateways.ps1 Changed URL to GCCH JSON Download --- Windows 365 Gateway IP Lookup/Get-AVDW365Gateways.ps1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Windows 365 Gateway IP Lookup/Get-AVDW365Gateways.ps1 b/Windows 365 Gateway IP Lookup/Get-AVDW365Gateways.ps1 index c403b5c..e52af1a 100644 --- a/Windows 365 Gateway IP Lookup/Get-AVDW365Gateways.ps1 +++ b/Windows 365 Gateway IP Lookup/Get-AVDW365Gateways.ps1 @@ -21,7 +21,8 @@ Param( #JSON sources if using Web $commercial = 'https://www.microsoft.com/en-us/download/details.aspx?id=56519' -$GCCH = "https://www.microsoft.com/en-us/download/confirmation.aspx?id=57063" +#old link $GCCH = "https://www.microsoft.com/en-us/download/confirmation.aspx?id=57063" +$GCCH = "https://www.microsoft.com/en-us/download/details.aspx?id=57063" #output CSV file $CSVFile = "$PSSCriptRoot\W365-Gateways.CSV" From 49a3c2442e75015b0bf3d2b51192654bd8884cf0 Mon Sep 17 00:00:00 2001 From: Donna Ryan <100233767+DonnaRyanMicrosoft@users.noreply.github.com> Date: Mon, 23 Jun 2025 16:03:22 -0400 Subject: [PATCH 2/6] Squashed commit of the following: commit 33f3d0bae1606db5982867d277dfe6987b0d0673 Author: Donna Ryan <100233767+DonnaRyanMicrosoft@users.noreply.github.com> Date: Wed Mar 26 15:17:12 2025 -0400 Initial Commit Includes both detection and remediation script, plus readme.md files --- .../MMR Detection.ps1 | 105 +++++++ .../MMR Remediation.ps1 | 265 ++++++++++++++++++ Multimedia Redirector Updater/readme.md | 53 ++++ 3 files changed, 423 insertions(+) create mode 100644 Multimedia Redirector Updater/MMR Detection.ps1 create mode 100644 Multimedia Redirector Updater/MMR Remediation.ps1 create mode 100644 Multimedia Redirector Updater/readme.md diff --git a/Multimedia Redirector Updater/MMR Detection.ps1 b/Multimedia Redirector Updater/MMR Detection.ps1 new file mode 100644 index 0000000..775c2e4 --- /dev/null +++ b/Multimedia Redirector Updater/MMR Detection.ps1 @@ -0,0 +1,105 @@ +<# +.COPYRIGHT +Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +See LICENSE in the project root for license information. +#> + +# Remote Desktop Multimedia Redirection updater - Detection Script +# Version 0.0.1 + +##################################### + +Param( + [parameter(mandatory = $false, HelpMessage = "Log path and file name")] + [string]$logpath = "$env:windir\temp\RDMMR-detect.log" +) + +#Retrieves the version number of the current MMR client +function get-CurrentMMRver { + + $response = (Invoke-WebRequest -Uri "https://aka.ms/avdmmr/msi" -UseBasicParsing) + $versionC = $response.BaseResponse.ResponseUri.AbsolutePath -replace ".*HostInstaller_", "" -replace ".x64.msi*", "" + $string = "The latest available version of the RD MMR client is " + $versionC + update-log -Data $string -Class Information -output both + return $versionC +} + +#Retrieves the version of MMR installed on the Cloud PC +function get-installedMMRver{ + if ((Test-Path -Path 'C:\Program Files\MsRDCMMRHost\MsMmrHost.exe') -eq $true){ + $version = (Get-ItemProperty -Path 'C:\Program Files\MsRDCMMRHost\MsMmrHost.exe') + $string = "The currently installed version of the RD MMR client is " + $version.VersionInfo.ProductVersion + update-log -Data $string -Class Information -output both + return $version.VersionInfo.ProductVersion + } + else + { + update-log -data "It doesn't appear that the MMR client is installed" -Class Warning -output both + return "0"} +} + +#Logging function +function update-log { + Param( + [Parameter( + Mandatory = $true, + ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, + Position = 0 + )] + [string]$Data, + [validateset('Information', 'Warning', 'Error', 'Comment')] + [string]$Class = "Information", + [validateset('Console', 'File', 'Both')] + [string]$Output + ) + + $date = get-date -UFormat "%m/%d/%y %r" + $String = $Class + " " + $date + " " + $data + if ($Output -eq "Console") { Write-Output $string | out-host } + if ($Output -eq "file") { Write-Output $String | out-file -FilePath $logpath -Append } + if ($Output -eq "Both") { + Write-Output $string | out-host + Write-Output $String | out-file -FilePath $logpath -Append + } + +} + +#Writes the header of the log +update-log -Data " " -Class Information -output both +update-log -Data "*** Starting RD MMR agent detection ***" -Class Information -output both +update-log -Data " " -Class Information -output both + + +$MMRCurrent = get-CurrentMMRver + +#Calls the function to get the installed version number +$MMRInstalled = get-installedMMRver -Erroraction SilentlyContinue + +#Handles the error code if Web RTC client is not installed. +if ($MMRInstalled -eq $null) { + + update-log -Data "RD MMR client was not detected. Returning Non-compliant" -Class Warning -output both + Exit 1 +} + +#Handles the error code if the Web RTC client is out of date. +if ($MMRInstalled -lt $MMRCurrent) { + + update-log -Data "RD MMR was detected to be out of date. Returning Non-compliant" -Class Warning -output both + Exit 1 +} + +#Handles the error code if the installed agent is newer than the latest available client. (shouldn't happen) +if ($MMRInstalled -gt $MMRCurrent) { + + update-log -data "The installed version is newer than what is available." -Class Warning -output both + exit 1 +} + +#Handles the error code if the agent is current. +if ($MMRInstalled -eq $MMRCurrent) { + + update-log -Data "The RD MMR client is current. Returning Compliant" -Class Information -output both + Exit 0 +} \ No newline at end of file diff --git a/Multimedia Redirector Updater/MMR Remediation.ps1 b/Multimedia Redirector Updater/MMR Remediation.ps1 new file mode 100644 index 0000000..cdfadf9 --- /dev/null +++ b/Multimedia Redirector Updater/MMR Remediation.ps1 @@ -0,0 +1,265 @@ +<# +.COPYRIGHT +Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +See LICENSE in the project root for license information. +#> + +# Remote Desktop Multimedia Redirection updater - Remediation Script +# Version 0.0.1 + +##################################### + +Param( + [parameter(mandatory = $false, HelpMessage = "Log path and file name")] + [string]$logpath = "$env:windir\temp\TeamsWebRTC-remediate.log", + [parameter(mandatory = $false, HelpMessage = "time to wait past disconnect")] + [string]$DCNTwait = 600, + [parameter(mandatory = $false, HelpMessage = "time to wait to re-check user state")] + [string]$StateDetWait = 300, + [parameter(mandatory = $false, HelpMessage = "evaluate user state only once")] + [switch]$retry, + [parameter(mandatory = $false, HelpMessage = "time in minutes to timeout")] + [int]$TimeOut = 60 +) + +#function to handle logging +function update-log { + Param( + [Parameter( + Mandatory = $true, + ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, + Position = 0 + )] + [string]$Data, + [validateset('Information', 'Warning', 'Error', 'Comment')] + [string]$Class = "Information", + [validateset('Console', 'File', 'Both')] + [string]$Output + ) + + $date = get-date -UFormat "%m/%d/%y %r" + $String = $Class + " " + $date + " " + $data + if ($Output -eq "Console") { Write-Output $string | out-host } + if ($Output -eq "file") { Write-Output $String | out-file -FilePath $logpath -Append } + if ($Output -eq "Both") { + Write-Output $string | out-host + Write-Output $String | out-file -FilePath $logpath -Append + } +} + +#function to query the user state and convert to variable +function get-userstate { + (((quser) -replace '^>', '') -replace '\s{2,}', ',').Trim() | ForEach-Object { + if ($_.Split(',').Count -eq 5) { + Write-Output ($_ -replace '(^[^,]+)', '$1,') + } + else { + Write-Output $_ + } + } | ConvertFrom-Csv +} + +#function to perform the upgrading +function invoke-remediation { + + $MMRCurrent = get-CurrentMMRver + + $MMRInstalled = get-installedMMRver + $string = "Installed MMR agent version is " + $MMRInstalled + update-log -Data $string -Class Information -Output Both + $string = "Latest version of MMR agent is " + $MMRCurrent + update-log -Data $string -Class Information -Output Both + + try { + + #Create a directory to save download files + $tempCreated = $false + if (!(Test-Path C:\RDMMRtemp)) { + New-Item -Path C:\ -ItemType Directory -Name RDMMRtemp | Out-Null + update-log -data "Temp path created" -output both -Class Information + $tempCreated = $true + } + + #Download MMR + update-log -Data "Downloading RD MMR client" -Class Information -output both + invoke-WebRequest -Uri "https://aka.ms/avdmmr/msi" -OutFile "C:\RDMMRtemp\MMR_Installer.msi" -UseBasicParsing -PassThru + + #Install MMR + update-log -Data "Installing RD MMR client" -Class Information -output both + $msireturn = Start-Process msiexec.exe -ArgumentList '/i C:\RDMMRtemp\MMR_Installer.msi /q /n /l*voicewarmup c:\windows\temp\RDMMRmsi.log' -Wait -PassThru + if ($msireturn.ExitCode -eq '0') { + update-log -data "MSIEXEC returned 0" -Class Information -Output Both + } + else { + $string = "MSIEXEC returned exit code " + $msireturn.ExitCode + update-log -data $string -Class Information -Output Both + exit 1 + } + + if ($tempCreated -eq $true) { + #Remove temp folder + update-log -Data "Removing temp directory" -Class Information -output both + Remove-Item -Path C:\RDMMRtemp\ -Recurse | out-null + } + else { + #Remove downloaded WebRTC file + update-log -Data "Removing RD MMR client installer file" -Class Information -output both + Remove-Item -Path C:\RDMMRtemp\MsRdcWebRTCSvc_HostSetup.msi + } + #Return Success + update-log -Data "Media Optimization Installed" -Class Information -output both + $MMRCurrent = get-CurrentMMRver + $string = "Current installed version is now " + $MMRCurrent + update-log -Data $string -Class Information -Output Both + return "Success" + } + catch { + Write-Error -ErrorRecord $_ + return /b "Fail" + } +} + +#function to handle user state detection logic +function invoke-userdetect { + update-log -data "Detecting user state." -Class Information -output both + $explorerprocesses = @(Get-WmiObject -Query "Select * FROM Win32_Process WHERE Name='explorer.exe'" -ErrorAction SilentlyContinue) + if ($explorerprocesses.Count -eq 0) { + update-log -data "There is not a user logged in. Skipping user state detection." -Class Information -Output both + Return + } + else { + foreach ($i in $explorerprocesses) { + $Username = $i.GetOwner().User + $Domain = $i.GetOwner().Domain + $string = $Domain + "\" + $Username + " logged on since: " + ($i.ConvertToDateTime($i.CreationDate)) + update-log -data $string -Class Information -Output Both + } + update-log -data "There is a logged on user" -Class Information -Output Both + } + + if ($retry -eq $true) { + do { + $session = get-userstate + $text = "Waiting for non-active user state." + update-log -data $text -Class Information -output both + $String = "Session State is " + $session.STATE + update-log -data $String -output both -Class Information + $string = "Idle Time is " + $session.'IDLE TIME' + update-log -data $String -output both -Class Information + + if ($TimeOut -gt 0) { + sleep -Seconds $StateDetWait + $TimeOut = ($TimeOut - $StateDetWait) + } + else { + update-log -Data "Timed out. Returning fail" -Class Error -output both + return 3 + } + } while ($session.state -eq "Active") + + update-log -data "User state is not active." -output both -Class Information + invoke-disctimer + } + + if ($retry -eq $false) { + update-log -Data "Attempting to detect only once." -Class Information -output both + $session = get-userstate + if ($session.state -eq "disc") { + $text = "User state is disconnected" + update-log -data $text -Class Information -output both + } + else { + update-log -Data "User state is not disconnected" -Class Warning -output both + return 2 + } + } +} + +#function to handle wait time between first non-active discovery and upgrade +function invoke-disctimer { + $string = "Waiting " + $DCNTwait + " seconds..." + update-log -Data $string -Class Information -output both + sleep -Seconds $DCNTwait + $Timeout = ($Timeout - $DCNTwait) + + $session = get-userstate + if ($session.STATE -eq "Active") { + update-log -Data "User state has become active again. Waiting for non-active state..." -Class Warning -output both + invoke-userdetect + } + else { + update-log -data "Session state is still non-active. Continuing with remediation..." -Class Information -output both + } +} + +#function to query the latest available version number of RD MMR client +function get-CurrentMMRver { + $response = (Invoke-WebRequest -Uri "https://aka.ms/avdmmr/msi" -UseBasicParsing) + $versionC = $response.BaseResponse.ResponseUri.AbsolutePath -replace ".*HostInstaller_", "" -replace ".x64.msi*", "" + $string = "The latest available version of the RD MMR client is " + $versionC + update-log -Data $string -Class Information -output both + return $versionC +} + +#function to determine what version of RDMMR is installed +function get-installedMMRver{ + if ((Test-Path -Path 'C:\Program Files\MsRDCMMRHost\MsMmrHost.exe') -eq $true){ + $version = (Get-ItemProperty -Path 'C:\Program Files\MsRDCMMRHost\MsMmrHost.exe') + $string = "The currently installed version of the RD MMR client is " + $version.VersionInfo.ProductVersion + update-log -Data $string -Class Information -output both + return $version.VersionInfo.ProductVersion + } + else + { + update-log -data "It doesn't appear that the RD MMR client is installed" -Class Warning -output both + return "0"} +} + +#Opening text of log. +update-log -Data " " -Class Information -output both +update-log -Data "*** Starting RD MMR agent remediation ***" -Class Information -output both +update-log -Data " " -Class Information -output both + +#Display timeout amount in the log - if using retry function +if ($retry -eq $true) { + $String = "Time out set for " + $Timeout + " minutes" + update-log -Data $String -output both -Class Information +} + +#Converts Timeout minutes to seconds +$TimeOut = $TimeOut * 60 + +#Starts the user state detection and handling +$var1 = invoke-userdetect + +# Exit if user is active (default). +#Return code for no retry - user is active +if ($var1 -eq 2) { + update-log -Data "User State is active. Returning fail. Try again" -Class Warning -output both + exit 1 +} + +#Exit if process times out. Used with "-retry" parameter. +#Return code for time out +if ($var1 -eq 3) { + update-log -Data "Timed out. Returning fail. Try again" -Class Warning -output both + exit 1 +} + +#Starts the remediaiton function +$result = $null +$result = invoke-remediation + +#Exit if the remediation was successful +if ($result -eq "Success") { + update-log -Data "Remediation Complete" -Class Information -output both + exit 0 +} + +#Exit if remediation failed +if ($result -ne "Success") { + update-log -Data "An error occured." -Class Error -output both + exit 1 +} + \ No newline at end of file diff --git a/Multimedia Redirector Updater/readme.md b/Multimedia Redirector Updater/readme.md new file mode 100644 index 0000000..9a710fd --- /dev/null +++ b/Multimedia Redirector Updater/readme.md @@ -0,0 +1,53 @@ +# Introduction + +The Remote Desktop Multimedia Redirection (RDMMR or MMR) is a critical tool in optimizing video played in a Cloud PC's web browser, and it needs to be kept up to date. +As of now, the MMR does not automatically update, causing many customers to have older versions of this solution still in production – +and degrading user experience. + +This script solution aims to solve these problems by detecting both the latest and the installed versions of MMR Client. If an upgrade is required, +the script will download the latest version automatically. The script also detects if the user state is active or disconnected, and only installing +the upgrade when the user state is disconnected – avoiding end user impact. + +> This solution will not work in a multi-session environment, nor with user profiles managed by FSLogix. + +## Deploying with Proactive Remediation + +### Detection Script + +The detection script checks for the installed and the latest available version of the MMR client. + +The script will return Compliant if the latest version is installed. + +If the version of the MMR client is out-of-date, or if it isn’t installed, it will return Non-Compliant. + +### Remediation Script + +The detection script verifies if the user is logged on, and if their state is active or inactive. The script will return Non-Compliant if the user +state is Active so as to ensure the user isn’t impacted by the upgrade. If the user state isn’t active, the script will continue to download +and install the latest version of the MMR Client. + +## Remediation Stand Alone + +The remediation script can be deployed without Proactive Remediation. The script has four parameters that can allow the script to run continuously +in the background until a users’ state is not active. + +-retry + +Using this parameter causes the script to not immediately return non-compliant if the users’ state is Active. Instead, the script will pause for a +time, and then re-check the user state. Default behavior doesn’t have this switch enabled. + +-StateDetWait + +This parameter sets the time in seconds that the script waits to re-check the user state. The default value is 300 seconds. + +-DCNTwait + +This parameter controls a secondary pause after the user state has disconnected. This wait’s purpose is to prevent impacting a user if they have accidentally disconnected from their Cloud PC, and are immediately reconnecting. Default value is 600 seconds + +-Timeout + +This is a parameter to specify how long the script should continue to try and install before quitting. The default value is 60 minutes. + +## Logging + +Verbose logging is built into the script. By default, the scripts write their logs to c:\windows\temp. This can be changed by using the parameter -logpath. While Proactive Remediation should be able to help diagnose upgrade issues, looking at the logs can provide further insight into the script behavior. From 90b90471c2f40a2696491efc0363d2979ffe89f6 Mon Sep 17 00:00:00 2001 From: Donna Ryan <100233767+DonnaRyanMicrosoft@users.noreply.github.com> Date: Mon, 22 Sep 2025 16:23:12 -0400 Subject: [PATCH 3/6] Bug Fix Fixed version detection bug, renamed file to remove version number --- ...=> Detect - WebRTC - Detection Script.ps1} | 31 +++++++++++++++---- ...mediate - WebRTC - Remediation Script.ps1} | 25 +++++++-------- 2 files changed, 37 insertions(+), 19 deletions(-) rename WebRTC Auto Updater/{Detect - WebRTC - Detection Script - 0.2.3.ps1 => Detect - WebRTC - Detection Script.ps1} (81%) rename WebRTC Auto Updater/{Remediate - WebRTC - Remediation Script - 0.2.8.ps1 => Remediate - WebRTC - Remediation Script.ps1} (92%) diff --git a/WebRTC Auto Updater/Detect - WebRTC - Detection Script - 0.2.3.ps1 b/WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 similarity index 81% rename from WebRTC Auto Updater/Detect - WebRTC - Detection Script - 0.2.3.ps1 rename to WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 index 408eef0..dcfff5f 100644 --- a/WebRTC Auto Updater/Detect - WebRTC - Detection Script - 0.2.3.ps1 +++ b/WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 @@ -4,7 +4,7 @@ Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT See LICENSE in the project root for license information. #> -# Version 0.2.3 +# Version 0.3.1 # ##################################### @@ -17,8 +17,7 @@ Param( function get-CurrentRTCver { $response = (Invoke-WebRequest -Uri "https://aka.ms/msrdcwebrtcsvc/msi" -UseBasicParsing) - $response.headers.'Content-Disposition' - $versionC = $response.Headers.'Content-Disposition' -replace ".*HostSetup_", "" -replace ".x64.msi*", "" + $versionC = $response.BaseResponse.ResponseUri.AbsolutePath -replace ".*HostSetup_", "" -replace ".x64.msi*", "" $string = "The latest available version of the WebRTC client is " + $versionC update-log -Data $string -Class Information -output both $global:currentversion = $versionC @@ -85,11 +84,24 @@ function get-teamsinstall { } if ($count -eq '0') { - update-log -data "Teams install not found. User may not have logged into machine yet. Returning Compliant" -Class Information -Output Both - Exit 0 + update-log -data "Classic Teams install not found. Checking for New Teams." -Class Information -Output Both + #Exit 0 + $appxpacks = Get-ChildItem 'C:\Program Files\WindowsApps' + + foreach ($appxpack in $appxpacks){ + if ($appxpack -match "MSTeams"){$count = $count + 1} + } + if ($count -eq 0){ + update-log -data "New Teams not found. Teams is not installed. Returning compliant." -Class Information -Output Both + Exit 0 + } + else{ + update-log -data "New Teams installation has been found" -Class Information -Output Both + } + } else { - update-log -data "Teams install found." -Class Information -Output Both + update-log -data "Old Teams install found." -Class Information -Output Both } } @@ -136,3 +148,10 @@ if ($RTCInstalled -eq $RTCCurrent) { update-log -Data "The WebRTC client is current. Returning Compliant" -Class Information -output both Exit 0 } + + +#$appxpacks = Get-ChildItem 'C:\Program Files\WindowsApps' + +#foreach ($appxpack in $appxpacks){ +# if ($appxpack -match "MSTeams"){write-host $appxpack} +#} \ No newline at end of file diff --git a/WebRTC Auto Updater/Remediate - WebRTC - Remediation Script - 0.2.8.ps1 b/WebRTC Auto Updater/Remediate - WebRTC - Remediation Script.ps1 similarity index 92% rename from WebRTC Auto Updater/Remediate - WebRTC - Remediation Script - 0.2.8.ps1 rename to WebRTC Auto Updater/Remediate - WebRTC - Remediation Script.ps1 index ba3ecdf..81b694e 100644 --- a/WebRTC Auto Updater/Remediate - WebRTC - Remediation Script - 0.2.8.ps1 +++ b/WebRTC Auto Updater/Remediate - WebRTC - Remediation Script.ps1 @@ -5,7 +5,7 @@ See LICENSE in the project root for license information. #> -# Version 0.2.8 +# Version 0.3.1 ##################################### @@ -63,20 +63,20 @@ function get-userstate { #function to perform the upgrading function invoke-remediation { $folders = Get-ChildItem -Path C:\users -Directory -force -ErrorAction SilentlyContinue | select fullname, name - $TeamsReg = "HKCU:\Software\Microsoft\Office\Teams" - $TeamRegExist = test-path -path $TeamsReg + #$TeamsReg = "HKCU:\Software\Microsoft\Office\Teams" + #$TeamRegExist = test-path -path $TeamsReg $RTCCurrent = get-CurrentRTCver $global:currentversion $RTCInstalled = get-installedRTCver try { - if ($TeamRegExist -eq $True) { - $PreventInstallStateKey = Get-Item -Path $TeamsReg - $preventInstall = $PreventInstallStateKey.GetValue("PreventInstallationFromMsi") - if ($preventInstall -ne $null) { - update-log -data "Removing PreventInstallationFromMsi reg key" -Class Information -output both - Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Office\Teams" -Name "PreventInstallationFromMsi" - } - } + #if ($TeamRegExist -eq $True) { + # $PreventInstallStateKey = Get-Item -Path $TeamsReg + # $preventInstall = $PreventInstallStateKey.GetValue("PreventInstallationFromMsi") + # if ($preventInstall -ne $null) { + # update-log -data "Removing PreventInstallationFromMsi reg key" -Class Information -output both + # Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Office\Teams" -Name "PreventInstallationFromMsi" + # } + #} #Create a directory to save download files $tempCreated = $false @@ -202,8 +202,7 @@ function invoke-disctimer { #function to query the latest available version number of WebRTC client function get-CurrentRTCver { $response = (Invoke-WebRequest -Uri "https://aka.ms/msrdcwebrtcsvc/msi" -UseBasicParsing) - $response.headers.'Content-Disposition' - $versionC = $response.Headers.'Content-Disposition' -replace ".*HostSetup_", "" -replace ".x64.msi*", "" + $versionC = $response.BaseResponse.ResponseUri.AbsolutePath -replace ".*HostSetup_", "" -replace ".x64.msi*", "" $string = "The latest available version of the WebRTC client is " + $versionC update-log -Data $string -Class Information -output both $global:currentversion = $versionC From 97cde487a750e4ef72ba56b1be0f2d899b5f0b39 Mon Sep 17 00:00:00 2001 From: Donna Ryan <100233767+DonnaRyanMicrosoft@users.noreply.github.com> Date: Thu, 25 Sep 2025 12:44:25 -0400 Subject: [PATCH 4/6] Removed unnecessary commented lines Removed unnecessary commented lines. Those should not have been included --- WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 | 6 ------ 1 file changed, 6 deletions(-) diff --git a/WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 b/WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 index dcfff5f..6c3d60a 100644 --- a/WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 +++ b/WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 @@ -149,9 +149,3 @@ if ($RTCInstalled -eq $RTCCurrent) { Exit 0 } - -#$appxpacks = Get-ChildItem 'C:\Program Files\WindowsApps' - -#foreach ($appxpack in $appxpacks){ -# if ($appxpack -match "MSTeams"){write-host $appxpack} -#} \ No newline at end of file From 04ad52ec297c79cb9b35f6bf938c4e3d96735334 Mon Sep 17 00:00:00 2001 From: Donna Ryan <100233767+DonnaRyanMicrosoft@users.noreply.github.com> Date: Thu, 25 Sep 2025 12:46:32 -0400 Subject: [PATCH 5/6] Update WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 Co-authored-by: kennywangms <101378737+kennywangms@users.noreply.github.com> Signed-off-by: Donna Ryan <100233767+DonnaRyanMicrosoft@users.noreply.github.com> --- WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 b/WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 index 6c3d60a..0aabc70 100644 --- a/WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 +++ b/WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 @@ -90,7 +90,7 @@ function get-teamsinstall { foreach ($appxpack in $appxpacks){ if ($appxpack -match "MSTeams"){$count = $count + 1} - } + } if ($count -eq 0){ update-log -data "New Teams not found. Teams is not installed. Returning compliant." -Class Information -Output Both Exit 0 From 9351564be5bf77a9ea6a3b38c1d367bbc7c6d053 Mon Sep 17 00:00:00 2001 From: Donna Ryan <100233767+DonnaRyanMicrosoft@users.noreply.github.com> Date: Thu, 25 Sep 2025 12:46:43 -0400 Subject: [PATCH 6/6] Update WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 Co-authored-by: kennywangms <101378737+kennywangms@users.noreply.github.com> Signed-off-by: Donna Ryan <100233767+DonnaRyanMicrosoft@users.noreply.github.com> --- WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 b/WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 index 0aabc70..00eedfd 100644 --- a/WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 +++ b/WebRTC Auto Updater/Detect - WebRTC - Detection Script.ps1 @@ -101,7 +101,7 @@ function get-teamsinstall { } else { - update-log -data "Old Teams install found." -Class Information -Output Both + update-log -data "Old Teams install found." -Class Information -Output Both } }