在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → IAP桌面:一款支持零信任远程桌面和SSH访问的Windows应用程序

IAP桌面:一款支持零信任远程桌面和SSH访问的Windows应用程序

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:29.21M
  • 下载次数:0
  • 浏览次数:10
  • 发布时间:2024-03-24
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签:

实例介绍

【实例简介】
IAP桌面是一个远程桌面和SSH客户端,允许您从任何地方连接到Google Cloud VM实例。它适用于Windows 11/10/8.1系统,无需管理员权限即可访问Linux和Windows VM。

IAP桌面通过身份感知代理(IAP)连接到VM实例,使您可以:
  • 连接到没有公共IP地址的VM实例
  • 通过互联网从任何地方连接
与身份感知代理(IAP)结合使用,IAP桌面让您可以将零信任安全应用到您的VM上:
  • 应用细粒度访问控制,定义谁可以访问哪些VM
  • 使用访问级别限制访问时间或地点
  • 利用BeyondCorp Enterprise限制访问信任的设备
该应用程序自动管理IAP TCP隧道,并保护它们,以便其他用户或程序无法访问。

通过远程桌面连接到Windows VM时,IAP桌面是一个功能齐全的远程桌面客户端,支持:
  • 同时使用多个远程桌面会话
  • 在全屏和标签式远程桌面会话之间切换
  • 通过SFTP上传和下载文件
IAP桌面还可以帮助您自动生成Windows凭据,并本地加密存储您的Windows凭据。

连接到Linux VM时,IAP桌面包含一个SSH客户端和终端,使您可以:
  • 并行使用多个SSH会话,并使用标签在它们之间切换
  • 使用SFTP上传和下载文件
IAP桌面还可以帮助您自动创建和发布SSH密钥,并使用Windows CNG本地存储您的SSH密钥。

IAP桌面提供了一个汇总视图,让您可以连接到多个项目和Google Cloud组织的VM,查看诊断信息,如日志和串行端口输出,远程将VM加入Active Directory,执行其他常见操作,如启动或停止VM。

使用IAP桌面,您还可以让客户端应用程序通过IAP连接到Google Cloud VM,支持的客户端应用程序包括SQL Server管理工作室、MySQL Shell、Chrome等。

【实例截图】

链接windows服务器

from clipboard


连接linux服务器


from clipboard

连接sql server 等应用程序

from clipboard

【核心代码】
文件清单
└── iap-desktop-aa924cec449933d72a66d597492e425b04312661
    ├── CONTRIBUTING.md
    ├── dependencies
    │   ├── build.bat
    │   ├── image
    │   │   └── Dockerfile
    │   ├── kokoro
    │   │   └── release.cfg
    │   ├── makefile
    │   ├── README.md
    │   └── sources
    │       ├── dockpanelsuite
    │       │   ├── makefile
    │       │   └── patches
    │       │       ├── 0001-Refresh-focus-when-active-pane-has-changed.patch
    │       │       ├── 0002-Refactor-DockPanelColorPalette.patch
    │       │       └── 0003-Add-accent-color-for-tabs.patch
    │       ├── libssh2
    │       │   ├── Google.Solutions.ThirdParty.Libssh2.targets
    │       │   ├── makefile
    │       │   ├── vcpkg-ports
    │       │   │   ├── libssh2
    │       │   │   │   ├── portfile.cmake
    │       │   │   │   └── vcpkg.json
    │       │   │   └── openssl
    │       │   │       ├── install-pc-files.cmake
    │       │   │       ├── openssl.pc.in
    │       │   │       ├── portfile.cmake
    │       │   │       ├── usage
    │       │   │       ├── vcpkg-cmake-wrapper.cmake.in
    │       │   │       ├── vcpkg.json
    │       │   │       └── windows
    │       │   │           └── portfile.cmake
    │       │   └── vcpkg-triplets
    │       │       ├── libssh2-x64-windows-mixed.cmake
    │       │       └── libssh2-x86-windows-mixed.cmake
    │       ├── tsc
    │       │   ├── Google.Solutions.Tsc.csproj
    │       │   ├── Google.Solutions.Tsc.sln
    │       │   ├── makefile
    │       │   ├── MsRdpClient.cs
    │       │   └── Properties
    │       │       └── AssemblyInfo.cs
    │       └── vtnetcore
    │           ├── makefile
    │           └── patches
    │               ├── 0001-Handle-OSC-sequences-with-empty-text-parameters.patch
    │               ├── 0002-Fix-escape-sequences-for-bracketed-text-mode.patch
    │               ├── 0003-Detect-key-modifier-options-XTMODKEYS.patch
    │               ├── 0004-Handle-single-parameter-OSC-sequences.patch
    │               ├── 0005-Fix-throw-statement-to-avoid-cascading-exception.patch
    │               ├── 0006-Use-TraceSource-for-logging.patch
    │               ├── 0007-Include-symbols-in-NuGet-package.patch
    │               ├── 0008-Handle-xterm-input-errors-more-gracefully.patch
    │               ├── 0009-Propagate-terminal-attributes.patch
    │               ├── 0010-Allow-custom-default-attributes.patch
    │               ├── 0011-Expose-properties-for-back-foreground-color.patch
    │               ├── 0012-Add-missing-ISO-8613-3-color-mappings.patch
    │               ├── 0013-Change-TerminalColor-class-to-be-readonly.patch
    │               └── 0014-Fix-Restore-Cursor-command.patch
    ├── doc
    │   ├── images
    │   │   ├── Architecture.svg
    │   │   ├── Client_350.png
    │   │   ├── Client_700.png
    │   │   ├── documentation.png
    │   │   ├── download.png
    │   │   ├── iapdesktop-animated-800.gif
    │   │   ├── Manage_1024.gif
    │   │   ├── Manage_1400.gif
    │   │   ├── Manage_350.gif
    │   │   ├── Manage_350.png
    │   │   ├── Manage_512.gif
    │   │   ├── Overview.png
    │   │   ├── pix.gif
    │   │   ├── RemoteDesktop_1400.gif
    │   │   ├── RemoteDesktop_350.png
    │   │   ├── Screenshot_1400.png
    │   │   ├── Screenshot_350.png
    │   │   ├── SSH_1400.gif
    │   │   ├── SSH_350.gif
    │   │   └── SSH_350.png
    │   └── site
    │       ├── makefile
    │       └── sources
    │           ├── docs
    │           │   ├── client-application-configuration.md
    │           │   ├── command-line-options.md
    │           │   ├── connect-by-url.md
    │           │   ├── connect-linux.md
    │           │   ├── connect-sqlserver.md
    │           │   ├── connect-to-google-cloud.md
    │           │   ├── connect-windows.md
    │           │   ├── control-access-to-vms.md
    │           │   ├── create-profiles.md
    │           │   ├── group-policies-deployment.md
    │           │   ├── group-policies.md
    │           │   ├── group-policy-reference.md
    │           │   ├── images
    │           │   │   ├── 01-installer.png
    │           │   │   ├── 02-installer.png
    │           │   │   ├── 03-consent.png
    │           │   │   ├── 03-signin.png
    │           │   │   ├── 04-pick-project.png
    │           │   │   ├── 05-explorer.png
    │           │   │   ├── add-profile-2.png
    │           │   │   ├── add-profile.png
    │           │   │   ├── apicontrols-blocked.png
    │           │   │   ├── apicontrols-settings.png
    │           │   │   ├── caa-adcs-autoenrollment.png
    │           │   │   ├── caa-adcs-template.png
    │           │   │   ├── cloud.svg
    │           │   │   ├── Connecting.png
    │           │   │   ├── Connecting-SQLServer-Credentials.png
    │           │   │   ├── Connecting-SQLServer.png
    │           │   │   ├── Connecting-SSH.png
    │           │   │   ├── Connection-Settings-Inheritance.png
    │           │   │   ├── Connection-Settings.png
    │           │   │   ├── Connection-Settings-SQL-Server.png
    │           │   │   ├── Connection-Settings-SSH.png
    │           │   │   ├── connect-via-internet.png
    │           │   │   ├── connect-via-psc.png
    │           │   │   ├── consent-trusted.png
    │           │   │   ├── control-access-with-access-bindings.png
    │           │   │   ├── control-access-with-iam.png
    │           │   │   ├── control-access-with-vpc-sc-ingress-rules.png
    │           │   │   ├── Credential-Prompt.png
    │           │   │   ├── Event-Log.png
    │           │   │   ├── favicon.ico
    │           │   │   ├── Instance-Details.png
    │           │   │   ├── Instance-Details-Warning.png
    │           │   │   ├── logo.png
    │           │   │   ├── Overview.png
    │           │   │   ├── Policies.png
    │           │   │   ├── Proxy-Settings.png
    │           │   │   ├── RDP-Session.png
    │           │   │   ├── screenshots
    │           │   │   │   ├── Client_350.png
    │           │   │   │   ├── Client_700.png
    │           │   │   │   ├── Manage_1400.gif
    │           │   │   │   ├── Manage_350.png
    │           │   │   │   ├── Overview_1400.png
    │           │   │   │   ├── Overview_350.png
    │           │   │   │   ├── RemoteDesktop_1400.gif
    │           │   │   │   ├── RemoteDesktop_350.png
    │           │   │   │   ├── SSH_1400.gif
    │           │   │   │   └── SSH_350.png
    │           │   │   ├── Serial-Log.png
    │           │   │   ├── SSH-Terminal.png
    │           │   │   ├── switch-profiles.png
    │           │   │   └── Usage-Report.png
    │           │   ├── index.md
    │           │   ├── install.md
    │           │   ├── keyboard-shortcuts.md
    │           │   ├── proxy-configuration.md
    │           │   ├── security.md
    │           │   ├── setup-caa-with-a-beyondcorp-certificate-access-policy.md
    │           │   ├── setup-iap.md
    │           │   ├── ssh-algorithms.md
    │           │   ├── stylesheets
    │           │   │   └── extra.css
    │           │   ├── toolwindow-connection-settings.md
    │           │   ├── toolwindow-eventlog.md
    │           │   ├── toolwindow-instance-properties.md
    │           │   ├── toolwindow-serial-port-output.md
    │           │   ├── troubleshooting.md
    │           │   ├── troubleshooting-rdp.md
    │           │   ├── troubleshooting-signin.md
    │           │   └── troubleshooting-ssh.md
    │           ├── generate-releasenotes.ps1
    │           ├── mkdocs.yml
    │           └── overrides
    │               ├── main.html
    │               └── partials
    │                   └── header.html
    ├── LICENSE.txt
    ├── README.md
    └── sources
        ├── build.bat
        ├── build.ps1
        ├── global.json
        ├── Google.Solutions.Apis
        │   ├── Analytics
        │   │   ├── MeasurementClient.cs
        │   │   ├── MeasurementService.cs
        │   │   └── MeasurementSession.cs
        │   ├── ApiEventSource.cs
        │   ├── ApiTraceSource.cs
        │   ├── app.config
        │   ├── Auth
        │   │   ├── Gaia
        │   │   │   ├── GaiaCodeFlow.cs
        │   │   │   ├── GaiaOidcClient.cs
        │   │   │   ├── GaiaOidcSession.cs
        │   │   │   ├── GaiaPkceOidcClient.cs
        │   │   │   ├── IGaiaOidcSession.cs
        │   │   │   └── UnverifiedGaiaJsonWebToken.cs
        │   │   ├── Iam
        │   │   │   ├── AuthPortalCodeFlow.cs
        │   │   │   ├── IPoolProviderLocator.cs
        │   │   │   ├── IWorkforcePoolSession.cs
        │   │   │   ├── NotSupportedForWorkloadIdentityException.cs
        │   │   │   ├── StsService.cs
        │   │   │   ├── WorkforcePoolClient.cs
        │   │   │   ├── WorkforcePoolIdentity.cs
        │   │   │   ├── WorkforcePoolProviderLocator.cs
        │   │   │   └── WorkforcePoolSession.cs
        │   │   ├── IAuthorization.cs
        │   │   ├── IDeviceEnrollment.cs
        │   │   ├── IJsonWebToken.cs
        │   │   ├── IOidcOfflineCredentialStore.cs
        │   │   ├── IOidcSession.cs
        │   │   ├── LoopbackCodeReceiver.cs
        │   │   ├── OidcClientBase.cs
        │   │   ├── OidcClientRegistration.cs
        │   │   ├── OidcSessionBase.cs
        │   │   └── Scopes.cs
        │   ├── Client
        │   │   ├── ApiClientBase.cs
        │   │   ├── ApiKey.cs
        │   │   ├── ClientServiceMtlsExtensions.cs
        │   │   ├── HttpClientHandlerExtensions.cs
        │   │   ├── IClient.cs
        │   │   ├── PscAndMtlsAwareHttpClientFactory.cs
        │   │   ├── RequestExtensions.cs
        │   │   ├── RestClient.cs
        │   │   ├── ServiceEndpoint.cs
        │   │   ├── ServiceEndpointDirections.cs
        │   │   ├── ServiceRoute.cs
        │   │   └── UserAgent.cs
        │   ├── ClientException.cs
        │   ├── Compute
        │   │   ├── AddressResolver.cs
        │   │   ├── ComputeEngineClient.cs
        │   │   ├── IComputeEngineClient.cs
        │   │   ├── InstanceExtensions.cs
        │   │   ├── InternalDnsName.cs
        │   │   ├── MetadataExtensions.cs
        │   │   ├── OsLoginClient.cs
        │   │   ├── Permissions.cs
        │   │   ├── ResourceMetadataExtensions.cs
        │   │   ├── SerialPortReader.cs
        │   │   └── WindowsCredentialGenerator.cs
        │   ├── Crm
        │   │   └── ResourceManagerClient.cs
        │   ├── Diagnostics
        │   │   ├── IHelpTopic.cs
        │   │   └── TraceSourceLogger.cs
        │   ├── GoogleApiExceptionExtensions.cs
        │   ├── Google.Solutions.Apis.csproj
        │   ├── HelpTopics.cs
        │   ├── Locator
        │   │   ├── AccessLevelLocator.cs
        │   │   ├── GlobalResourceLocator.cs
        │   │   ├── GlobalResourceLocator.tt
        │   │   ├── LicenseLocatorExtensions.cs
        │   │   ├── ProjectLocator.cs
        │   │   ├── ResourceLocator.cs
        │   │   ├── ZonalResourceLocator.cs
        │   │   ├── ZonalResourceLocator.tt
        │   │   └── ZoneLocator.cs
        │   ├── Logging
        │   │   └── LoggingClient.cs
        │   └── Properties
        │       └── AssemblyInfo.cs
        ├── Google.Solutions.Apis.Test
        │   ├── Analytics
        │   │   ├── TestMeasurementClient.cs
        │   │   ├── TestMeasurementService.cs
        │   │   └── TestMeasurementSession.cs
        │   ├── app.config
        │   ├── Auth
        │   │   ├── Gaia
        │   │   │   ├── TestGaiaCodeFlow.cs
        │   │   │   ├── TestGaiaOidcClient.cs
        │   │   │   ├── TestGaiaOidcSession.cs
        │   │   │   └── TestUnverifiedGaiaJsonWebToken.cs
        │   │   ├── Iam
        │   │   │   ├── TestAuthPortalCodeFlow.cs
        │   │   │   ├── TestStsService.cs
        │   │   │   ├── TestWorkforcePoolClient.cs
        │   │   │   ├── TestWorkforcePoolIdentity.cs
        │   │   │   ├── TestWorkforcePoolProviderLocator.cs
        │   │   │   └── TestWorkforcePoolSession.cs
        │   │   ├── TestLoopbackCodeReceiver.cs
        │   │   ├── TestOidcClientBase.cs
        │   │   └── TestOidcClientRegistration.cs
        │   ├── Client
        │   │   ├── TestApiClientBase.cs
        │   │   ├── TestPscAndMtlsAwareHttpClientFactory.cs
        │   │   ├── TestRequestExtensions.cs
        │   │   ├── TestRestClient.cs
        │   │   ├── TestServiceEndpoint.cs
        │   │   ├── TestServiceEndpointDirections.cs
        │   │   ├── TestServiceRoute.cs
        │   │   └── TestUserAgent.cs
        │   ├── Compute
        │   │   ├── TestAddressResolver.cs
        │   │   ├── TestComputeEngineClient.cs
        │   │   ├── TestInstanceExtensions.cs
        │   │   ├── TestInternalDnsName.cs
        │   │   ├── TestMetadataExtensions.cs
        │   │   ├── TestOsLoginClient.cs
        │   │   ├── TestResourceMetadataExtensions.cs
        │   │   └── TestWindowsCredentialGenerator.cs
        │   ├── Crm
        │   │   └── TestResourceManagerClient.cs
        │   ├── Google.Solutions.Apis.Test.csproj
        │   ├── Locator
        │   │   ├── TestAccessLevelLocator.cs
        │   │   ├── TestDiskTypeLocator.cs
        │   │   ├── TestImageLocator.cs
        │   │   ├── TestInstanceLocator.cs
        │   │   ├── TestLicenseLocator.cs
        │   │   ├── TestMachineTypeLocator.cs
        │   │   ├── TestNodeTypeLocator.cs
        │   │   ├── TestProjectLocator.cs
        │   │   └── TestZoneLocator.cs
        │   ├── Logging
        │   │   └── TestLoggingClient.cs
        │   └── TestGoogleApiExceptionExtensions.cs
        ├── Google.Solutions.Common
        │   ├── app.config
        │   ├── CommonTraceSource.cs
        │   ├── Diagnostics
        │   │   ├── ClrVersion.cs
        │   │   ├── DumpObjectExtensions.cs
        │   │   ├── SkipCodeCoverageAttribute.cs
        │   │   ├── TraceCallScope.cs
        │   │   └── TraceSourceExtensions.cs
        │   ├── Format
        │   │   ├── Base64UrlEncoding.cs
        │   │   ├── BigEndian.cs
        │   │   └── BsdChecksum.cs
        │   ├── GlobalSuppressions.cs
        │   ├── Google.Solutions.Common.csproj
        │   ├── Interop
        │   │   ├── ComReference.cs
        │   │   ├── CoTaskMemAllocSafeHandle.cs
        │   │   ├── GlobalAllocSafeHandle.cs
        │   │   ├── Hresult.cs
        │   │   ├── LocalAllocSafeHandle.cs
        │   │   ├── SafeHandleExtensions.cs
        │   │   ├── SafeWin32Handle.cs
        │   │   └── WindowsFilename.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   ├── Runtime
        │   │   ├── DisposableBase.cs
        │   │   ├── DisposableContainer.cs
        │   │   ├── Disposable.cs
        │   │   ├── DisposableExtensions.cs
        │   │   └── ReferenceCountedDisposableBase.cs
        │   ├── Security
        │   │   └── SecureStringExtensions.cs
        │   ├── Text
        │   │   ├── IAsyncReader.cs
        │   │   ├── StringExtensions.cs
        │   │   └── TypographicQuotes.cs
        │   ├── Threading
        │   │   ├── AsyncLock.cs
        │   │   ├── CancellationTokenExtensions.cs
        │   │   ├── RundownProtection.cs
        │   │   ├── SingleThreadSynchronizationContext.cs
        │   │   ├── StaTask.cs
        │   │   ├── SynchronizationContextExtensions.cs
        │   │   ├── SynchronousInvokeExtensions.cs
        │   │   └── WaitHandleExtensions.cs
        │   └── Util
        │       ├── DateTimeOffsetExtensions.cs
        │       ├── EnumExtensions.cs
        │       ├── ExceptionExtensions.cs
        │       ├── Invariant.cs
        │       ├── LinqExtensions.cs
        │       ├── Parallel.cs
        │       ├── Precondition.cs
        │       └── TypeExtensions.cs
        ├── Google.Solutions.Common.Test
        │   ├── app.config
        │   ├── CommonFixtureBase.cs
        │   ├── Diagnostics
        │   │   ├── TestClrVersion.cs
        │   │   ├── TestDumpObjectExtensions.cs
        │   │   └── TestTraceSourceExtensions.cs
        │   ├── Format
        │   │   ├── TestBase64UrlEncoding.cs
        │   │   ├── TestBigEndian.cs
        │   │   └── TestBsdChecksum.cs
        │   ├── GlobalSuppressions.cs
        │   ├── Google.Solutions.Common.Test.csproj
        │   ├── Interop
        │   │   ├── TestCoTaskMemAllocSafeHandle.cs
        │   │   ├── TestGlobalAllocSafeHandle.cs
        │   │   ├── TestHresultExtensions.cs
        │   │   ├── TestLocalAllocSafeHandle.cs
        │   │   ├── TestSafeHandleExtensions.cs
        │   │   └── TestWindowsFilename.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   ├── Runtime
        │   │   ├── TestDisposableBase.cs
        │   │   ├── TestDisposableContainer.cs
        │   │   ├── TestDisposable.cs
        │   │   └── TestReferenceCountedDisposableBase.cs
        │   ├── Security
        │   │   └── TestSecureStringExtensions.cs
        │   ├── TestInvariant.cs
        │   ├── Text
        │   │   ├── TestStringExtensions.cs
        │   │   └── TestTypographicQuotes.cs
        │   ├── Threading
        │   │   ├── TestCancellationTokenExtensions.cs
        │   │   ├── TestRundownProtection.cs
        │   │   ├── TestSingleThreadSynchronizationContext.cs
        │   │   └── TestSynchronousInvokeExtensions.cs
        │   └── Util
        │       ├── TestDateTimeOffsetExtensions.cs
        │       ├── TestEnumExtensions.cs
        │       ├── TestExceptionExtensions.cs
        │       ├── TestLinqExtensions.cs
        │       ├── TestPrecondition.cs
        │       └── TestTypeExtensions.cs
        ├── Google.Solutions.Iap
        │   ├── Google.Solutions.Iap.csproj
        │   ├── IapClient.cs
        │   ├── IapInstanceTarget.cs
        │   ├── IapListener.cs
        │   ├── IapTraceSource.cs
        │   ├── Net
        │   │   ├── INetworkStream.cs
        │   │   ├── NetworkStatistics.cs
        │   │   ├── NetworkStream.cs
        │   │   ├── OneTimeUseStream.cs
        │   │   ├── PortFinder.cs
        │   │   ├── SingleReaderSingleWriterStream.cs
        │   │   ├── SocketStream.cs
        │   │   ├── SystemPatch.cs
        │   │   └── WebSocketStream.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   └── Protocol
        │       ├── SshRelayConstants.cs
        │       ├── SshRelayFormat.cs
        │       ├── SshRelaySession.cs
        │       └── SshRelayStream.cs
        ├── Google.Solutions.IapDesktop
        │   ├── App.config
        │   ├── app.manifest
        │   ├── diagnose.cmd
        │   ├── diagnose.ps1
        │   ├── Google.Solutions.IapDesktop.csproj
        │   ├── icon.ico
        │   ├── OAuthClient.cs.default
        │   ├── ProcessMitigations.cs
        │   ├── ProductIcon.ico
        │   ├── Program.cs
        │   ├── Properties
        │   │   ├── AssemblyInfo.cs
        │   │   ├── launchSettings.json
        │   │   ├── Resources.Designer.cs
        │   │   ├── Resources.resx
        │   │   ├── Settings.Designer.cs
        │   │   └── Settings.settings
        │   ├── Resources
        │   │   ├── About.bmp
        │   │   ├── About.pdn
        │   │   ├── About.png
        │   │   ├── AccentGradient_450.pdn
        │   │   ├── AccentGradient_450.png
        │   │   ├── AddCredentials_16.png
        │   │   ├── AddProject_16.png
        │   │   ├── AddUser_16.png
        │   │   ├── Authenticated_100.gif
        │   │   ├── Authenticated_48.gif
        │   │   ├── AuthorizedKey_16.png
        │   │   ├── BackgroundColor_16.png
        │   │   ├── Cancel_16.pdn
        │   │   ├── Cancel_16_white.png
        │   │   ├── Cancel_16x.png
        │   │   ├── Chrome_16_color.png
        │   │   ├── Chrome_16.png
        │   │   ├── Cloud_16.png
        │   │   ├── Cloud_16_white.png
        │   │   ├── Cloud_48_white.png
        │   │   ├── Computer_16.png
        │   │   ├── Computer_48.pdn
        │   │   ├── Computer_48.png
        │   │   ├── ComputerBlue_16.ico
        │   │   ├── ComputerBlue_16.png
        │   │   ├── ComputerDetails_16.png
        │   │   ├── ComputerStopped_16.png
        │   │   ├── ComputerTerminal_16.png
        │   │   ├── ComputerTerminal_32.png
        │   │   ├── ComputerTerminalBlue_16.png
        │   │   ├── Connect_16.png
        │   │   ├── ConsentScreen.pdn
        │   │   ├── ConsentScreen.png
        │   │   ├── Console_16.ico
        │   │   ├── Console_16.pdn
        │   │   ├── Console_16.png
        │   │   ├── ConsoleBlue_16.ico
        │   │   ├── ConsoleBlue_16.png
        │   │   ├── ConsoleLogsViewer_16.png
        │   │   ├── Copy_16x.png
        │   │   ├── Delete_16.png
        │   │   ├── DeleteKey_16.png
        │   │   ├── DeviceEnrolled_48.png
        │   │   ├── DeviceUnknown_48.png
        │   │   ├── DeviceWhite_16.png
        │   │   ├── Disconnect_16.png
        │   │   ├── Disconnected_32.pdn
        │   │   ├── Disconnected_32.png
        │   │   ├── Documentation_16.png
        │   │   ├── DownloadFile_16.png
        │   │   ├── Duplicate.png
        │   │   ├── EndpointVerificationWhite_16.png
        │   │   ├── Error_gray_16.png
        │   │   ├── EventLog_16.png
        │   │   ├── Filter_16.png
        │   │   ├── Fullscreen_16.png
        │   │   ├── GoogleSignIn_24.png
        │   │   ├── icon.pdn
        │   │   ├── Info_16.png
        │   │   ├── Info2_16.png
        │   │   ├── Info_gray_16.png
        │   │   ├── Log_16.png
        │   │   ├── logo.ico
        │   │   ├── LogoWatermark_180.png
        │   │   ├── LogTail_16.png
        │   │   ├── Package_16.png
        │   │   ├── PackageInspect_16.png
        │   │   ├── PackageUpdate_16.pdn
        │   │   ├── PackageUpdate_16.png
        │   │   ├── PackageWarn_16.png
        │   │   ├── Project_16.png
        │   │   ├── ProjectExplorer_16.png
        │   │   ├── Project.pdn
        │   │   ├── Refresh_16.png
        │   │   ├── Report_16.png
        │   │   ├── Report_32.png
        │   │   ├── Report_48.png
        │   │   ├── Report.ico
        │   │   ├── Search_16.png
        │   │   ├── Settings_16.png
        │   │   ├── Spinner.gif
        │   │   ├── Splash.pdn
        │   │   ├── Splash.png
        │   │   ├── Success_gray_16.png
        │   │   ├── TextColor_16.png
        │   │   ├── Thinking-100.gif
        │   │   ├── Thinking-130.gif
        │   │   ├── Thinking-150.gif
        │   │   ├── Tunnel_16.pdn
        │   │   ├── Tunnel_16.png
        │   │   ├── UploadFile_16.png
        │   │   ├── UserWhite_16.pdn
        │   │   ├── UserWhite_16.png
        │   │   ├── Warning_gray_16.png
        │   │   ├── Zone_16.png
        │   │   └── Zone.pdn
        │   └── Windows
        │       ├── ErrorDialog.cs
        │       ├── ErrorDialog.Designer.cs
        │       ├── ErrorDialog.resx
        │       ├── MainForm.cs
        │       ├── MainForm.Designer.cs
        │       ├── MainForm.resx
        │       ├── MainFormViewModel.cs
        │       └── ToolStripExtensions.cs
        ├── Google.Solutions.IapDesktop.Application
        │   ├── app.config
        │   ├── ApplicationEventSource.cs
        │   ├── ApplicationTraceSource.cs
        │   ├── Client
        │   │   ├── BugReportClient.cs
        │   │   ├── CloudConsoleClient.cs
        │   │   ├── ExternalRestClient.cs
        │   │   ├── GithubClient.cs
        │   │   ├── HelpClient.cs
        │   │   └── HttpProxyAdapter.cs
        │   ├── Data
        │   │   └── IapRdpUrl.cs
        │   ├── Diagnostics
        │   │   ├── BugReport.cs
        │   │   ├── HelpTopics.cs
        │   │   ├── IReleaseFeed.cs
        │   │   └── TelemetryCollector.cs
        │   ├── GlobalSuppressions.cs
        │   ├── Google.Solutions.IapDesktop.Application.csproj
        │   ├── Host
        │   │   ├── CommandLineOptions.cs
        │   │   ├── Install.cs
        │   │   ├── OSCapabilities.cs
        │   │   └── SingletonApplicationBase.cs
        │   ├── Profile
        │   │   ├── Auth
        │   │   │   ├── Authorization.cs
        │   │   │   └── DeviceEnrollment.cs
        │   │   ├── Settings
        │   │   │   ├── AccessSettingsRepository.cs
        │   │   │   ├── ApplicationSettingsRepository.cs
        │   │   │   ├── AuthSettingsRepository.cs
        │   │   │   ├── IProjectRepository.cs
        │   │   │   ├── IRepository.cs
        │   │   │   ├── ISetting.cs
        │   │   │   ├── ISettingsCollection.cs
        │   │   │   ├── PersistentSettingsCollection.cs
        │   │   │   ├── ProjectRepository.cs
        │   │   │   ├── Registry
        │   │   │   │   ├── PolicyEnabledRegistryRepository.cs
        │   │   │   │   ├── RegistryRepositoryBase.cs
        │   │   │   │   └── RegistrySetting.cs
        │   │   │   ├── SettingBase.cs
        │   │   │   ├── ThemeSettingsRepository.cs
        │   │   │   └── ToolWindowStateRepository.cs
        │   │   ├── UpdatePolicy.cs
        │   │   ├── UpdatePolicyFactory.cs
        │   │   └── UserProfile.cs
        │   ├── Properties
        │   │   ├── AssemblyInfo.cs
        │   │   ├── Resources.Designer.cs
        │   │   └── Resources.resx
        │   ├── Resources
        │   │   ├── AccentGradient_450.png
        │   │   ├── AddProject_16.png
        │   │   ├── Computer_16.png
        │   │   ├── ComputerTerminal_161.png
        │   │   ├── ComputerTerminal_16.png
        │   │   ├── Copy_16x.png
        │   │   ├── GoogleSignIn_24.png
        │   │   ├── logo.ico
        │   │   ├── LogoWatermark_180.png
        │   │   ├── Password_16.png
        │   │   ├── Project_16.png
        │   │   ├── Refresh_16.png
        │   │   ├── Search_16.png
        │   │   └── Settings_16.png
        │   ├── Theme
        │   │   ├── Resources
        │   │   │   ├── Dark.vstheme
        │   │   │   ├── Dark.vstheme.gz
        │   │   │   ├── Light.vstheme
        │   │   │   ├── Light.vstheme.gz
        │   │   │   └── README.md
        │   │   ├── ThemeService.cs
        │   │   ├── VSTheme.cs
        │   │   ├── VSThemeExtensions.cs
        │   │   └── VSThemeRuleSet.cs
        │   ├── ToolWindows
        │   │   ├── ProjectExplorer
        │   │   │   ├── ProjectExplorer.cs
        │   │   │   ├── ProjectExplorerSettings.cs
        │   │   │   ├── ProjectExplorerTrackingToolWindow.cs
        │   │   │   ├── ProjectExplorerView.cs
        │   │   │   ├── ProjectExplorerView.Designer.cs
        │   │   │   ├── ProjectExplorerViewModel.cs
        │   │   │   └── ProjectExplorerView.resx
        │   │   ├── Properties
        │   │   │   ├── IPropertiesInspectorViewModel.cs
        │   │   │   ├── PropertiesInspectorViewBase.cs
        │   │   │   ├── PropertiesInspectorViewBase.Designer.cs
        │   │   │   ├── PropertiesInspectorViewBase.resx
        │   │   │   ├── PropertiesViewBase.cs
        │   │   │   ├── PropertiesViewBase.Designer.cs
        │   │   │   ├── PropertiesViewBase.resx
        │   │   │   ├── PropertiesViewModelBase.cs
        │   │   │   └── SettingsCollectionTypeDescriptor.cs
        │   │   └── Update
        │   │       ├── CheckForUpdateCommand.cs
        │   │       ├── ReleaseNotesView.cs
        │   │       ├── ReleaseNotesView.Designer.cs
        │   │       ├── ReleaseNotesViewModel.cs
        │   │       └── ReleaseNotesView.resx
        │   └── Windows
        │       ├── Auth
        │       │   ├── AccessInfoFlyoutView.cs
        │       │   ├── AccessInfoFlyoutView.Designer.cs
        │       │   ├── AccessInfoFlyoutView.resx
        │       │   ├── AccessInfoViewModel.cs
        │       │   ├── AuthorizeOptionsView.cs
        │       │   ├── AuthorizeOptionsView.Designer.cs
        │       │   ├── AuthorizeOptionsViewModel.cs
        │       │   ├── AuthorizeOptionsView.resx
        │       │   ├── AuthorizeView.cs
        │       │   ├── AuthorizeView.Designer.cs
        │       │   ├── AuthorizeViewModel.cs
        │       │   ├── AuthorizeView.resx
        │       │   ├── NewProfileView.cs
        │       │   ├── NewProfileView.Designer.cs
        │       │   ├── NewProfileViewModel.cs
        │       │   ├── NewProfileView.resx
        │       │   ├── OAuthScopeNotGrantedView.cs
        │       │   ├── OAuthScopeNotGrantedView.Designer.cs
        │       │   ├── OAuthScopeNotGrantedViewModel.cs
        │       │   └── OAuthScopeNotGrantedView.resx
        │       ├── Dialog
        │       │   ├── ConfirmationDialog.cs
        │       │   ├── CredentialDialog.cs
        │       │   ├── ExceptionDialog.cs
        │       │   ├── InputDialog.cs
        │       │   ├── LegacyTaskDialog.cs
        │       │   ├── NotifyDialog.cs
        │       │   ├── OperationProgressDialog.cs
        │       │   ├── SystemInputDialog.cs
        │       │   └── UnsafeNativeMethods.cs
        │       ├── DocumentWindow.cs
        │       ├── FlyoutWindow.cs
        │       ├── FlyoutWindow.Designer.cs
        │       ├── FlyoutWindow.resx
        │       ├── IMainWindow.cs
        │       ├── JobService.cs
        │       ├── MenuCommandAttribute.cs
        │       ├── MenuCommandBase.cs
        │       ├── Menu.cs
        │       ├── Options
        │       │   ├── AccessOptionsSheet.cs
        │       │   ├── AccessOptionsSheet.Designer.cs
        │       │   ├── AccessOptionsSheet.resx
        │       │   ├── AccessOptionsViewModel.cs
        │       │   ├── AppearanceOptionsSheet.cs
        │       │   ├── AppearanceOptionsSheet.Designer.cs
        │       │   ├── AppearanceOptionsSheet.resx
        │       │   ├── AppearanceOptionsViewModel.cs
        │       │   ├── GeneralOptionsSheet.cs
        │       │   ├── GeneralOptionsSheet.Designer.cs
        │       │   ├── GeneralOptionsSheet.resx
        │       │   ├── GeneralOptionsViewModel.cs
        │       │   ├── InvalidOptionsException.cs
        │       │   ├── NetworkOptionsSheet.cs
        │       │   ├── NetworkOptionsSheet.Designer.cs
        │       │   ├── NetworkOptionsSheet.resx
        │       │   ├── NetworkOptionsViewModel.cs
        │       │   ├── OptionsDialog.cs
        │       │   ├── OptionsViewModelBase.cs
        │       │   ├── ScreenOptionsSheet.cs
        │       │   ├── ScreenOptionsSheet.Designer.cs
        │       │   ├── ScreenOptionsSheet.resx
        │       │   └── ScreenOptionsViewModel.cs
        │       ├── ProjectPicker
        │       │   ├── IProjectPickerModel.cs
        │       │   ├── ProjectList.cs
        │       │   ├── ProjectPickerDialog.cs
        │       │   ├── ProjectPickerView.cs
        │       │   ├── ProjectPickerView.Designer.cs
        │       │   ├── ProjectPickerViewModel.cs
        │       │   └── ProjectPickerView.resx
        │       ├── SessionBroker.cs
        │       ├── ToolWindowHost.cs
        │       ├── ToolWindowViewBase.cs
        │       ├── ToolWindowViewBase.Designer.cs
        │       ├── ToolWindowViewBase.resx
        │       ├── UrlCommands.cs
        │       ├── ViewBindingContext.cs
        │       ├── WaitDialog.cs
        │       ├── WaitDialog.Designer.cs
        │       └── WaitDialog.resx
        ├── Google.Solutions.IapDesktop.Application.Test
        │   ├── app.config
        │   ├── Client
        │   │   ├── TestCloudConsoleClient.cs
        │   │   ├── TestGithubClient.cs
        │   │   └── TestHttpProxyAdapter.cs
        │   ├── Data
        │   │   └── TestIapRdpUrl.cs
        │   ├── Diagnostics
        │   │   ├── TestBugReport.cs
        │   │   └── TestTelemetryListener.cs
        │   ├── Google.Solutions.IapDesktop.Application.Test.csproj
        │   ├── Host
        │   │   ├── TestCommandLineOptions.cs
        │   │   ├── TestInstall.cs
        │   │   └── TestSingletonApplicationBase.cs
        │   ├── Profile
        │   │   ├── Auth
        │   │   │   ├── TestAuthorization.cs
        │   │   │   └── TestDeviceEnrollment.cs
        │   │   ├── Settings
        │   │   │   ├── Registry
        │   │   │   │   ├── TestRegistryBoolSetting.cs
        │   │   │   │   ├── TestRegistryDwordSetting.cs
        │   │   │   │   ├── TestRegistryEnumFlagsSetting.cs
        │   │   │   │   ├── TestRegistryEnumSetting.cs
        │   │   │   │   ├── TestRegistryQwordSetting.cs
        │   │   │   │   ├── TestRegistrySecureStringSetting.cs
        │   │   │   │   └── TestRegistryStringSetting.cs
        │   │   │   ├── TestAccessSettingsRepository.cs
        │   │   │   ├── TestApplicationSettingsRepository.cs
        │   │   │   ├── TestAuthSettingsRepository.cs
        │   │   │   ├── TestProjectRepository.cs
        │   │   │   ├── TestThemeSettingsRepository.cs
        │   │   │   └── TestToolWindowStateRepository.cs
        │   │   ├── TestUpdatePolicy.cs
        │   │   ├── TestUpdatePolicyFactory.cs
        │   │   └── TestUserProfile.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   ├── RequiresProxyAutoconfigAttribute.cs
        │   ├── TestNtlmProxy.cs
        │   ├── Theme
        │   │   └── TestVSTheme.cs
        │   ├── ToolWindows
        │   │   ├── ProjectExplorer
        │   │   │   ├── TestProjectExplorerSettings.cs
        │   │   │   └── TestProjectExplorerViewModel.cs
        │   │   ├── Properties
        │   │   │   └── TestPropertiesInspectorWindow.cs
        │   │   └── Update
        │   │       ├── TestCheckForUpdateCommand.cs
        │   │       └── TestReleaseNotesViewModel.cs
        │   └── Windows
        │       ├── Auth
        │       │   ├── TestAccessInfoViewModel.cs
        │       │   ├── TestAuthorizeOptionsViewModel.cs
        │       │   ├── TestAuthorizeViewModel.cs
        │       │   └── TestNewProfileViewModel.cs
        │       ├── Dialog
        │       │   ├── TestCredentialDialog.cs
        │       │   └── TestInputDialog.cs
        │       ├── Options
        │       │   ├── TestAccessOptionsViewModel.cs
        │       │   ├── TestAppearanceOptionsViewModel.cs
        │       │   ├── TestGeneralOptionsViewModel.cs
        │       │   ├── TestNetworkOptionsViewModel.cs
        │       │   ├── TestOptionsViewModelBase.cs
        │       │   └── TestScreenOptionsViewModel.cs
        │       ├── ProjectPicker
        │       │   ├── TestProjectPickerDialog.cs
        │       │   └── TestProjectPickerViewModel.cs
        │       ├── TestJobService.cs
        │       ├── TestMenuCommandAttribute.cs
        │       ├── TestSessionBroker.cs
        │       ├── TestToolWindow.cs
        │       └── TestWaitDialog.cs
        ├── Google.Solutions.IapDesktop.Core
        │   ├── ClientModel
        │   │   ├── Protocol
        │   │   │   ├── AppProtocolClient.cs
        │   │   │   ├── AppProtocolConfigurationFile.cs
        │   │   │   ├── AppProtocolContext.cs
        │   │   │   ├── AppProtocol.cs
        │   │   │   ├── AppProtocolParameters.cs
        │   │   │   ├── IProtocolContext.cs
        │   │   │   ├── IProtocol.cs
        │   │   │   ├── IProtocolTarget.cs
        │   │   │   ├── ProtocolRegistry.cs
        │   │   │   ├── ProtocolTargetException.cs
        │   │   │   └── ProtocolTargetLocator.cs
        │   │   ├── Traits
        │   │   │   ├── ITrait.cs
        │   │   │   ├── TraitDetector.cs
        │   │   │   ├── TypeTrait.cs
        │   │   │   └── TypeTrait.tt
        │   │   └── Transport
        │   │       ├── DirectTransportFactory.cs
        │   │       ├── IapTransportFactory.cs
        │   │       ├── IapTunnel.cs
        │   │       ├── ITransport.cs
        │   │       ├── ITransportPolicy.cs
        │   │       ├── Policies
        │   │       │   ├── AllowAllPolicy.cs
        │   │       │   ├── ChildProcessPolicy.cs
        │   │       │   ├── CurrentProcessPolicy.cs
        │   │       │   ├── CurrentWtsSessionPolicy.cs
        │   │       │   └── ProcessPolicyBase.cs
        │   │       └── TransportFailedException.cs
        │   ├── CoreTraceSource.cs
        │   ├── Google.Solutions.IapDesktop.Core.csproj
        │   ├── HelpTopics.cs
        │   ├── ObjectModel
        │   │   ├── EventQueue.cs
        │   │   ├── IServiceCategoryProvider.cs
        │   │   ├── ServiceAttribute.cs
        │   │   ├── Service.cs
        │   │   └── ServiceRegistry.cs
        │   ├── ProjectModel
        │   │   ├── IProjectModelNode.cs
        │   │   ├── IProjectRepository.cs
        │   │   ├── Nodes
        │   │   │   ├── CloudNode.cs
        │   │   │   ├── InstanceNode.cs
        │   │   │   ├── ProjectNode.cs
        │   │   │   └── ZoneNode.cs
        │   │   ├── OperatingSystems.cs
        │   │   ├── ProjectWorkspace.cs
        │   │   └── ProjectWorkspaceEvents.cs
        │   └── Properties
        │       └── AssemblyInfo.cs
        ├── Google.Solutions.IapDesktop.Core.Test
        │   ├── app.config
        │   ├── ClientModel
        │   │   ├── Protocol
        │   │   │   ├── TestAppProtocolClient.cs
        │   │   │   ├── TestAppProtocolConfigurationFile.cs
        │   │   │   ├── TestAppProtocolConfigurationFileSection.cs
        │   │   │   ├── TestAppProtocolContext.cs
        │   │   │   ├── TestAppProtocol.cs
        │   │   │   ├── TestProtocolRegistry.cs
        │   │   │   └── TestProtocolTargetLocator.cs
        │   │   ├── Traits
        │   │   │   ├── TestInstanceTrait.cs
        │   │   │   ├── TestLinuxTrait.cs
        │   │   │   ├── TestTraitDetector.cs
        │   │   │   └── TestWindowsTrait.cs
        │   │   └── Transport
        │   │       ├── Policies
        │   │       │   ├── TestAllowAllPolicy.cs
        │   │       │   ├── TestChildProcessPolicy.cs
        │   │       │   ├── TestCurrentProcessPolicy.cs
        │   │       │   └── TestCurrentWtsSessionPolicy.cs
        │   │       ├── TestDirectTransportFactory.cs
        │   │       ├── TestIapTransportFactory.cs
        │   │       ├── TestIapTunnel.cs
        │   │       ├── TestIapTunnelFactory.cs
        │   │       └── TestIapTunnelProfile.cs
        │   ├── Google.Solutions.IapDesktop.Core.Test.csproj
        │   ├── ObjectModel
        │   │   ├── TestEventQueue.cs
        │   │   ├── TestServiceAttribute.cs
        │   │   └── TestServiceRegistry.cs
        │   ├── ProjectModel
        │   │   ├── TestInstanceNode.cs
        │   │   └── TestProjectModelService.cs
        │   └── Properties
        │       └── AssemblyInfo.cs
        ├── Google.Solutions.IapDesktop.Extensions.Diagnostics
        │   ├── DebugMenu.cs
        │   ├── Dialog
        │   │   ├── DialogCommands.cs
        │   │   └── ForceCheckForUpdateCommand.cs
        │   ├── ErrorHandling
        │   │   └── ThrowExceptionCommands.cs
        │   ├── Google.Solutions.IapDesktop.Extensions.Diagnostics.csproj
        │   ├── Options
        │   │   ├── DebugOptionsSheet.cs
        │   │   ├── DebugOptionsSheet.Designer.cs
        │   │   ├── DebugOptionsSheet.resx
        │   │   └── DebugOptionsSheetViewModel.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   └── ToolWindows
        │       ├── AutoCloseView.cs
        │       ├── AutoCloseView.Designer.cs
        │       ├── AutoCloseViewModel.cs
        │       ├── AutoCloseView.resx
        │       ├── DebugCommonControlsView.cs
        │       ├── DebugCommonControlsView.Designer.cs
        │       ├── DebugCommonControlsViewModel.cs
        │       ├── DebugCommonControlsView.resx
        │       ├── DebugDockingView.cs
        │       ├── DebugDockingView.Designer.cs
        │       ├── DebugDockingViewModel.cs
        │       ├── DebugDockingView.resx
        │       ├── DebugJobServiceView.cs
        │       ├── DebugJobServiceView.Designer.cs
        │       ├── DebugJobServiceViewModel.cs
        │       ├── DebugJobServiceView.resx
        │       ├── DebugProjectExplorerTrackingView.cs
        │       ├── DebugProjectExplorerTrackingView.Designer.cs
        │       ├── DebugProjectExplorerTrackingViewModel.cs
        │       ├── DebugProjectExplorerTrackingView.resx
        │       ├── DebugServiceRegistryView.cs
        │       ├── DebugServiceRegistryView.Designer.cs
        │       ├── DebugServiceRegistryViewModel.cs
        │       ├── DebugServiceRegistryView.resx
        │       ├── DebugThemeView.cs
        │       ├── DebugThemeView.Designer.cs
        │       ├── DebugThemeViewModel.cs
        │       ├── DebugThemeView.resx
        │       └── ToolWindowCommands.cs
        ├── Google.Solutions.IapDesktop.Extensions.Explorer
        │   ├── Google.Solutions.IapDesktop.Extensions.Explorer.csproj
        │   ├── HelpMenu.cs
        │   ├── ProfileMenu.cs
        │   ├── Resources
        │   │   ├── AccentGradient_450.png
        │   │   ├── AddProject_16.png
        │   │   └── Documentation_16.png
        │   ├── Resources.Designer.cs
        │   ├── Resources.resx
        │   └── ToolWindows
        │       ├── Install
        │       │   ├── AboutCommand.cs
        │       │   ├── About.md
        │       │   ├── AboutView.cs
        │       │   ├── AboutView.Designer.cs
        │       │   ├── AboutViewModel.cs
        │       │   ├── AboutView.resx
        │       │   ├── OpenHelpCommand.cs
        │       │   ├── ReleaseNotesCommand.cs
        │       │   └── ReportBugCommand.cs
        │       └── Profile
        │           ├── AddProjectCommand.cs
        │           ├── ExitCommand.cs
        │           ├── ProfileCommandBase.cs
        │           └── SignOutCommand.cs
        ├── Google.Solutions.IapDesktop.Extensions.Explorer.Test
        │   ├── Google.Solutions.IapDesktop.Extensions.Explorer.Test.csproj
        │   └── ToolWindows
        │       ├── Install
        │       │   └── TestAboutViewModel.cs
        │       └── Profile
        │           └── TestSignOutCommand.cs
        ├── Google.Solutions.IapDesktop.Extensions.Management
        │   ├── Auditing
        │   │   ├── AuditLogClient.cs
        │   │   ├── Events
        │   │   │   ├── Access
        │   │   │   │   ├── AuthorizeUserTunnelEvent.cs
        │   │   │   │   ├── ModifiedMetadata.cs
        │   │   │   │   ├── OsLoginCheckPolicyEvent.cs
        │   │   │   │   ├── OsLoginContinueSessionEvent.cs
        │   │   │   │   ├── OsLoginEventBase.cs
        │   │   │   │   ├── OsLoginStartSessionEvent.cs
        │   │   │   │   ├── SetCommonInstanceMetadataEvent.cs
        │   │   │   │   └── SetMetadataEvent.cs
        │   │   │   ├── EventBase.cs
        │   │   │   ├── EventFactory.cs
        │   │   │   ├── IEventProcessor.cs
        │   │   │   ├── InstanceEventBase.cs
        │   │   │   ├── InstanceOperationEventBase.cs
        │   │   │   ├── Lifecycle
        │   │   │   │   ├── DeleteInstanceEvent.cs
        │   │   │   │   ├── InsertInstanceEvent.cs
        │   │   │   │   ├── ResetInstanceEvent.cs
        │   │   │   │   ├── ResumeInstanceEvent.cs
        │   │   │   │   ├── StartInstanceEvent.cs
        │   │   │   │   ├── StartWithEncryptionKeyEvent.cs
        │   │   │   │   ├── StopInstanceEvent.cs
        │   │   │   │   └── SuspendInstanceEvent.cs
        │   │   │   ├── ProjectEventBase.cs
        │   │   │   ├── ProjectOperationEventBase.cs
        │   │   │   ├── System
        │   │   │   │   ├── AutomaticRestartEvent.cs
        │   │   │   │   ├── GenericSystemEvent.cs
        │   │   │   │   ├── GuestTerminateEvent.cs
        │   │   │   │   ├── HostErrorEvent.cs
        │   │   │   │   ├── InstanceManagerHaltForRestartEvent.cs
        │   │   │   │   ├── InstancePreemptedEvent.cs
        │   │   │   │   ├── InstanceResetEvent.cs
        │   │   │   │   ├── MigrateOnHostMaintenanceEvent.cs
        │   │   │   │   ├── NotifyInstanceLocationEvent.cs
        │   │   │   │   ├── RecreateInstanceEvent.cs
        │   │   │   │   ├── SystemEventBase.cs
        │   │   │   │   └── TerminateOnHostMaintenanceEvent.cs
        │   │   │   └── UnknownEvent.cs
        │   │   └── Logs
        │   │       ├── AuditLogRecord.cs
        │   │       ├── ListLogEntriesParser.cs
        │   │       └── LogRecord.cs
        │   ├── Google.Solutions.IapDesktop.Extensions.Management.csproj
        │   ├── GuestOs
        │   │   ├── ActiveDirectory
        │   │   │   ├── DomainJoinService.cs
        │   │   │   ├── DomainJoinService.StartupScript.ps1
        │   │   │   ├── NetworkCredentialExtensions.cs
        │   │   │   └── StartupScriptOperation.cs
        │   │   └── Inventory
        │   │       ├── GuestOsInfo.cs
        │   │       ├── GuestOsInventory.cs
        │   │       ├── GuestPackages.cs
        │   │       ├── IPackage.cs
        │   │       ├── Package.cs
        │   │       ├── QfePackage.cs
        │   │       ├── WuaPackage.cs
        │   │       └── ZypperPatch.cs
        │   ├── InitializeManagementExtension.cs
        │   ├── Properties
        │   │   ├── AssemblyInfo.cs
        │   │   ├── Resources.Designer.cs
        │   │   └── Resources.resx
        │   ├── Resources
        │   │   ├── ComputerDetails_16.png
        │   │   ├── EventLog_16.png
        │   │   ├── Log_16.png
        │   │   ├── LogTail_16.png
        │   │   ├── Package_16.png
        │   │   ├── PackageInspect_16.png
        │   │   ├── PackageLight_16.png
        │   │   ├── PackageUpdate_16.png
        │   │   ├── PackageWarn_16.png
        │   │   ├── Pause_16.png
        │   │   ├── Refresh_16.png
        │   │   ├── Report_16.png
        │   │   ├── Report_32.png
        │   │   ├── Reset_16.png
        │   │   ├── Start_16.png
        │   │   └── Stop_16.png
        │   └── ToolWindows
        │       ├── ActiveDirectory
        │       │   ├── JoinView.cs
        │       │   ├── JoinView.Designer.cs
        │       │   ├── JoinViewModel.cs
        │       │   └── JoinView.resx
        │       ├── EventLog
        │       │   ├── EventLogCommands.cs
        │       │   ├── EventLogModel.cs
        │       │   ├── EventLogView.cs
        │       │   ├── EventLogView.Designer.cs
        │       │   ├── EventLogViewModel.cs
        │       │   └── EventLogView.resx
        │       ├── InstanceControlCommands.cs
        │       ├── InstanceProperties
        │       │   ├── InstancePropertiesInspectorCommands.cs
        │       │   ├── InstancePropertiesInspectorModel.cs
        │       │   ├── InstancePropertiesInspectorView.cs
        │       │   └── InstancePropertiesInspectorViewModel.cs
        │       ├── PackageInventory
        │       │   ├── AvailablePackageInventoryView.cs
        │       │   ├── InstalledPackageInventoryView.cs
        │       │   ├── PackageInventoryCommands.cs
        │       │   ├── PackageInventoryModel.cs
        │       │   ├── PackageInventoryType.cs
        │       │   ├── PackageInventoryViewBase.cs
        │       │   ├── PackageInventoryViewBase.Designer.cs
        │       │   ├── PackageInventoryViewBase.resx
        │       │   ├── PackageInventoryViewModel.cs
        │       │   └── PackageList.cs
        │       └── SerialOutput
        │           ├── SerialOutputCommands.cs
        │           ├── SerialOutputModel.cs
        │           ├── SerialOutputViewBase.cs
        │           ├── SerialOutputViewBase.Designer.cs
        │           ├── SerialOutputViewBase.resx
        │           ├── SerialOutputViewModel.cs
        │           ├── SerialOutputWindowComX.cs
        │           └── XtermReader.cs
        ├── Google.Solutions.IapDesktop.Extensions.Management.Test
        │   ├── app.config
        │   ├── Auditing
        │   │   ├── Events
        │   │   │   ├── Access
        │   │   │   │   ├── TestAuthorizeUserTunnelEvent.cs
        │   │   │   │   ├── TestOsLoginCheckPolicyEvent.cs
        │   │   │   │   ├── TestOsLoginContinueSessionEvent.cs
        │   │   │   │   ├── TestOsLoginStartSessionEvent.cs
        │   │   │   │   ├── TestSetCommonInstanceMetadataEvent.cs
        │   │   │   │   └── TestSetMetadataEvent.cs
        │   │   │   ├── Lifecycle
        │   │   │   │   ├── TestBetaInsertInstanceEvent.cs
        │   │   │   │   ├── TestBetaStopInstanceEvent.cs
        │   │   │   │   ├── TestDeleteInstanceEvent.cs
        │   │   │   │   ├── TestInsertInstanceEvent.cs
        │   │   │   │   ├── TestResetInstanceEvent.cs
        │   │   │   │   ├── TestResumeInstanceEvent.cs
        │   │   │   │   ├── TestStartInstanceEvent.cs
        │   │   │   │   ├── TestStartWithEncryptionKeyEvent.cs
        │   │   │   │   └── TestSuspendInstanceEvent.cs
        │   │   │   ├── System
        │   │   │   │   ├── TestAutomaticRestartEvent.cs
        │   │   │   │   ├── TestGenericSystemEvent.cs
        │   │   │   │   ├── TestGuestTerminateEvent.cs
        │   │   │   │   ├── TestHostErrorEvent.cs
        │   │   │   │   ├── TestInstancePreemptedEvent.cs
        │   │   │   │   ├── TestMigrateOnHostMaintenanceEvent.cs
        │   │   │   │   ├── TestNotifyInstanceLocationEvent.cs
        │   │   │   │   ├── TestRecreateInstanceEvent.cs
        │   │   │   │   └── TestTerminateOnHostMaintenanceEvent.cs
        │   │   │   ├── TestEventFactory.cs
        │   │   │   └── TestUnknownEvent.cs
        │   │   ├── Logs
        │   │   │   ├── TestAuditLogRecord.cs
        │   │   │   ├── TestListLogEntriesParser.cs
        │   │   │   └── TestLogRecord.cs
        │   │   └── TestAuditLogClient.cs
        │   ├── Google.Solutions.IapDesktop.Extensions.Management.Test.csproj
        │   ├── GuestOs
        │   │   ├── ActiveDirectory
        │   │   │   ├── TestDomainJoinService.cs
        │   │   │   ├── TestDomainJoinServiceStartupScript.cs
        │   │   │   └── TestStartupScriptOperation.cs
        │   │   └── Inventory
        │   │       ├── TestCentOsGuestOsInfo.cs
        │   │       ├── TestGuestOsInventory.cs
        │   │       ├── TestPackage.cs
        │   │       ├── TestQfePackage.cs
        │   │       ├── TestWindowsGuestOsInfo.cs
        │   │       ├── TestWuaPackage.cs
        │   │       ├── TestWuaPackageType.cs
        │   │       └── TestZypperPatch.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   └── ToolWindows
        │       ├── ActiveDirectory
        │       │   └── TestJoinViewModel.cs
        │       ├── EventLog
        │       │   ├── TestEventLogCommands.cs
        │       │   └── TestEventLogViewModel.cs
        │       ├── InstanceProperties
        │       │   ├── TestInstancePropertiesInspectorCommands.cs
        │       │   ├── TestInstancePropertiesInspectorModel.cs
        │       │   └── TestInstancePropertiesInspectorViewModel.cs
        │       ├── PackageInventory
        │       │   ├── TestPackageInventoryCommands.cs
        │       │   ├── TestPackageInventoryModel.cs
        │       │   └── TestPackageInventoryViewModel.cs
        │       ├── SerialOutput
        │       │   ├── TestSerialOutputCommands.cs
        │       │   ├── TestSerialOutputModel.cs
        │       │   ├── TestSerialOutputViewModel.cs
        │       │   └── TestXtermReader.cs
        │       └── TestInstanceControlCommands.cs
        ├── Google.Solutions.IapDesktop.Extensions.Session
        │   ├── Controls
        │   │   ├── KeyUtil.cs
        │   │   ├── RdpClient.ConnectionProperties.cs
        │   │   ├── RdpClient.cs
        │   │   ├── RdpExceptions.cs
        │   │   ├── TerminalFont.cs
        │   │   ├── VirtualTerminal.cs
        │   │   ├── VirtualTerminal.designer.cs
        │   │   ├── VirtualTerminalKeyHandler.cs
        │   │   ├── VirtualTerminalKeyTranslation.cs
        │   │   └── VirtualTerminal.resx
        │   ├── GlobalSuppressions.cs
        │   ├── Google.Solutions.IapDesktop.Extensions.Session.csproj
        │   ├── HelpTopics.cs
        │   ├── InitializeSessionExtension.cs
        │   ├── Properties
        │   │   ├── AssemblyInfo.cs
        │   │   ├── DefaultAppProtocols
        │   │   │   ├── chrome-8080.iapc
        │   │   │   ├── chrome-80.iapc
        │   │   │   ├── mysql-8.0.iapc
        │   │   │   ├── mysql-8.1.iapc
        │   │   │   ├── mysql-tunnel.iapc
        │   │   │   ├── postgres-tunnel.iapc
        │   │   │   └── sqlserver-tunnel.iapc
        │   │   ├── Resources.Designer.cs
        │   │   └── Resources.resx
        │   ├── Protocol
        │   │   ├── App
        │   │   │   ├── AppProtocolContextFactory.cs
        │   │   │   ├── SsmsClient.cs
        │   │   │   └── Ssms.cs
        │   │   ├── IapRdpUrlExtensions.cs
        │   │   ├── ISessionContext.cs
        │   │   ├── ProjectExplorerNodeExtensions.cs
        │   │   ├── Rdp
        │   │   │   ├── RdpContext.cs
        │   │   │   ├── RdpCredentialCallback.cs
        │   │   │   ├── RdpCredential.cs
        │   │   │   ├── RdpParameters.cs
        │   │   │   ├── RdpProtocol.cs
        │   │   │   └── WindowsUser.cs
        │   │   ├── SessionContextBase.cs
        │   │   ├── SessionContextFactory.cs
        │   │   ├── SessionException.cs
        │   │   ├── SessionParametersBase.cs
        │   │   └── Ssh
        │   │       ├── CngKeyName.cs
        │   │       ├── EphemeralKeySigners.cs
        │   │       ├── IAuthorizedPublicKey.cs
        │   │       ├── LinuxUser.cs
        │   │       ├── MetadataAuthorizedPublicKey.cs
        │   │       ├── MetadataAuthorizedPublicKeyProcessor.cs
        │   │       ├── MetadataAuthorizedPublicKeySet.cs
        │   │       ├── OsLoginCertificateSigner.cs
        │   │       ├── OsLoginProfile.cs
        │   │       ├── PlatformCredential.cs
        │   │       ├── PlatformCredentialFactory.cs
        │   │       ├── SshContext.cs
        │   │       ├── SshParameters.cs
        │   │       └── SshProtocol.cs
        │   ├── Resources
        │   │   ├── AddCredentials_16.png
        │   │   ├── AuthorizedKey_16.png
        │   │   ├── BackgroundColor_16.png
        │   │   ├── Connect_16.png
        │   │   ├── Copy_16x.png
        │   │   ├── Delete_16.png
        │   │   ├── DeleteKey_16.png
        │   │   ├── Disconnect_16.png
        │   │   ├── Disconnected_32.png
        │   │   ├── DownloadFile_16.png
        │   │   ├── Duplicate.png
        │   │   ├── Fullscreen_16.png
        │   │   ├── Key_36.png
        │   │   ├── Password_16.png
        │   │   ├── Refresh_16.png
        │   │   ├── Search_16.png
        │   │   ├── Settings_16.png
        │   │   ├── Spinner.gif
        │   │   ├── SshKey_16.png
        │   │   ├── SshKey_32.png
        │   │   ├── TextColor_16.png
        │   │   ├── Tunnel_16.png
        │   │   └── UploadFile_16.png
        │   ├── Settings
        │   │   ├── ConnectionSettings.cs
        │   │   ├── ConnectionSettingsRepository.cs
        │   │   ├── ConnectionSettingsService.cs
        │   │   ├── SshSettings.cs
        │   │   └── TerminalSettings.cs
        │   └── ToolWindows
        │       ├── App
        │       │   ├── AppCommands.cs
        │       │   ├── ConnectAppProtocolCommandBase.cs
        │       │   ├── ConnectAppProtocolWithClientCommand.cs
        │       │   ├── ConnectAppProtocolWithoutClientCommand.cs
        │       │   └── ForwardLocalPortCommand.cs
        │       ├── ConnectionSettings
        │       │   ├── ConnectionSettingsCommands.cs
        │       │   ├── ConnectionSettingsView.cs
        │       │   └── ConnectionSettingsViewModel.cs
        │       ├── Credentials
        │       │   ├── ConfigureCredentialsWorkflow.cs
        │       │   ├── CreateCredentialsWorkflow.cs
        │       │   ├── CredentialCommands.cs
        │       │   ├── NewCredentialsDialog.cs
        │       │   ├── NewCredentialsView.cs
        │       │   ├── NewCredentialsView.Designer.cs
        │       │   ├── NewCredentialsViewModel.cs
        │       │   ├── NewCredentialsView.resx
        │       │   ├── SelectCredentialsDialog.cs
        │       │   ├── ShowCredentialsView.cs
        │       │   ├── ShowCredentialsView.Designer.cs
        │       │   └── ShowCredentialsView.resx
        │       ├── Diagnostics
        │       │   └── DiagnosticsCommands.cs
        │       ├── Download
        │       │   ├── DownloadFileDialog.cs
        │       │   ├── DownloadFileView.cs
        │       │   ├── DownloadFileView.Designer.cs
        │       │   ├── DownloadFileViewModel.cs
        │       │   └── DownloadFileView.resx
        │       ├── Options
        │       │   ├── SshOptionsSheet.cs
        │       │   ├── SshOptionsSheet.Designer.cs
        │       │   ├── SshOptionsSheet.resx
        │       │   ├── SshOptionsViewModel.cs
        │       │   ├── TerminalOptionsSheet.cs
        │       │   ├── TerminalOptionsSheet.Designer.cs
        │       │   ├── TerminalOptionsSheet.resx
        │       │   └── TerminalOptionsViewModel.cs
        │       ├── Rdp
        │       │   ├── IRdpSession.cs
        │       │   ├── RdpClientExtensions.cs
        │       │   ├── RdpView.cs
        │       │   ├── RdpView.Designer.cs
        │       │   ├── RdpViewModel.cs
        │       │   └── RdpView.resx
        │       ├── Session
        │       │   ├── ConnectCommands.cs
        │       │   ├── ConnectInstanceCommandBase.cs
        │       │   ├── ConnectInstanceCommand.cs
        │       │   ├── ConnectRdpUrlCommand.cs
        │       │   ├── SessionCommands.cs
        │       │   └── SessionFactory.cs
        │       ├── SessionViewBase.cs
        │       ├── Ssh
        │       │   ├── ISshTerminalSession.cs
        │       │   ├── SftpFileSystem.cs
        │       │   ├── SshTerminalView.cs
        │       │   ├── SshTerminalViewModel.cs
        │       │   ├── TerminalPaneBase.cs
        │       │   ├── TerminalPaneBase.Designer.cs
        │       │   ├── TerminalPaneBase.resx
        │       │   └── TerminalViewModelBase.cs
        │       ├── SshKeys
        │       │   ├── AuthorizedPublicKeysCommands.cs
        │       │   ├── AuthorizedPublicKeysList.cs
        │       │   ├── AuthorizedPublicKeysModel.cs
        │       │   ├── AuthorizedPublicKeysView.cs
        │       │   ├── AuthorizedPublicKeysView.Designer.cs
        │       │   ├── AuthorizedPublicKeysViewModel.cs
        │       │   └── AuthorizedPublicKeysView.resx
        │       └── Tunnels
        │           ├── TunnelsViewCommands.cs
        │           ├── TunnelsView.cs
        │           ├── TunnelsView.designer.cs
        │           ├── TunnelsViewModel.cs
        │           └── TunnelsView.resx
        ├── Google.Solutions.IapDesktop.Extensions.Session.Test
        │   ├── app.config
        │   ├── Controls
        │   │   ├── RdpDiagnosticsWindow.cs
        │   │   ├── RdpDiagnosticsWindow.Designer.cs
        │   │   ├── RdpDiagnosticsWindow.resx
        │   │   ├── TestRdpClient.cs
        │   │   ├── TestRdpClientWithGroupPolicies.cs
        │   │   ├── TestTerminalFont.cs
        │   │   ├── TestVirtualTerminal.cs
        │   │   └── TestVirtualTerminalKeyHandler.cs
        │   ├── GlobalSuppressions.cs
        │   ├── Google.Solutions.IapDesktop.Extensions.Session.Test.csproj
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   ├── Protocol
        │   │   ├── App
        │   │   │   ├── TestAppProtocolContextFactory.cs
        │   │   │   ├── TestSsmsClient.cs
        │   │   │   └── TestSsms.cs
        │   │   ├── Rdp
        │   │   │   ├── TestRdpContext.cs
        │   │   │   ├── TestRdpCredentialCallback.cs
        │   │   │   ├── TestRdpCredential.cs
        │   │   │   ├── TestRdpParameters.cs
        │   │   │   ├── TestRdpProtocol.cs
        │   │   │   └── TestSessionContextFactoryForRdp.cs
        │   │   ├── Ssh
        │   │   │   ├── TestCngKeyName.cs
        │   │   │   ├── TestEphemeralKeySigners.cs
        │   │   │   ├── TestInstanceMetadataAuthorizedPublicKeyProcessor.cs
        │   │   │   ├── TestLinuxUser.cs
        │   │   │   ├── TestMetadataAuthorizedPublicKey.cs
        │   │   │   ├── TestMetadataAuthorizedPublicKeyProcessor.cs
        │   │   │   ├── TestMetadataAuthorizedPublicKeySet.cs
        │   │   │   ├── TestOsLoginCertificateSigner.cs
        │   │   │   ├── TestOsLoginProfile.cs
        │   │   │   ├── TestPlatformCredentialAuthentication.cs
        │   │   │   ├── TestPlatformCredential.cs
        │   │   │   ├── TestPlatformCredentialFactory.cs
        │   │   │   ├── TestProjectMetadataAuthorizedPublicKeyProcessor.cs
        │   │   │   ├── TestSessionContextFactoryForSsh.cs
        │   │   │   ├── TestSshContext.cs
        │   │   │   ├── TestSshParameters.cs
        │   │   │   └── TestSshProtocol.cs
        │   │   └── TestIapRdpUrlExtensions.cs
        │   ├── RequiresRdpAttribute.cs
        │   ├── Settings
        │   │   ├── TestConnectionSettingsRepository.cs
        │   │   ├── TestConnectionSettingsService.cs
        │   │   ├── TestIapRdpUrlConnectionSettings.cs
        │   │   ├── TestSshSettingsRepository.cs
        │   │   └── TestTerminalSettingsRepository.cs
        │   ├── TestInitializeSessionExtension.cs
        │   └── ToolWindows
        │       ├── App
        │       │   ├── TestConnectAppProtocolWithClientCommand.cs
        │       │   ├── TestConnectAppProtocolWithoutClientCommand.cs
        │       │   └── TestForwardLocalPortCommand.cs
        │       ├── ConnectionSettings
        │       │   ├── TestConnectionSettingsCommands.cs
        │       │   └── TestConnectionSettingsViewModel.cs
        │       ├── Credentials
        │       │   ├── TestCreateCredentialsWorkflow.cs
        │       │   ├── TestGenerateCredentialsViewModel.cs
        │       │   └── TestSelectCredentialsWorkflow.cs
        │       ├── Download
        │       │   ├── TestDownloadFileDialog.cs
        │       │   └── TestDownloadFileViewModel.cs
        │       ├── Options
        │       │   ├── TestSshOptionsViewModel.cs
        │       │   └── TestTerminalOptionsViewModel.cs
        │       ├── Rdp
        │       │   ├── IapTransport.cs
        │       │   ├── TestRdpView.cs
        │       │   └── TestWindowsUser.cs
        │       ├── Session
        │       │   ├── TestConnectCommands.cs
        │       │   ├── TestConnectInstanceComand.cs
        │       │   ├── TestConnectRdpUrlCommand.cs
        │       │   └── TestSessionCommands.cs
        │       ├── Ssh
        │       │   ├── TestSftpFileSystem.cs
        │       │   ├── TestSshTerminalPaneViewModel.cs
        │       │   └── TestSshTerminalView.cs
        │       ├── SshKeys
        │       │   ├── TestAuthorizedPublicKeysCommands.cs
        │       │   ├── TestAuthorizedPublicKeysModel.cs
        │       │   └── TestAuthorizedPublicKeysViewModel.cs
        │       ├── TestSessionPaneBase.cs
        │       └── Tunnels
        │           ├── TestTunnelsViewCommands.cs
        │           └── TestTunnelsViewModel.cs
        ├── Google.Solutions.IapDesktop.props
        ├── Google.Solutions.IapDesktop.sln
        ├── Google.Solutions.Iap.Test
        │   ├── app.config
        │   ├── Google.Solutions.Iap.Test.csproj
        │   ├── IapFixtureBase.cs
        │   ├── InitializeScripts.cs
        │   ├── Net
        │   │   ├── TestPortFinder.cs
        │   │   ├── TestSystemPatch.cs
        │   │   └── TestWebSocketStream.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   ├── Protocol
        │   │   ├── Mocks.cs
        │   │   ├── TestEchoOverIapBase.cs
        │   │   ├── TestEchoOverIapDirectTunnel.cs
        │   │   ├── TestEchoOverIapIndirectTunnel.cs
        │   │   ├── TestHttpOverIapDirectTunnel.cs
        │   │   ├── TestHttpOverIapIndirectTunnel.cs
        │   │   ├── TestHttpOverIapTunnelBase.cs
        │   │   ├── TestSshRelayFormat.cs
        │   │   ├── TestSshRelayStream.Probing.cs
        │   │   ├── TestSshRelayStream.Reading.cs
        │   │   ├── TestSshRelayStream.SocketHandling.cs
        │   │   └── TestSshRelayStream.Writing.cs
        │   ├── Setup.cs
        │   ├── TestIapClient.cs
        │   ├── TestIapListener.cs
        │   └── Util
        │       ├── WebSocketServer.cs
        │       └── WebSocketServerExtensions.cs
        ├── Google.Solutions.Mvvm
        │   ├── Binding
        │   │   ├── BindingContext.cs
        │   │   ├── BindingException.cs
        │   │   ├── BindingExtensions.cs
        │   │   ├── Commands
        │   │   │   ├── CommandBase.cs
        │   │   │   ├── CommandBindingExtensions.cs
        │   │   │   ├── CommandBindingExtensions.Generated.cs
        │   │   │   ├── CommandBindingExtensions.Generated.tt
        │   │   │   ├── CommandContainer.cs
        │   │   │   ├── ContextCommand.cs
        │   │   │   ├── ContextCommandGroup.cs
        │   │   │   ├── ContextSource.cs
        │   │   │   ├── DelegatingContextCommandBase.cs
        │   │   │   ├── ICommandBase.cs
        │   │   │   ├── ICommand.cs
        │   │   │   ├── IContextCommand.cs
        │   │   │   └── ObservableCommand.cs
        │   │   ├── FilteredObservableCollection.cs
        │   │   ├── ObservableFunc.cs
        │   │   ├── ObservableProperty.Builder.cs
        │   │   ├── ObservableProperty.cs
        │   │   ├── PropertiesSheetView.cs
        │   │   ├── PropertiesView.cs
        │   │   ├── PropertiesView.Designer.cs
        │   │   ├── PropertiesViewModel.cs
        │   │   ├── PropertiesView.resx
        │   │   ├── RangeObservableCollection.cs
        │   │   ├── ToolStripMenuBindingExtensions.cs
        │   │   ├── View.cs
        │   │   └── ViewModelBase.cs
        │   ├── Cache
        │   │   ├── LeastRecentlyUsedCache.cs
        │   │   └── ModelCachingViewModel.cs
        │   ├── Controls
        │   │   ├── ActiveStatusStrip.cs
        │   │   ├── BindableComboBox.cs
        │   │   ├── BindableListView.cs
        │   │   ├── BindableTreeView.cs
        │   │   ├── ClipboardUtil.cs
        │   │   ├── CompositeForm.cs
        │   │   ├── ControlExtensions.cs
        │   │   ├── DeferredCallback.cs
        │   │   ├── DropDownButton.cs
        │   │   ├── EventArgs.cs
        │   │   ├── ExceptionEventArgs.cs
        │   │   ├── FileBrowser.cs
        │   │   ├── FileBrowser.Designer.cs
        │   │   ├── FileBrowser.Interfaces.cs
        │   │   ├── FileBrowser.resx
        │   │   ├── HeaderLabel.cs
        │   │   ├── HtmlClipboardFormat.cs
        │   │   ├── ListViewExtensions.cs
        │   │   ├── MarkdownViewer.cs
        │   │   ├── MarkdownViewer.Designer.cs
        │   │   ├── MarkdownViewer.resx
        │   │   ├── NotificationBarPanel.cs
        │   │   ├── ProgressBar.cs
        │   │   ├── PropertyGridExtensions.cs
        │   │   ├── RichTextBox50.cs
        │   │   ├── RichTextBoxExtensions.cs
        │   │   ├── ScreenPicker.cs
        │   │   ├── ScreenPicker.Designer.cs
        │   │   ├── ScreenPicker.resx
        │   │   ├── SearchableList.cs
        │   │   ├── SearchableList.Designer.cs
        │   │   ├── SearchableList.resx
        │   │   ├── TaskDialog.cs
        │   │   ├── TaskDialogParameters.cs
        │   │   ├── TextBoxExtensions.cs
        │   │   └── VerticalTabControl.cs
        │   ├── Diagnostics
        │   │   ├── DebugMessageThrottle.cs
        │   │   └── MessageTraceRecorder.cs
        │   ├── Drawing
        │   │   ├── BadgeIcon.cs
        │   │   ├── ColorExtensions.cs
        │   │   ├── FontExtensions.cs
        │   │   ├── HslColor.cs
        │   │   └── IconInverter.cs
        │   ├── Format
        │   │   ├── ByteSizeFormatter.cs
        │   │   ├── MarkdownDocument.cs
        │   │   └── RtfWriter.cs
        │   ├── Google.Solutions.Mvvm.csproj
        │   ├── Interop
        │   │   ├── SubclassCallback.cs
        │   │   ├── WindowMessage.cs
        │   │   └── WindowStyles.cs
        │   ├── Properties
        │   │   ├── AssemblyInfo.cs
        │   │   ├── Resources.Designer.cs
        │   │   └── Resources.resx
        │   ├── Resources
        │   │   ├── Copy_16x.png
        │   │   └── Search_16.png
        │   ├── Shell
        │   │   ├── FileTypeCache.cs
        │   │   ├── FileType.cs
        │   │   ├── KnownFolders.cs
        │   │   ├── StockIcons.cs
        │   │   └── TaskBarList.cs
        │   └── Theme
        │       ├── CommonControlRuleSet.cs
        │       ├── ControlTheme.cs
        │       ├── GdiScaling.cs
        │       ├── GdiScalingRuleset.cs
        │       ├── IControlTheme.cs
        │       ├── SystemTheme.cs
        │       ├── ToolStripItemTheme.cs
        │       ├── WindowsRuleSet.cs
        │       └── WindowsSystemDialogRuleset.cs
        ├── Google.Solutions.Mvvm.Test
        │   ├── app.config
        │   ├── app.manifest
        │   ├── Binding
        │   │   ├── Commands
        │   │   │   ├── TestCommandBindingExtensions.cs
        │   │   │   ├── TestCommandContainer.cs
        │   │   │   ├── TestContextCommand.cs
        │   │   │   └── TestContextCommandGroup.cs
        │   │   ├── TestBindingExtensions.cs
        │   │   ├── TestFilteredObservableCollection.cs
        │   │   ├── TestObservableFunc.cs
        │   │   ├── TestObservableProperty.cs
        │   │   ├── TestPropertiesView.cs
        │   │   ├── TestPropertiesViewModel.cs
        │   │   ├── TestRangeObservableCollection.cs
        │   │   ├── TestThreadSafeObservableProperty.cs
        │   │   ├── TestToolStripMenuBindingExtensions.cs
        │   │   └── TestView.cs
        │   ├── Cache
        │   │   ├── TestLeastRecentlyUsedCache.cs
        │   │   └── TestModelCachingViewModelBase.cs
        │   ├── Controls
        │   │   ├── TestActiveStatusStrip.cs
        │   │   ├── TestBindableComboBox.cs
        │   │   ├── TestBindableListView.cs
        │   │   ├── TestBindableTreeView.cs
        │   │   ├── TestDeferredCallback.cs
        │   │   ├── TestFileBrowser.cs
        │   │   ├── TestFileBrowserUi.cs
        │   │   ├── TestHtmlClipboardFormat.cs
        │   │   ├── TestListViewExtensions.cs
        │   │   ├── TestMarkdownViewer.cs
        │   │   ├── TestMarkdownViewer.Designer.cs
        │   │   ├── TestMarkdownViewer.resx
        │   │   ├── TestNotificationBarPanel.cs
        │   │   ├── TestNotificationBarPanel.Designer.cs
        │   │   ├── TestNotificationBarPanel.resx
        │   │   ├── TestProgressBar.cs
        │   │   ├── TestScreenPicker.cs
        │   │   ├── TestTaskDialog.cs
        │   │   └── TestVerticalTabControl.cs
        │   ├── Diagnostics
        │   │   ├── TestMessageTrace.cs
        │   │   └── TestMessageTraceRecorder.cs
        │   ├── Drawing
        │   │   ├── TestBadgeIcon.cs
        │   │   ├── TestColorExtensions.cs
        │   │   ├── TestFontExtensions.cs
        │   │   ├── TestHslColor.cs
        │   │   ├── TestIconInverter.cs
        │   │   ├── TestIconInverter.Designer.cs
        │   │   └── TestIconInverter.resx
        │   ├── Format
        │   │   ├── TestByteSizeFormatter.cs
        │   │   ├── TestMarkdownDocument.cs
        │   │   └── TestRtfWriter.cs
        │   ├── Google.Solutions.Mvvm.Test.csproj
        │   ├── Interop
        │   │   └── TestSubclassCallback.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   ├── Shell
        │   │   ├── TestFileTypeCache.cs
        │   │   ├── TestFileType.cs
        │   │   ├── TestKnownFolders.cs
        │   │   └── TestStockIcons.cs
        │   └── Theme
        │       ├── TestCommonControlTheme.cs
        │       ├── TestControlTheme.cs
        │       └── TestToolStripItemTheme.cs
        ├── Google.Solutions.Platform
        │   ├── Dispatch
        │   │   ├── DispatchException.cs
        │   │   ├── IWin32ProcessSet.cs
        │   │   ├── Win32ChildProcessFactory.cs
        │   │   ├── Win32Job.cs
        │   │   ├── Win32Process.cs
        │   │   ├── Win32ProcessFactory.cs
        │   │   └── WtsSession.cs
        │   ├── Google.Solutions.Platform.csproj
        │   ├── Net
        │   │   ├── Browser.cs
        │   │   ├── BrowserProtocolRegistry.cs
        │   │   ├── ChromeAutoSelectCertificateForUrlsPolicy.cs
        │   │   ├── ChromeCertificateSelector.cs
        │   │   ├── ChromePolicyUrlPattern.cs
        │   │   ├── IChromeAutoSelectCertificateForUrlsPolicy.cs
        │   │   ├── NetworkCredentialExtensions.cs
        │   │   └── TcpTable.cs
        │   ├── PlatformTraceSource.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   ├── Security
        │   │   ├── Cryptography
        │   │   │   ├── CertificateStore.cs
        │   │   │   ├── KeyStore.cs
        │   │   │   └── KeyType.cs
        │   │   └── Quarantine.cs
        │   └── UserEnvironment.cs
        ├── Google.Solutions.Platform.Test
        │   ├── app.config
        │   ├── CngAssert.cs
        │   ├── Dispatch
        │   │   ├── TestWin32ChildProcessFactory.cs
        │   │   ├── TestWin32Job.cs
        │   │   ├── TestWin32Process.cs
        │   │   ├── TestWin32ProcessFactory.cs
        │   │   └── TestWtsSession.cs
        │   ├── Google.Solutions.Platform.Test.csproj
        │   ├── Net
        │   │   ├── TestBrowser.cs
        │   │   ├── TestBrowserProtocolRegistry.cs
        │   │   ├── TestChromeAutoSelectCertificateForUrlsPolicy.cs
        │   │   ├── TestChromeCertificateSelector.cs
        │   │   ├── TestChromePolicyUrlPattern.cs
        │   │   ├── TestNetworkCredentialExtensions.cs
        │   │   └── TestTcpTable.cs
        │   ├── Security
        │   │   ├── Cryptography
        │   │   │   ├── TestCertificateStore.cs
        │   │   │   ├── TestKeyStore.cs
        │   │   │   └── TestKeyType.cs
        │   │   └── TestQuarantine.cs
        │   └── TestUserEnvironment.cs
        ├── Google.Solutions.Ssh
        │   ├── Cryptography
        │   │   ├── AsymmetricKeySigner.cs
        │   │   ├── AuthenticationChallenge.cs
        │   │   ├── EcdsaPublicKey.cs
        │   │   ├── EcdsaSignature.cs
        │   │   ├── EcdsaSigner.cs
        │   │   ├── ECPointEncoding.cs
        │   │   ├── PublicKey.cs
        │   │   ├── RsaPublicKey.cs
        │   │   ├── RsaSigner.cs
        │   │   └── SshKeyType.cs
        │   ├── Format
        │   │   ├── MessageCodes.cs
        │   │   ├── SshFormatException.cs
        │   │   ├── SshReader.cs
        │   │   └── SshWriter.cs
        │   ├── GlobalSuppressions.cs
        │   ├── Google.Solutions.Ssh.csproj
        │   ├── ISshCredential.cs
        │   ├── ITextTerminal.cs
        │   ├── Native
        │   │   ├── AuthenticationMetods.cs
        │   │   ├── EnvironmentVariable.cs
        │   │   ├── FilePermissions.cs
        │   │   ├── HandleTable.cs
        │   │   ├── HostKeyType.cs
        │   │   ├── NativeMethods.cs
        │   │   ├── SshAuthenticatedSession.cs
        │   │   ├── SshChannelBase.cs
        │   │   ├── SshConnectedSession.cs
        │   │   ├── SshException.cs
        │   │   ├── SshSessionChannel.cs
        │   │   ├── SshSession.cs
        │   │   ├── SshSftpChannel.cs
        │   │   └── SshSftpFileChannel.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   ├── RemoteConnection.cs
        │   ├── RemoteFileSystemChannel.cs
        │   ├── RemoteShellChannel.cs
        │   ├── SshEventSource.cs
        │   ├── SshException.cs
        │   ├── SshTraceSource.cs
        │   ├── SshWorkerThread.cs
        │   ├── StaticPasswordCredential.cs
        │   ├── StreamingDecoder.cs
        │   └── TerminalSize.cs
        ├── Google.Solutions.Ssh.Test
        │   ├── app.config
        │   ├── Cryptography
        │   │   ├── AsymmentricKeyExtensions.cs
        │   │   ├── SampleKeys.cs
        │   │   ├── TestAuthenticationChallenge.cs
        │   │   ├── TestEcdsaPublicKey.cs
        │   │   ├── TestEcdsaSigner.cs
        │   │   ├── TestECPointEncoding.cs
        │   │   ├── TestPublicKey.cs
        │   │   ├── TestRsaPublicKey.cs
        │   │   └── TestRsaSigner.cs
        │   ├── Format
        │   │   ├── TestSshReader.cs
        │   │   └── TestSshWriter.cs
        │   ├── GlobalSuppressions.cs
        │   ├── Google.Solutions.Ssh.Test.csproj
        │   ├── Mocks.cs
        │   ├── Native
        │   │   ├── InitializeScripts.cs
        │   │   ├── TestEnvironmentVariable.cs
        │   │   ├── TestFilePermissions.cs
        │   │   ├── TestSshAuthenticatedSession.cs
        │   │   ├── TestSshConnectedSession.cs
        │   │   ├── TestSshSession.cs
        │   │   ├── TestSshSftpChannel.cs
        │   │   ├── TestSshSftpFileChannel.cs
        │   │   └── TestSshShellChannel.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   ├── SshAssert.cs
        │   ├── SshFixtureBase.cs
        │   ├── TestRemoteConnection.cs
        │   ├── TestRemoteFileSystemChannel.cs
        │   ├── TestRemoteShellChannel.cs
        │   ├── TestStaticPasswordCredential.cs
        │   └── TestStreamingDecoder.cs
        ├── Google.Solutions.Testing.Apis
        │   ├── app.config
        │   ├── Assert.cs
        │   ├── Auth
        │   │   ├── Enrollment.cs
        │   │   ├── TemporaryAuthorization.cs
        │   │   ├── TemporaryCredential.cs
        │   │   ├── TemporaryPrincipal.cs
        │   │   ├── TemporaryServiceAccount.cs
        │   │   ├── TemporarySession.cs
        │   │   └── TemporaryWorkforcePoolSubject.cs
        │   ├── Cryptography
        │   │   └── CertificateUtil.cs
        │   ├── EquatableFixtureBase.cs
        │   ├── FixtureBase.cs
        │   ├── Google.Solutions.Testing.Apis.csproj
        │   ├── Integration
        │   │   ├── CloudIntegrationTest.cs
        │   │   ├── CredentialAttribute.cs
        │   │   ├── InstanceAttribute.cs
        │   │   ├── InstanceFactory.cs
        │   │   ├── PredefinedRole.cs
        │   │   ├── RequiresInteractionAttribute.cs
        │   │   ├── ResourceTask.cs
        │   │   └── TestProject.cs
        │   ├── Mock
        │   │   └── ServiceProviderMocks.cs
        │   ├── Net
        │   │   ├── InprocHttpProxy.cs
        │   │   └── NetTracing.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   ├── Threading
        │   │   └── ThreadpoolInvoker.cs
        │   └── WindowsFormsTestAttribute.cs
        ├── Google.Solutions.Testing.Application
        │   ├── app.config
        │   ├── ApplicationFixtureBase.cs
        │   ├── Google.Solutions.Testing.Application.csproj
        │   ├── Mocks
        │   │   └── SynchronousJobService.cs
        │   ├── ObjectModel
        │   │   └── ServiceRegistryExtensions.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   └── Views
        │       ├── ControlExtensions.cs
        │       ├── TestMainForm.cs
        │       ├── TestMainForm.Designer.cs
        │       ├── TestMainForm.resx
        │       └── WindowTestFixtureBase.cs
        ├── installer
        │   ├── Background.bmp
        │   ├── Background.pdn
        │   ├── ConfigReadme.txt
        │   ├── Header.bmp
        │   ├── icon.ico
        │   ├── License.rtf
        │   ├── LogsReadme.txt
        │   ├── policies
        │   │   ├── IapDesktop.adml
        │   │   └── IapDesktop.admx
        │   ├── Product.wxl
        │   ├── Product.wxs
        │   └── Sample-mstsc.iapc
        ├── kokoro
        │   ├── continuous.cfg
        │   ├── nunit-to-sponge.xsl
        │   └── presubmit.cfg
        ├── makefile
        ├── README.md
        ├── results.xml
        └── scripts
            ├── check-copyright-headers.ps1
            ├── clean.ps1
            ├── create-zip.ps1
            ├── credential-callback-server.ps1
            ├── gzip.ps1
            ├── README.md
            └── strip-bom.ps1

298 directories, 1602 files

标签:

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警