Does the new Teams SlimCore client side magic work with MsRdpEx?
Hello,
I am curious to know if you have tested MsRdpEx with the new Teams SlimCore optimization which is replacing the legacy WebRTC for multi media redirection in Teams?
https://learn.microsoft.com/en-us/microsoftteams/vdi-2
The legacy WebRTC worked on Remote Desktop Server and on-prem Windows 10/11, but I cannot get video or screen share feeds to work when using MsRdpEx (audio redirection works fine with SlimCore). I am curious if there is anything you can think of that may prevent the video / screen share logic from working when using MsRdpEx?
:)
I don't have an environment to test either the legacy WebRTC or the new Teams SlimCore, but from what I understand, legacy WebRTC works with MsRdpEx + msrdcex.exe, but not the new Teams SlimCore? Does the same copy of the MSRDC launched without MsRdpEx work with it? I'm assuming mstsc.exe doesn't have the required bits for Teams SlimCore.
Off the top of my head, I don't have a clue, so the best would be to capture MsRdpEx tracing logs for a session where you'd expect SlimCore to work but it doesn't. Maybe there's a hint in there about new internal properties, or maybe even new COM interfaces, who knows.
Hi,
the WebRTC way with audio / video is working sometimes. I am not able to figure out when it will work (better) and when it won't work. I had best luck in one on one ad hoc meetings where video on both sides worked and also screenshare did work. Audio is working all the time perfectly fine.
If it helps and you need a test environment, I can give you access to mine. Will also try to do some logging and provide them.
(I'm not sure about the SlimCore way. I have one Azure Virtual Desktop and some Citrix Virtual Apps & Desktops environments and in none of them the SlimCore AppXPackage made it on my local device yet. But would be nice to have it working with MsRdpEx.)
Best, Jan
SlimCore engine will load and trigger the local "MsTeamsVdi.exe" but Camera does not work. The attached log file should have capture some tries to access local camera.
SlimCore engine will load and trigger the local "MsTeamsVdi.exe" but Camera does not work. The attached log file should have capture some tries to access local camera.
Same issue I'm experiencing.
Hope for a solution!
Is there any fix in in sight for this?
Or until a solution is there, a way to disable Slimcore in favor of the old WebRTC? Some undocumented registry value maybe? I now have to disable updates and keep Teams to version 24180.205.2980.1757 which is the last one afaik before Slimcore came in. WebRTC works fine for us on our own RDS (2022) environments, both audio and video.
You can disable Slimcore via Cloud Policy
Set-CsTeamsVdiPolicy -VDI2Optimization "Disabled"
We made experience that you have to reset Teams Client to get back to old WebRTC ("avd media optimized") from Slimcore.
This works in our environment with newest Teams Client deployed by Teams bootstrapper.
In rare cases a user gets in slimcore mode even with this cloud policy. Reset of Teams Client helps in this situation.
Thing is we use this on non-azure machines. MsRdpEx can be used to use the new RDP client with your own RDS. And for now we use that in our own environment.
Same here with Windows Server 2022 RDSH.
Ah, great that works indeed. Now this might not be the place to discuss this, but would you know a way to disable VDI2 optimizations for people that just attent a Teams meeting as a guest? Ie. not all users might even be in a tenant.
I'm looking at the virtual channel plugins related to this that ship with MSRDC, there are 3:
"VDI Plugin 2.0", MsTeamsPluginAvd.dll, with an "EnableTeamsVdiPluginV2" registry key "Multimedia Remoter", MsMmrDVCPlugin.dll, with an "EnableMsMmrDVCPlugin" registry key "WebRTC Redirector", MsRdcWebRTCAddin.dll, with no obvious registry key that I could find
The VDI Plugin 2.0 is clearly the slimcore one which you are trying to use. Do you know if it depends on MMR to work?
Ok, so here's what I did so far:
In a Windows 11 VM, I have installed Microsoft Teams and set the registry key to get Teams to try enabling the media optimization:
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Teams" -Force
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Teams" -Name IsWVDEnvironment -PropertyType DWORD -Value 1 -Force
The good news is that with this registry key, Microsoft Teams tries enabling the media optimization. The bad news is that no matter how many times I restart Teams or reboot the VM, it always tells me I need to restart Teams to enable it.
At this point I haven't been able to see it working with a "happy path" scenario separate from MsRdpEx where it is reported to fail. How have you been testing?
I tried launching msrdc.exe directly without MsRdpEx, but hit an issue where newer versions of MSRDC block all unsigned .RDP files by default, AVD or not. I bypass this check through API hooking in MsRdpEx, but I was trying to see it work without MsRdpEx interference.
Thankfully, I found a new undocumented /SkipAvdSignatureChecks command-line option for msrdc.exe which works around the problem with no API hooking, so I could connect with msrdc.exe, but the Teams media optimization will still not kick in properly.
Hi @awakecoding ,
thanks for your reply!
In my previous tests the MMR was not needed. I'll guess MMR will be needed for Teams useed in browser on AVD. Teams optimization is done with WebRTC Redirector Service. I'm setting up a fresh Windows Server 2025 and give it a shot with and without SlimCore / with MsRdpEx and with "/SkipAvdSignatureChecks" command line. My last tests with working optimization are documented here (in german): https://jans.cloud/2024/08/rdp-teams-optimierung-unter-windows-server-2025/
Best regards, Jan
Thanks for the blog post @janscloud
Ok, so I've tried a few things. If I uninstall Microsoft Teams in the RDP server, then use teamsbootstrapper.exe -p, on first launch, I get this:
When I click Restart Now, I notice that on the RDP client machine, the Microsoft.Teams.SlimCore MSIX package gets installed automatically, so I guess this is done using the RDP virtual channel. The Microsoft.Teams.SlimCore MSIX package, however, doesn't seem to get installed in the RDP server, and I wonder if that's the problem.
The test VM is running Windows 11 24H2 with a local admin user. I'm logged in to Microsoft Teams with an account for a test tenant different from the tenant used for my RDP client machine. I have no idea if Teams somehow expects both sides to have Teams installed and logged in with the exact same user or not.
Anyway, once restarted, I always get this:
I can't click on "Restart Teams to optimize", so all I can do is quit Teams and start it again, only to have the same problem. I have the WebRTC redirector service installed inside the test VM, and it is running.
Are there specific .RDP file options required for SlimCore redirection to be possible in the first place? Maybe I've got a feature disabled that shouldn't be.
Maybe you can confirm is the Microsoft.Teams.SlimCore MSIX package should be installed in the RDP server or not, and if there's a way to force its installation.
I did not know about the /SkipAvdSignatureChecks parameter, that's a real nice one. I can confirm it works on Server 2022 with Teams and the WebRTC 'offloading':
For some reason I can't even get it to install the local Teams VDI (slimcore) component anymore, not even when I use an account from a tennant that doesn't have VDI2Optimization disabled through Powershell, or when I explicitely enable it again. For some reason it defaults to WebRTC now for ALL accounts. Which is for now what I want, but I don't know why it does that.
Also @awakecoding, you don't need Teams installed locally, I don't have that and until a few hours ago it automatically installed Slimcore locally.
@Rataplan626 this is so odd... so you're saying that until now, you had never noticed it installing the SlimCore package on the RDP client machine? I checked the Windows event viewer and found the CDN URL for the SlimCore MSIX package:
There's an error that precedes it, I'm not sure if it's benign:
In any case, it can be downloaded from https://res.cdn.office.net/ic3-1/slimcorevdi/2025.5.1.8/Microsoft.Teams.SlimCoreVdi.win-x64.msix and installed manually like this:
Add-AppxPackage -Path .\Microsoft.Teams.SlimCoreVdi.win-x64.msix
However, it doesn't seem to resolve the issue when I manually install the SlimCore package in the RDP server.
Yes it installed slimcore locally automatically, but as I didn't know how to disable / work around that, we installed Teams 24180.205.2980.1757 which is the last one to only have WebRTC, and disable updates. Now I am using a new Teams version, and I can't get it to switch to Slimcore anymore. I'm starting to think the laptop I'm using now is the issue. Going to try on my main work pc.
I never got slimcore to work when using Devolutions msrdpex, but WebRTC always works fine so far. But now we know of that /SkipAvdSignatureChecks switch I'd like to see if using the new RDP client without msrdpex magically makes Slimcore work. By the way, I don't think I've ever seen the slimcore being installed as a separate package on the RDS. Only on the client. But I'd have to check that.
[edit]
It's indeed my laptop that somehow doesn't install the slimcore anymore, nor does it even try. Have to look into that, it's the very same OS version as my main work pc (Win10 LTSC). On my main PC slimcore gets installed as usual, but alas, using msrdc /SkipAvdSignatureChecks
So I'll take a look why my laptop doesn't try to install the Slimcore at all. But still as Slimcore doesn't work, I'll revert to WebRTC for now. Next week I'll try if I can get it to force to use WebRTC for guest-users without a tennant to make settings in. And as my laptop seems to 'report' it can't use Slimcore, it must be possible, either from serverside or clientside.
I can confirm that WebRTC is working in my tests, too. As soon as I switch to VDI2.0 SlimCore is not loaded. SlimCore AppX Package was successfully installed by itself but "MsTeamsVdi.exe" does not start on the local endpoint. I'll have a look at it with procmon if MsTeamsPluginAvd.dll gets loaded.
Only Teams version where SlimCore worked was 24231.512.3106.6573.
Generating Teams logs (CTRL + ALT + Shift + 1) on the VDI / Session Host I'll see
2025-03-15T07:34:23.576Z Inf vdiBridgeEventsHandler: VDI Mode: slimcore - [executeCallbackWithTimeout] : Callback execution of onSessionChanged completed, clearing timeout 2025-03-15T07:34:23.575Z Inf VdiOptimizationModeManager: subscribeToVDISessionChangedEvents: isConsoleSession false 2025-03-15T07:34:23.575Z Inf VdiOptimizationModeManager: processAsyncOpertionsQueue: processing next operation 2025-03-15T07:34:23.575Z Inf GlobalSlimCorePieVdiStateService: setSlimCorePieVdiState with clientCurrentState = 3, vdiDisconnectedReason = undefined, endpointId = undefined 2025-03-15T07:34:23.575Z Inf vdiBridgeEventsHandler: VDI Mode: slimcore - onSessionChanged: start, vendorType=0, isActive=true, isSeamless=false, isRemote=true. Session state is: invalidClientConnection 2025-03-15T07:34:23.575Z Inf vdiBridgeEventsHandler: VDI Mode: slimcore - enqueueBridgeCallback: adding onSessionChanged to queue, 0 bridge callbacks in queue, isBridgeCallbacksQueueProcessing=false
I'll try to set up an AVD on Azure and have a look if SlimCore is working where it should be and if it works with MsRdpEx or /SkipAvdSignatureChecks.
Jan, that's exactly what I had in mind. Maybe there's some AVD-side server component we need. Monday I want to spend some time on this. I can't imagine the /SkipAvdSignatureChecks to disable the slimcore integrations, the local client is being pushed through the virtual channel so that mechanism seems in place after all.
BTW: MMR (AVD Multimedia Redirection) is working flawlessly in my tests with video redirection. Have to test the call redirection feature with teams in Edge or Chrome. I'd rather prefer teams in browser then the MSIX App stuff..
We use MMR for over half a year now, it works great for things like Youtube and such. All HTML5 video. However, as Teams is more or less just a wrapper on top of the teams website, it wouldn't save much on resources and we decided the 'full app' is more convenient for users. Also because you can then use the Outlook meeting addin. But I have tried the website and call redirection using MMR worked fine. Iirc no camera offload though, which of course works fine with WebRTC as well.
I have done some testing, i installed the avd agents on an on premise server and connected it to the azure broker. Slimcore is working then working. Removing it and running over regular rdp broker it does not work. I did not install anything additional on that server so its not some server component, maybe something in the rdp channel itself or the broker?
There's someone on Twitter sharing what looks like the exact same logs I have observed myself - and it could be that the process responsible for SlimCore just crashes, since the log file is truncated (usually a sign that the process writing to the file crashes without flushing to the disk): https://x.com/milothebridge/status/1901039508386148785
When it doesn't work, do you have a similar log file as well?
Can u tell me where i can get the logs? I will try it on our demo setup. If u like i can create u a demo account as well.
For the Teams logs, follow the instructions here: https://learn.microsoft.com/en-us/microsoftteams/log-files#log-collection
The log files should be in %LocalAppData%\Microsoft\Teams\Logs\
There are files that begin with SlimCore, look for those
2025-03-17T15:06:55.881220+01:00 0x00002e30 <INFO> SingleThreadedWorkerWin: Waiting for Work on worker thread : TelemetryServiceWorker 2025-03-17T15:06:55.937014+01:00 0x0000078c <INFO> TelemetryService: Sampling rules from previous session recovered 2025-03-17T15:06:55.945299+01:00 0x0000078c <INFO> TelemetryService: InitOfficeDiagnosticLevel to OfficeDiagnosticLevel::Unset 2025-03-17T15:06:55.946630+01:00 0x0000078c <INFO> TelemetryService: Restored sampling rules from previous session 2025-03-17T15:06:55.947636+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) GetOptimizationMode: WebRTC Optimization detected using AVD RegKey and IsExplicitEnvironment 2025-03-17T15:06:55.947636+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) LogVDIInfo: Optimization mode: WebRTC 2025-03-17T15:06:55.947636+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) GetOptimizationMode: WebRTC Optimization detected using AVD RegKey and IsExplicitEnvironment 2025-03-17T15:06:55.947636+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) LogVDIInfo: Filter type: vdi-av-wvd 2025-03-17T15:06:55.948633+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) GetOptimizationMode: WebRTC Optimization detected using AVD RegKey and IsExplicitEnvironment 2025-03-17T15:06:55.947636+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) LogVDIInfo: VDI mode: 5100 2025-03-17T15:06:55.954145+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) GetOptimizationMode: WebRTC Optimization detected using AVD RegKey and IsExplicitEnvironment 2025-03-17T15:06:55.982024+01:00 0x0000078c <INFO> TelemetryService: No primary user detected during a SetUserTenantId Call, setting 13031a58-6eeb-4dc6-9ea6-9fe52586c9b4 as default tenant 2025-03-17T15:06:55.982024+01:00 0x0000078c <INFO> TelemetryService: No primary user detected during a SetUserId Call, setting 26ddbbaa-a991-4827-9175-c3a80b9d4ef3 as UserInfo_Id 2025-03-17T15:06:55.990479+01:00 0x0000078c <INFO> EcsSettings: Full build path /BuildSettings/WebView2Canary/x64/latestVersion 2025-03-17T15:06:55.999707+01:00 0x0000078c <INFO> LogInfrastructure: Setting minimum severity: Debug 2025-03-17T15:06:55.999707+01:00 0x0000078c <INFO> LogInfrastructure: Setting log auto flush: false 2025-03-17T15:06:56.000690+01:00 0x0000078c <INFO> settings::AppSettings: Main window state value: 1 2025-03-17T15:06:56.000690+01:00 0x0000078c <INFO> settings::AppSettings: Main window state before restart value: 256 2025-03-17T15:06:56.000690+01:00 0x0000078c <DBG> NativeModuleMain: NativeModuleMain registering user ring and tenantID general slimcore version: 202450.1.20-h424c8 2025-03-17T15:06:56.001695+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: UserInfo_Ring metadata value general 2025-03-17T15:06:56.001695+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: UserInfo_Tenant metadata value 13031a58-6eeb-4dc6-9ea6-9fe52586c9b4 2025-03-17T15:06:56.001695+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) GetOptimizationMode: WebRTC Optimization detected using AVD RegKey and IsExplicitEnvironment 2025-03-17T15:06:56.001695+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: Vdi_Mode metadata value 5100 2025-03-17T15:06:56.002683+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: ProcessName metadata value SlimCore 2025-03-17T15:06:56.002683+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: SlimcoreVersion metadata value 202450.1.20-h424c8 2025-03-17T15:06:56.002683+01:00 0x0000078c <DBG> native_modules::BoostAsioService: Starting BoostAsio Service IO Thread 2025-03-17T15:06:56.002683+01:00 0x0000078c <DBG> Watchdog: Watchdog is not enabled, not starting 2025-03-17T15:06:56.002683+01:00 0x0000078c <DBG> native_modules::RemoteRunner: RemoteRunner::Start 2025-03-17T15:06:56.002683+01:00 0x0000078c <DBG> native_modules::RemoteRunner: Parsing command line. 2025-03-17T15
2025-03-17T15:06:55.881220+01:00 0x00002e30 <INFO> SingleThreadedWorkerWin: Waiting for Work on worker thread : TelemetryServiceWorker 2025-03-17T15:06:55.937014+01:00 0x0000078c <INFO> TelemetryService: Sampling rules from previous session recovered 2025-03-17T15:06:55.945299+01:00 0x0000078c <INFO> TelemetryService: InitOfficeDiagnosticLevel to OfficeDiagnosticLevel::Unset 2025-03-17T15:06:55.946630+01:00 0x0000078c <INFO> TelemetryService: Restored sampling rules from previous session 2025-03-17T15:06:55.947636+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) GetOptimizationMode: WebRTC Optimization detected using AVD RegKey and IsExplicitEnvironment 2025-03-17T15:06:55.947636+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) LogVDIInfo: Optimization mode: WebRTC 2025-03-17T15:06:55.947636+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) GetOptimizationMode: WebRTC Optimization detected using AVD RegKey and IsExplicitEnvironment 2025-03-17T15:06:55.947636+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) LogVDIInfo: Filter type: vdi-av-wvd 2025-03-17T15:06:55.948633+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) GetOptimizationMode: WebRTC Optimization detected using AVD RegKey and IsExplicitEnvironment 2025-03-17T15:06:55.947636+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) LogVDIInfo: VDI mode: 5100 2025-03-17T15:06:55.954145+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) GetOptimizationMode: WebRTC Optimization detected using AVD RegKey and IsExplicitEnvironment 2025-03-17T15:06:55.982024+01:00 0x0000078c <INFO> TelemetryService: No primary user detected during a SetUserTenantId Call, setting 13031a58-6eeb-4dc6-9ea6-9fe52586c9b4 as default tenant 2025-03-17T15:06:55.982024+01:00 0x0000078c <INFO> TelemetryService: No primary user detected during a SetUserId Call, setting 26ddbbaa-a991-4827-9175-c3a80b9d4ef3 as UserInfo_Id 2025-03-17T15:06:55.990479+01:00 0x0000078c <INFO> EcsSettings: Full build path /BuildSettings/WebView2Canary/x64/latestVersion 2025-03-17T15:06:55.999707+01:00 0x0000078c <INFO> LogInfrastructure: Setting minimum severity: Debug 2025-03-17T15:06:55.999707+01:00 0x0000078c <INFO> LogInfrastructure: Setting log auto flush: false 2025-03-17T15:06:56.000690+01:00 0x0000078c <INFO> settings::AppSettings: Main window state value: 1 2025-03-17T15:06:56.000690+01:00 0x0000078c <INFO> settings::AppSettings: Main window state before restart value: 256 2025-03-17T15:06:56.000690+01:00 0x0000078c <DBG> NativeModuleMain: NativeModuleMain registering user ring and tenantID general slimcore version: 202450.1.20-h424c8 2025-03-17T15:06:56.001695+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: UserInfo_Ring metadata value general 2025-03-17T15:06:56.001695+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: UserInfo_Tenant metadata value 13031a58-6eeb-4dc6-9ea6-9fe52586c9b4 2025-03-17T15:06:56.001695+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) GetOptimizationMode: WebRTC Optimization detected using AVD RegKey and IsExplicitEnvironment 2025-03-17T15:06:56.001695+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: Vdi_Mode metadata value 5100 2025-03-17T15:06:56.002683+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: ProcessName metadata value SlimCore 2025-03-17T15:06:56.002683+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: SlimcoreVersion metadata value 202450.1.20-h424c8 2025-03-17T15:06:56.002683+01:00 0x0000078c <DBG> native_modules::BoostAsioService: Starting BoostAsio Service IO Thread 2025-03-17T15:06:56.002683+01:00 0x0000078c <DBG> Watchdog: Watchdog is not enabled, not starting 2025-03-17T15:06:56.002683+01:00 0x0000078c <DBG> native_modules::RemoteRunner: RemoteRunner::Start 2025-03-17T15:06:56.002683+01:00 0x0000078c <DBG> native_modules::RemoteRunner: Parsing command line. 2025-03-17T15
Collected these logs when slimcore was enabled. Not shure if i understand the logs correctly but it seems like it was using webrtc? I will check again tonight with new logs and if they differ i will share them as well.
Did another test looks like it's more complete now
2025-03-17T15:06:55.881220+01:00 0x00002e30 <INFO> SingleThreadedWorkerWin: Waiting for Work on worker thread : TelemetryServiceWorker 2025-03-17T15:06:55.937014+01:00 0x0000078c <INFO> TelemetryService: Sampling rules from previous session recovered 2025-03-17T15:06:55.945299+01:00 0x0000078c <INFO> TelemetryService: InitOfficeDiagnosticLevel to OfficeDiagnosticLevel::Unset 2025-03-17T15:06:55.946630+01:00 0x0000078c <INFO> TelemetryService: Restored sampling rules from previous session 2025-03-17T15:06:55.947636+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) GetOptimizationMode: WebRTC Optimization detected using AVD RegKey and IsExplicitEnvironment 2025-03-17T15:06:55.947636+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) LogVDIInfo: Optimization mode: WebRTC 2025-03-17T15:06:55.947636+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) GetOptimizationMode: WebRTC Optimization detected using AVD RegKey and IsExplicitEnvironment 2025-03-17T15:06:55.947636+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) LogVDIInfo: Filter type: vdi-av-wvd 2025-03-17T15:06:55.948633+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) GetOptimizationMode: WebRTC Optimization detected using AVD RegKey and IsExplicitEnvironment 2025-03-17T15:06:55.947636+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) LogVDIInfo: VDI mode: 5100 2025-03-17T15:06:55.954145+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) GetOptimizationMode: WebRTC Optimization detected using AVD RegKey and IsExplicitEnvironment 2025-03-17T15:06:55.982024+01:00 0x0000078c <INFO> TelemetryService: No primary user detected during a SetUserTenantId Call, setting 13031a58-6eeb-4dc6-9ea6-9fe52586c9b4 as default tenant 2025-03-17T15:06:55.982024+01:00 0x0000078c <INFO> TelemetryService: No primary user detected during a SetUserId Call, setting 26ddbbaa-a991-4827-9175-c3a80b9d4ef3 as UserInfo_Id 2025-03-17T15:06:55.990479+01:00 0x0000078c <INFO> EcsSettings: Full build path /BuildSettings/WebView2Canary/x64/latestVersion 2025-03-17T15:06:55.999707+01:00 0x0000078c <INFO> LogInfrastructure: Setting minimum severity: Debug 2025-03-17T15:06:55.999707+01:00 0x0000078c <INFO> LogInfrastructure: Setting log auto flush: false 2025-03-17T15:06:56.000690+01:00 0x0000078c <INFO> settings::AppSettings: Main window state value: 1 2025-03-17T15:06:56.000690+01:00 0x0000078c <INFO> settings::AppSettings: Main window state before restart value: 256 2025-03-17T15:06:56.000690+01:00 0x0000078c <DBG> NativeModuleMain: NativeModuleMain registering user ring and tenantID general slimcore version: 202450.1.20-h424c8 2025-03-17T15:06:56.001695+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: UserInfo_Ring metadata value general 2025-03-17T15:06:56.001695+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: UserInfo_Tenant metadata value 13031a58-6eeb-4dc6-9ea6-9fe52586c9b4 2025-03-17T15:06:56.001695+01:00 0x0000078c <INFO> vdi::VDIProvider: (vdi::providers::AVDProvider) GetOptimizationMode: WebRTC Optimization detected using AVD RegKey and IsExplicitEnvironment 2025-03-17T15:06:56.001695+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: Vdi_Mode metadata value 5100 2025-03-17T15:06:56.002683+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: ProcessName metadata value SlimCore 2025-03-17T15:06:56.002683+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: SlimcoreVersion metadata value 202450.1.20-h424c8 2025-03-17T15:06:56.002683+01:00 0x0000078c <DBG> native_modules::BoostAsioService: Starting BoostAsio Service IO Thread 2025-03-17T15:06:56.002683+01:00 0x0000078c <DBG> Watchdog: Watchdog is not enabled, not starting 2025-03-17T15:06:56.002683+01:00 0x0000078c <DBG> native_modules::RemoteRunner: RemoteRunner::Start 2025-03-17T15:06:56.002683+01:00 0x0000078c <DBG> native_modules::RemoteRunner: Parsing command line. 2025-03-17T15:06:56.002683+01:00 0x0000078c <DBG> native_modules::RemoteRunner: Received module name: SlimCore 2025-03-17T15:06:56.003677+01:00 0x0000078c <DBG> native_modules::RemoteRunner: Received control channel name: 9bd89ea3-7988-42ef-b884-750070fe7a90_nm_SlimCore_c_ 2025-03-17T15:06:56.003677+01:00 0x0000078c <DBG> native_modules::RemoteRunner: Creating control channel: 9bd89ea3-7988-42ef-b884-750070fe7a90_nm_SlimCore_c_ 2025-03-17T15:06:56.003677+01:00 0x0000078c <INFO> NamedPipeWin: Creating Client Pipe: \\.\pipe\LOCAL\maglev.9bd89ea3-7988-42ef-b884-750070fe7a90_nm_SlimCore_c_ 2025-03-17T15:06:56.003677+01:00 0x00006128 <DBG> native_modules::BoostAsioService: Waiting for events on IO thread 2025-03-17T15:06:56.003677+01:00 0x0000078c <DBG> native_modules::RemoteRunner: Start Control Channel Created 2025-03-17T15:06:56.003677+01:00 0x0000078c <INFO> native_modules::RemoteRunner: StartModule 2025-03-17T15:06:56.004698+01:00 0x0000078c <INFO> native_modules::RemoteRunner: Creating module: SlimCore 2025-03-17T15:06:56.004698+01:00 0x0000078c <INFO> native_modules::NativeModuleManager: Creating native module SlimCore 2025-03-17T15:06:56.004698+01:00 0x0000387c <INFO> native_modules::ControlChannelImpl: Control Channel Received OnConnectStatus :Connected 2025-03-17T15:06:56.004698+01:00 0x0000078c <DBG> ShellThreads: Starting Main Message Pump 2025-03-17T15:06:56.004698+01:00 0x0000078c <DBG> MessagePumpWin: Starting message pump 2025-03-17T15:06:56.006036+01:00 0x0000078c <INFO> native_modules::ControlService: Adding new RemotePieOwner: 9bd89ea3-7988-42ef-b884-750070fe7a90_nm_SlimCore_0 2025-03-17T15:06:56.007066+01:00 0x0000078c <INFO> NamedPipeWin: Creating Client Pipe: \\.\pipe\LOCAL\maglev.9bd89ea3-7988-42ef-b884-750070fe7a90_nm_SlimCore_0 2025-03-17T15:06:56.007066+01:00 0x0000078c <DBG> native_modules::RemoteRunner: Named Pipe Client created: 9bd89ea3-7988-42ef-b884-750070fe7a90_nm_SlimCore_0 2025-03-17T15:06:56.007066+01:00 0x0000078c <DBG> native_modules::RemoteRunner: Native bridge created 2025-03-17T15:06:56.007066+01:00 0x0000078c <INFO> SlimCoreModule: AddToPie with bridge_id_: 1 2025-03-17T15:06:56.007066+01:00 0x0000078c <INFO> SlimCoreModule: AddToPie add slimcore module with bridge_id_: 1 2025-03-17T15:06:56.007066+01:00 0x0000078c <INFO> SlimCoreModule: Using per-profile application root. Root path suffix set to sc-tfw 2025-03-17T15:06:56.143397+01:00 0x000030e0 <DBG> msft::teams::NativeBridge: NativeBridge Received OnConnectStatus Connected 2025-03-17T15:06:56.151542+01:00 0x0000078c <WARN> SlimCoreModule: InjectSlimCoreWV2Js 'nrc_owner' does not exist : IsOutofProc: true 2025-03-17T15:06:56.151542+01:00 0x0000078c <DBG> native_modules::ControlService: Sending Reponse Back for Add To Pie 2025-03-17T15:11:53.248478+01:00 0x0000078c <DBG> native_modules::RemoteRunner: operator () Received SetWebClientState Inactive 2025-03-17T15:11:53.248478+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: AppInfo_ClientState metadata value Inactive 2025-03-17T15:11:53.248478+01:00 0x0000078c <INFO> native_modules::RemoteRunner: Trimming WebView Memory Usage 2025-03-17T15:31:53.246163+01:00 0x0000078c <DBG> native_modules::RemoteRunner: operator () Received SetWebClientState LongInactive 2025-03-17T15:31:53.246163+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: AppInfo_ClientState metadata value LongInactive 2025-03-17T15:31:53.246163+01:00 0x0000078c <INFO> native_modules::RemoteRunner: Trimming WebView Memory Usage 2025-03-17T15:56:40.473532+01:00 0x0000078c <INFO> win::native_window::BoundsAccessor: (hwnd=0x00010474) Mutate: BoundsMutation{position=UIPointPhysical{x=161; y=145}; size=UISizePhysical{width=1,152; height=598}; insert_after=std::nullopt; frame_changed=false; activate=false; show_window=false} 2025-03-17T15:57:14.687153+01:00 0x0000078c <DBG> native_modules::RemoteRunner: operator () Received SetWebClientState Active 2025-03-17T15:57:14.687153+01:00 0x0000078c <INFO> CrashMetadata: RegisterMetadata adding metadata: AppInfo_ClientState metadata value Acti
Thanks for the blog post @janscloud
Ok, so I've tried a few things. If I uninstall Microsoft Teams in the RDP server, then use teamsbootstrapper.exe -p, on first launch, I get this:
When I click Restart Now, I notice that on the RDP client machine, the Microsoft.Teams.SlimCore MSIX package gets installed automatically, so I guess this is done using the RDP virtual channel. The Microsoft.Teams.SlimCore MSIX package, however, doesn't seem to get installed in the RDP server, and I wonder if that's the problem.
The test VM is running Windows 11 24H2 with a local admin user. I'm logged in to Microsoft Teams with an account for a test tenant different from the tenant used for my RDP client machine. I have no idea if Teams somehow expects both sides to have Teams installed and logged in with the exact same user or not.
Anyway, once restarted, I always get this:
I can't click on "Restart Teams to optimize", so all I can do is quit Teams and start it again, only to have the same problem. I have the WebRTC redirector service installed inside the test VM, and it is running.
Are there specific .RDP file options required for SlimCore redirection to be possible in the first place? Maybe I've got a feature disabled that shouldn't be.
Maybe you can confirm is the Microsoft.Teams.SlimCore MSIX package should be installed in the RDP server or not, and if there's a way to force its installation.
I have exactly the same problem, you have already a solution?