Change:
this.statusbarService.updateEntryVisibility(this.entryId, false); } <del> private getBannerItem(isInVirtualWorkspace: boolean, restrictedMode: boolean): IBannerItem | undefined { </del> <ins> private getBannerItem(restrictedMode: boolean): IBannerItem | undefined { </ins> <del> const dismissedVirtual = this.storageService.getBoolean(BANNER_VIRTUAL_WORKSPACE_DISMISSED_KEY, StorageScope.WORKSPACE, false); </del> const dismissedRestricted = this.storageService.getBoolean(BANNER_RESTRICTED_MODE_DISMISSED_KEY, StorageScope.WORKSPACE, false); <del> // all important info has been dismissed if (dismissedVirtual && dismissedRestricted) { return undefined; } // don't show restricted mode only banner if (dismissedRestricted && !isInVirtualWorkspace) { </del> <ins> // info has been dismissed if (dismissedRestricted) { </ins> return undefined; } <del> // don't show virtual workspace only banner if (dismissedVirtual && !restrictedMode) { return undefined; } const choose = (virtual: any, restricted: any, virtualAndRestricted: any) => { return (isInVirtualWorkspace && !dismissedVirtual) && (restrictedMode && !dismissedRestricted) ? virtualAndRestricted : ((isInVirtualWorkspace && !dismissedVirtual) ? virtual : restricted); }; const id = choose(BANNER_VIRTUAL_WORKSPACE, BANNER_RESTRICTED_MODE, BANNER_VIRTUAL_AND_RESTRICTED); const icon = choose(infoIcon, shieldIcon, infoIcon); const [virtualAriaLabel, restrictedModeAriaLabel, virtualAndRestrictedModeAriaLabel] = this.getBannerItemAriaLabels(); const ariaLabel = choose(virtualAriaLabel, restrictedModeAriaLabel, virtualAndRestrictedModeAriaLabel); const [virtualMessage, restrictedModeMessage, virtualAndRestrictedModeMessage] = this.getBannerItemMessages(); const message = choose(virtualMessage, restrictedModeMessage, virtualAndRestrictedModeMessage); const actions = choose( [ { label: localize('virtualBannerLearnMore', "Learn More"), href: 'https://aka.ms/vscode-virtual-workspaces' } ], </del> <ins> const actions = </ins> [ { label: localize('restrictedModeBannerManage', "Manage"), <del> href: 'command:workbench.trust.manage' </del> <ins> href: 'command:' + MANAGE_TRUST_COMMAND_ID </ins> }, { label: localize('restrictedModeBannerLearnMore', "Learn More"), href: 'https://aka.ms/vscode-workspace-trust' } <del> ], [ { label: localize('virtualAndRestrictedModeBannerManage', "Manage Trust"), href: 'command:workbench.trust.manage' }, { label: localize('virtualBannerLearnMore', "Learn More"), href: 'https://aka.ms/vscode-virtual-workspaces' } ] ); </del> <ins> ]; </ins> return { <del> id, icon, ariaLabel, message, </del> <ins> id: BANNER_RESTRICTED_MODE, icon: shieldIcon, ariaLabel: this.getBannerItemAriaLabels(), message: this.getBannerItemMessages(), </ins> actions, onClose: () => { <del> if (isInVirtualWorkspace) { this.storageService.store(BANNER_VIRTUAL_WORKSPACE_DISMISSED_KEY, true, StorageScope.WORKSPACE, StorageTarget.MACHINE); } </del> if (restrictedMode) { this.storageService.store(BANNER_RESTRICTED_MODE_DISMISSED_KEY, true, StorageScope.WORKSPACE, StorageTarget.MACHINE); }

Discussion:
The recently remote indicate tooltip helps users to learn about the limited extension functionality when in virtual workspaces. That allows us to reserve the banner for information on the restricted mode and avoid the complicated sentences when restricted mode and virtual workspaces are on at the same time. While it is interesting information that is limited extension functionality when in virtual workspaces, it's IMO not that crucial to warrant a banner. Also there's nothing the user can do about it.
FYI