A Virtual Desktop Optimization Tool (VDOT) é um conjunto de ferramentas baseadas principalmente em texto que aplicam configurações a um sistema operacional Windows, com o objetivo de melhorar o desempenho. Os ganhos de desempenho estão no tempo geral de inicialização, no primeiro logon, no tempo de logon subsequente e na usabilidade durante uma sessão do usuário.
A ferramenta VDOT surgiu de anos de ajuste de desempenho da infraestrutura de desktop virtual (VDI) local. Algumas dessas implementações de VDI não estavam conectadas à Internet ou estavam limitadas à Internet, tornando alguns recursos e/ou funcionalidades do Windows não funcionais. Em vez de ter componentes não funcionais em execução, foram feitos aqueles itens que poderiam ser desabilitados ou removidos de maneira suportada. O resultado foi uma inicialização e login mais rápidos e um usuário mais tranquilo durante as sessões de usuário.
Mais tarde, quando o Azure Virtual Desktop (AVD) surgiu, a ferramenta VDOT foi meticulosamente revisada e feita para dar suporte ao AVD, de uma maneira que não degradasse a interface do usuário, reduzisse a funcionalidade ou de alguma forma prejudicasse os hosts da sessão AVD. As contribuições foram recebidas e implementadas dos grupos de produtos Microsoft Windows e Azure Virtual Desktop.
Como a ferramenta VDOT já existe, ela é compatível com uma ampla gama de sistemas. Funciona em VDI, AVD, Windows autônomo, Windows Server (com algumas ressalvas) e algumas otimizações são aplicadas até mesmo à oferta do Windows 365.
As configurações de otimização nesta ferramenta são as configurações potenciais que reduzem a atividade computacional e, assim, aumentam a densidade de usuários por host. É importante testar as configurações de otimização em cada ambiente e ajustá-las conforme necessário.
Os arquivos de configuração VDOT que determinam o que desabilitar, remover ou definir como política estão em arquivos .JSON baseados em texto, na respectiva pasta de versão do sistema operacional (ex. '2009'). O parâmetro JSON que esta ferramenta usa para determinar se uma configuração deve ou não ser aplicada é 'VDIState' . Se o parâmetro 'VDIState' no respectivo arquivo .JSON estiver definido como Disabled , a configuração de otimização será aplicada. Se 'VDIState' estiver definido para qualquer outro valor, a configuração não será aplicada.
Observação
Este script leva alguns minutos para ser concluído. O tempo total de execução será apresentado ao final, nas mensagens de saída de status. Um prompt para reinicializar aparecerá quando a execução do script terminar completamente. Aguarde este prompt para confirmar que o script foi concluído com êxito. Uma reinicialização é necessária porque vários itens não podem ser interrompidos na sessão atual.
O parâmetro "-verbose" no PowerShell direciona o script para fornecer uma saída descritiva enquanto o script está em execução.
Até agora, você poderia executar este comando:
.Windows_VDOT.ps1 -Verbose -AcceptEula
e um conjunto básico de otimizações seria executado. Agora, se você executar o comando acima, receberá uma mensagem de volta:
Essa funcionalidade equivalente daqui para frente é:
.Windows_VDOT.ps1 -Optimizations All -Verbose -AcceptEula
.
Essa mudança ocorreu quando mais categorias de otimizações foram adicionadas, algumas das quais podem não ser desejáveis para todos, então as novas otimizações foram adicionadas a um novo conjunto de parâmetros chamado AdvancedOptimizations . O novo conjunto de parâmetros contém otimizações do Edge Chromium , a capacidade de remover a carga útil do Internet Explorer 11 e remover o aplicativo OneDrive integrado . Com o conjunto de parâmetros AdvancedOptimizations, você pode executar uma ou todas as otimizações mencionadas.
O Windows 11, em alguns aspectos, reporta o mesmo que o Windows 10, para várias ferramentas de gerenciamento de configuração. Atualmente (em 29/07/22) tem o valor 'ReleaseID' de '2009'. Até que o número 'ReleaseID' mude, todas as novas otimizações serão incluídas na pasta 'Arquivos de configuração' abaixo da pasta '2009'. Portanto, os arquivos de configuração da pasta 2009 se aplicam ao Windows 10, bem como ao Windows 11.
A versão atual do VDOT, em 14/06/2024, foi testada com o Windows 11 23H2 e com as compilações atuais do Insider do Windows 11. Existem pequenas variações em quais aplicativos de "conveniência" estão incluídos no Windows com base no anel, marco , SKU, etc. Portanto, é possível que uma configuração esteja incluída na ferramenta VDOT que se aplica a um ou outro anel ou SKU específico do Windows. Nesse caso, se for feita uma tentativa de remover um aplicativo que não existe, um erro será exibido e o script seguirá em frente. As atividades são registradas no log de eventos do Windows para referência posterior.
A versão atual do Edge no Windows 10, em 29/07/2022, é o Microsoft Edge (baseado em Chromium). Há um conjunto de arquivos de modelo de política específicos para o novo Edge. Todas as configurações de política usadas pelo VDOT estão documentadas na planilha de referência de configurações de política de grupo para atualização do Windows 11 2023 (23H2)
A ferramenta VDOT agora possui as seguintes opções de otimização para Microsoft Edge:
O manifesto AppxPackages.json, independente da versão do Windows, agora tem o “ VDIState ” definido como “ Inalterado ”. O motivo é que não existe uma lista “recomendada” de aplicativos da Microsoft para remoção em todos os ambientes. Em cada caso, se você quiser remover um aplicativo da Plataforma Universal do Windows (UWP), altere o valor "VDIState" de Unchanged para "Disabled" .
Observação
A ferramenta VDOT não apenas remove aplicativos UWP para “AllUsers”, mas também remove a carga útil do aplicativo. Depois que uma carga de aplicativo UWP for removida, ela não poderá ser provisionada novamente para esse sistema. A única maneira de provisionar novamente uma carga de aplicativo removida é redefinir o dispositivo, reinstalar ou recriar a imagem.
Os usuários ainda podem reinstalar um aplicativo removido do VDOT por meio do aplicativo Store, se estiverem conectados à Internet. Se não estiver conectado à Internet, os aplicativos não poderão ser reinstalados. É por isso que o VDOT não remove o aplicativo Store, nem recomendamos que o aplicativo Store seja removido. Aqui está um artigo sobre o aplicativo Store.
| ✏ NOTA | Existe um serviço que não deve ser desabilitado, exceto talvez em ambientes "air-gapped" ou outros ambientes que bloqueiem o acesso à Microsoft Content Delivery Network (CDN). Este serviço é denominado "Serviço de instalação da Microsoft Store". Se este serviço estiver desabilitado, os componentes da Loja no Windows não poderão atualizar aplicativos e dependências UWP, o que pode levar a vulnerabilidades. A exceção poderá ser feita se a organização atualizar proativamente os aplicativos UWP e suas dependências. A atualização manual do UWP requer a obtenção do pacote de instalação do aplicativo de cada componente e dos pacotes de componentes de dependência do aplicativo. Eles podem ser agrupados e oferecidos por meio de componentes como Endpoint Manager ou talvez Intune.
A ferramenta VDOT possui vários parâmetros passados para o arquivo principal do PowerShell "Windows_VDOT.ps1" que fornece granularidade de instalação. Os dois parâmetros usados para controlar exatamente quais otimizações são aplicadas são:
-Optimizations
-AdvancedOptimizations
O resultado é que você pode executar tantos, poucos ou até mesmo um subparâmetro contido na lista acima. Aqui estão dois exemplos de execução da ferramenta VDOT para categorias de otimização específicas.
.Windows_VDOT.ps1 -Optimizations AppxPackages -AcceptEula -Verbose
.Windows_VDOT.ps1 -AdvancedOptimizations Edge, AppxPackages -AcceptEula -Verbose
.Windows_VDOT.ps1 -Optimizations All -AdvancedOptimizations All -AcceptEULA -Verbose
Adicionamos a capacidade de remover o aplicativo OneDrive integrado. A remoção do aplicativo OneDrive é aplicável, por exemplo, a nuvens isoladas. Há uma sincronização de aplicativo OneDrive associada que pode ser removida na categoria de otimização AppxPackages. O aplicativo OneDrive pode ser adicionado novamente. O subparâmetro para remover o aplicativo OneDrive está no parâmetro "-AdvancedOptimizations". A remoção do aplicativo OneDrive não é uma configuração padrão e só pode ser iniciada selecionando uma das duas opções a seguir:
.Windows_VDOT.ps1 -AdvancedOptimizations RemoveOneDrive
.Windows_VDOT.ps1 -AdvancedOptimizations Todos
Como o Internet Explorer 11 foi oficialmente retirado, adicionamos a opção de remover a carga útil do IE11 do sistema. O subparâmetro é RemoveLegacyIE
e está contido no parâmetro -AdvancedOptimizations
. Como não é uma configuração padrão remover a carga útil do IE11, você pode especificar sua remoção de duas maneiras:
.Windows_VDOT.ps1 -AdvancedOptimizations RemoveLegacyIE
.Windows_VDOT.ps1 -AdvancedOptimizations Todos
O VDOT funciona bem no Server 20xx, embora se cada parâmetro for especificado, muitas mensagens de erro não relacionadas a erros serão geradas. Não há aplicativos UWP anteriores ao Server 2025. Para executar VDOT no Windows Server 2019 e/ou Windows Server 2022, use este parâmetro:
.Windows_VDOT.ps1 -WindowsVersão 2009
PowerShell: executando executáveis
Remover item
LGPO
Definir serviço
Remover item
2.2.1.7.2 Elemento GlobalFolderOptionsVista
Informações de lançamento do Windows 10
Informações de lançamento do Windows 11
Observação
Descontinuamos totalmente o uso de LGPO.exe.
NOTA: Este script deve levar apenas alguns minutos para ser concluído. O tempo total de execução será apresentado ao final, nas mensagens de saída de status.
Um prompt para reinicializar aparecerá quando a execução do script terminar completamente. Aguarde este prompt para confirmar que o script foi concluído com êxito.
Além disso, o parâmetro "-verbose" no PowerShell direciona o script para fornecer uma saída descritiva enquanto o script está em execução.
No dispositivo que receberá as otimizações:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
Isso permite a execução de scripts do PowerShell, mas apenas enquanto o aplicativo em execução estiver aberto.
.Windows_VDOT.ps1 -Optimizations All -Verbose
Isso executará todas as otimizações padrão com saída detalhada, embora o EULA tenha que ser aceito manualmente.
.Windows_VDOT.ps1 -Optimizations All -Verbose -AcceptEula
Isso executará todas as otimizações padrão com saída detalhada e aceitará automaticamente o Eula (para execução com script)
.Windows_VDOT.ps1 -Optimizations All -AdvancedOptimizations Edge -Verbose -AcceptEULA
Isso executará todas as otimizações padrão, as otimizações avançadas do navegador Edge, a saída detalhada e aceitará automaticamente o Eula.
.Windows_VDOT.ps1 -Optimizations AppxPackages -AcceptEULA
Isso executará apenas AppxPackages e aceitará automaticamente o EULA
.Windows_VDOT.ps1 -Optimizations All -AdvancedOptimizations All -Verbose -AcceptEULA -Restart
Isso executará todas as otimizações do VDOT, saída detalhada, aceitará automaticamente o Eula e reiniciará o dispositivo quando o VDOT for concluído.
Observação
A ferramenta VDOT determina a versão do sistema operacional em tempo de execução. Você pode especificar um conjunto diferente de arquivos de configuração usando o parâmetro "-WindowsVersion".
Quando concluído, você verá um prompt para reiniciar. Você não precisa reiniciar imediatamente, embora seja recomendado fazê-lo.
SYSPREP (ferramenta de preparação do sistema Windows) (27/08/2022)
Você deve executar o VDOT antes ou depois do Sysprep? A resposta é uma das duas, talvez ambas. A resposta "ambos" é porque você pode executar novamente o VDOT a qualquer momento e nada muda, a menos que as configurações sejam revertidas, os aplicativos tenham sido reinstalados, etc. Foi observado um caso em que o OneDrive é removido quando o VDOT é executado antes do SYSPREP. Depois que a imagem for implantada, haverá um link do OneDrive no menu Iniciar. Isso não deverá ocorrer se você puder executar VDOT AFTER SYSPREP .
O Windows não pode verificar as informações do certificado (17/01/2020)
IMPORTANTE: O Windows não pode verificar as informações do certificado (CRL) com a seguinte configuração desabilitada
Política do Computador Local Configuração do Computador Modelos Administrativos Sistema Gerenciamento de Comunicação pela Internet Configurações de Comunicação pela Internet
A seguinte configuração foi removida do VDOT:
Desative a atualização automática de certificados raiz
Desativar 'CDPSvc' pode causar falha no SystemSettings.exe (27/01/2020)
Um novo problema foi descoberto recentemente em relação ao ‘CDPSvc’. Se esse serviço estiver desativado e um novo usuário fizer login no computador e abrir 'Configurações do sistema' para visualizar as configurações de exibição, 'SystemSettings.exe' irá travar e registrar um erro no log de eventos com o código "saída fatal do aplicativo".
A configuração para 'CDPSvc' agora permanece inalterada em 'Win10_1909_ServicesDisable.txt'.
O365 não consegue entrar em contato com o servidor de licenciamento (20/04/2020)
Anteriormente, o script VDOT tinha uma configuração de política local neste local definida como desabilitada:
Política do Computador Local Configuração do Computador Modelos Administrativos Sistema Gerenciamento de Comunicação pela Internet Configurações de Comunicação pela Internet
Desative os testes ativos do indicador de status de conectividade de rede do Windows
Com os testes ativos desabilitados, o Office 365 não consegue entrar em contato com seu serviço de licenciamento e, portanto, não executaria nenhum dos aplicativos do Office. Esta configuração foi alterada novamente para "Não configurada" na configuração LGPO incluída.
Alguns apps não possuem borda visível em ambientes de nuvem (22/04/2020)
Em alguns ambientes virtuais, como o Azure Windows Virtual Desktop, algumas das janelas da aplicação não terão limites. Um exemplo é o Explorador de Arquivos do Windows. Você pode replicar isso abrindo o Wordpad e o File Explorer, movendo-o e observando que talvez você não veja uma borda onde um aplicativo inicia e o outro termina.
Uma das otimizações adicionadas recentemente altera as configurações de Efeitos Visuais (encontradas nas Propriedades do Sistema) para reduzir animações e efeitos, mantendo uma boa experiência do usuário.
- "suavização de fontes de tela"
- "mostrar sombras sob o ponteiro do mouse"
- "Mostrar sombras sob as janelas"
Essas configurações do usuário permitirão um efeito de sombra ao redor das janelas, como o File Explorer, para que a borda do aplicativo agora fique visível.
Essas configurações são gravadas no hive de registro de perfil de usuário padrão, portanto, seriam aplicadas somente aos usuários cujo perfil é criado após a execução dessas otimizações e neste dispositivo.
Aplicativos são executados, mesmo que o aplicativo não tenha sido executado (29/04/2020)
Vários aplicativos UWP integrados, como Skype, Telefone e Fotos, iniciarão processos e serão executados em segundo plano, mesmo que o usuário não tenha iniciado o(s) aplicativo(s). Em uma única máquina, esse impacto é quase zero, mas no Windows com várias sessões, pode ser um problema de impacto um pouco maior. Há uma configuração no aplicativo ‘Configurações’, em ‘Aplicativos em segundo plano’ que permite controlar esse comportamento por usuário. No entanto, atualmente não há como alterar esse comportamento como uma configuração global, a não ser desinstalar completamente o aplicativo.
Se desejar manter um ou mais desses aplicativos em sua imagem e ainda controlar o comportamento em segundo plano, você poderá editar a seção de registro do usuário padrão e definir as seguintes configurações:
"HKCUSoftwareMicrosoftWindowsCurrentVersionBackgroundAccessApplicationsMicrosoft.Windows.Photos_8wekyb3d8bbwe /v Desativado /t REG_DWORD /d 1 /f "HKCUSoftwareMicrosoftWindowsCurrentVersionBackgroundAccessApplicationsMicrosoft.Windows.Photos_8wekyb3d8bbwe /v DisabledByUser /t REG_DWORD /d 1 /f "HKCUSoftwareMicrosoftWindowsCurrentVersionBackgroundAccessApplicationsMicrosoft.SkypeApp_kzf8qxf38zg5c /v Desativado /t REG_DWORD /d 1 /f "HKCUSoftwareMicrosoftWindowsCurrentVersionBackgroundAccessApplicationsMicrosoft.SkypeApp_kzf8qxf38zg5c /v DisabledByUser /t REG_DWORD /d 1 /f "HKCUSoftwareMicrosoftWindowsCurrentVersionBackgroundAccessApplicationsMicrosoft.YourPhone_8wekyb3d8bbwe /v Desativado /t REG_DWORD /d 1 /f "HKCUSoftwareMicrosoftWindowsCurrentVersionBackgroundAccessApplicationsMicrosoft.YourPhone_8wekyb3d8bbwe /v DisabledByUser /t REG_DWORD /d 1 /f
Você também pode definir essas configurações com Preferências de Política de Grupo e devem entrar em vigor após um logoff e logon novamente ou uma atualização do Gpupdate.
O Windows Update não funciona (11/05/2020)
Com as configurações incluídas na configuração da política local, que é restaurada no destino durante o processamento desses scripts, se você tentar executar o Windows Update manualmente, o Windows poderá relatar um erro.
A razão pela qual essas configurações estão em vigor nesses scripts é que, caso você as implante em um destino conectado à Internet, o Windows Update pode tentar instalar atualizações enquanto os hosts de sessão estão sendo utilizados ativamente. Os ambientes de área de trabalho virtual geralmente controlam o Windows Update para ser permitido apenas durante as janelas de manutenção ou para não ser executado, mas, em vez disso, implantar novos hosts.
A resolução mais recente para esse problema é definir 'UsoSvc' de volta para o valor inicial padrão de "manual" . Alternativamente, edite 'Services.json' e altere 'VDIState' de 'UsoSvc' para "unchanged" . Além disso, as configurações de política local foram atualizadas para deixar as configurações do Windows Update inalteradas em relação às configurações padrão.
A partir da versão 2004 desses scripts, o uso do Assistente de Limpeza de Disco (Cleanmgr.exe) foi descontinuado. O DCW está próximo do fim de sua vida útil, mas às vezes também "trava" durante a execução dos scripts. Em vez disso, alguma limpeza básica de disco foi incorporada ao script ‘Windows_VDOT.ps1’. Existem logs, rastreios e arquivos de log de eventos excluídos. Se desejar manter arquivos de log, você pode editar o script .PS1 e remover essas entradas.
Houve vários relatos de problemas com o menu Iniciar após a aplicação das configurações de otimização e possivelmente outras ações. Recentemente, conseguimos reproduzir um problema com o menu Iniciar realizando uma atualização de recursos de 1909 a 2004, onde o host da sessão de 1909 tinha as configurações de otimização em vigor. O problema pode surgir como resultado de perfis de usuário "otimizados", localmente ou em uma solução de perfil como o FSLogix. Em seguida, o processo de atualização de recursos realiza algum trabalho com pacotes Appx durante esse processo, levando a itens órfãos no menu Iniciar do usuário.
- Crie um script para reparar o menu Iniciar, copiando o seguinte para um arquivo de texto, salvando-o como um arquivo .CMD ou .BAT e fornecendo-o ao usuário afetado de forma interativa ou em um script de logon (normalmente não requer elevação).
start /wait taskkill /IM StartMenuExperienceHost.exe /F rd /S /Q " %UserProfile% AppdataLocalPackagesMicrosoft.Windows.StartMenuExperienceHost_cw5n1h2txyewyAC " rd /S /Q " %UserProfile% AppdataLocalPackagesMicrosoft.Windows.StartMenuExperienceHost_cw5n1h2txyewyAppData " rd /S /Q " %UserProfile% AppdataLocalPackagesMicrosoft.Windows.StartMenuExperienceHost_cw5n1h2txyewyLocalCache " rd /S /Q " %UserProfile% AppdataLocalPackagesMicrosoft.Windows.StartMenuExperienceHost_cw5n1h2txyewyLocalState " rd /S /Q " %UserProfile% AppdataLocalPackagesMicrosoft.Windows.StartMenuExperienceHost_cw5n1h2txyewyRoamingState " rd /S /Q " %UserProfile% AppdataLocalPackagesMicrosoft.Windows.StartMenuExperienceHost_cw5n1h2txyewySettings " rd /S /Q " %UserProfile% AppdataLocalPackagesMicrosoft.Windows.StartMenuExperienceHost_cw5n1h2txyewySystemAppData " rd /S /Q " %UserProfile% AppdataLocalPackagesMicrosoft.Windows.StartMenuExperienceHost_cw5n1h2txyewyTempState " Start C:WindowsSystemAppsMicrosoft.Windows.StartMenuExperienceHost_cw5n1h2txyewyStartMenuExperienceHost.exe
- Execute novamente o VDOT com o parâmetro '-WindowsVersion' apropriado (por exemplo, 2004).
[NOTA] Isso não apenas reparará o menu Iniciar em alguns casos, mas também há algumas configurações específicas para a compilação específica que podem não ter sido aplicadas anteriormente.
A configuração de política local do OneDrive impede o login automático no OneDrive (27/01/2021)
Há uma configuração padrão para OneDrive definida nesta ferramenta, com estes detalhes:
Computer ConfigurationAdministrative TemplatesWindows ComponentsOneDrive
"Prevent OneDrive from generating network traffic until the user signs in to OneDrive"
Estado padrão: Não configurado
Estado da ferramenta de otimização: ativadoHouve outro problema relacionado a essa configuração também relatado recentemente. Alguns dos aplicativos do Office “travariam” por vários segundos ou mais, até que a sincronização do OneDrive fosse concluída. Isso pode estar relacionado a esta configuração. Portanto, reverta essa configuração para o estado padrão de
"not configured"
.Esta configuração política específica é, na verdade, uma preferência. Você pode confirmar isso observando a sobreposição da “seta para baixo” no ícone de configuração. Uma boa maneira de reverter a configuração seria alterá-la de volta ao padrão com a política de grupo. Se você tivesse que fazer isso para cada usuário, o processo poderia ser mais complicado.
Pendure no logoff da "Janela de Tarefas" (16 de abril de 2021)
Recebemos relatos de uma janela de tarefas suspensa no logoff, quando o host está configurado com vários idiomas. Os testes iniciais mostraram que isso provavelmente é o resultado de um ou mais serviços de modo de usuário desabilitados pelo script. Os serviços em questão são:
-CDPSvc
-CDPUserSvcA configuração 'VDIState' desses dois serviços "por usuário" foi alterada de 'Desativado' para 'Inalterado'.
Snip & Sketch não funciona após otimizações (25 de maio de 2021)
Após executar as otimizações VDOT, o aplicativo UWP ‘Snip & Sketch’ pode ser iniciado, mas clicar para realizar uma nova captura não funciona (nada acontece). Além disso, clicando em Snip & Sketch, um erro é registrado no log de eventos do aplicativo, semelhante ao seguinte:
Faulting application name: ScreenClippingHost.exe, version: 2001.22012.0.2020, time stamp: 0x5ff501a5
Faulting module name: ScreenClipping.dll, version: 2001.22012.0.2020, time stamp: 0x5ff4fde8
Exception code: 0x80000003
Fault offset: 0x000000000001b92d
Isso foi resolvido em compilações recentes.
Nota sobre a reinstalação de pacotes Appx
Se você descobrir que removeu um pacote UWP e agora precisa dele de volta, a maneira mais fácil é abrir o aplicativo Microsoft Store e procurar o aplicativo ou clicar ou copiar e colar em um navegador da Web o URL desse aplicativo incluído no arquivo de configuração 'AppxPackages.json'.
Para evitar que um aplicativo UWP específico seja removido, edite o arquivo de configuração 'AppxPackages.json', procure o aplicativo e altere o 'VDIState' da entrada desse aplicativo de 'Desativado' para qualquer outra coisa, como ' Inalterado'.
Este Código de Amostra é fornecido apenas para fins ilustrativos e não se destina ao uso em um ambiente de produção.
ESTE CÓDIGO DE EXEMPLO E QUALQUER INFORMAÇÃO RELACIONADA SÃO FORNECIDOS "COMO ESTÃO" SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS IMPLÍCITAS DE COMERCIALIZAÇÃO E/OU ADEQUAÇÃO A UM DETERMINADO FIM. Concedemos a Você o direito não exclusivo e isento de royalties de usar e modificar o Código de Amostra e de reproduzir e distribuir a forma de código objeto do Código de Amostra, desde que Você concorde: (i) em não usar Nosso nome, logotipo ou marcas registradas para comercializar Seu produto de software no qual o Código de Amostra está incorporado; (ii) incluir um aviso de direitos autorais válido em Seu produto de software no qual o Código de Exemplo está incorporado; e (iii) indenizar, isentar e defender a Nós e aos Nossos fornecedores de e contra quaisquer reivindicações ou ações judiciais, incluindo honorários advocatícios, que surjam ou resultem do uso ou distribuição do Código de Exemplo.
A Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita, incluindo, mas não se limitando a, garantias implícitas de comercialização e/ou adequação a uma finalidade específica.
Este exemplo pressupõe que você esteja familiarizado com a linguagem de programação que está sendo demonstrada e com as ferramentas usadas para criar e depurar procedimentos. Os profissionais de suporte da Microsoft podem ajudar a explicar a funcionalidade de um procedimento específico, mas não modificarão esses exemplos para fornecer funcionalidade adicional ou construir procedimentos para atender às suas necessidades específicas. se você tiver experiência limitada em programação, entre em contato com um Microsoft Certified Partner ou com a linha de consultoria baseada em taxas da Microsoft pelo telefone (800) 936-5200.