Exemplos de Scripts do C# e do PowerShell

Este artigo fornece um resumo dos scripts de exemplo do PowerShell e do C# mencionados nas Diretrizes de Hospedagem. Eles podem ser usados para tarefas de implantação, configuração, migração e provisionamento.

de Walter Oliver

Scripts de Implantação – Hospedagem Compartilhada

  1. Servidor Web

    Esses scripts do PowerShell ajudarão a implantar e configurar o Servidor Web. Observe que esses scripts foram gravados e testados usando o PS 2.0:

    • runPKGMGT_IIS.PS1: executa a ferramenta de comando "pkgmgt.exe" para instalar o IIS 7.0 com os módulos recomendados para hospedagem compartilhada, confira Instalação da Função de Servidor Web.

      • O script usa o arquivo "unattended.xml" como seus dados de configuração de entrada, ele especifica os módulos do IIS a serem instalados.
      • Obrigatório: o Unattend.xml exige que o número da versão seja definido como a versão atual do produto do Windows, ou seja, version="6.0.6000.16386". Ele pode ser encontrado clicando com o botão direito do mouse em C:\Windows\RegEdit.exe e escolhendo a guia Detalhes. O PkgMgr exige esse parâmetro para que possa instalar corretamente todos os componentes desejados
    • Install_IISSharedHosting.PS1: executa todos os scripts de configuração de acordo com as diretrizes de Hospedagem Compartilhada, confira Configuração do IIS 7.0 para Hospedagem Compartilhada.

      • O script usa o arquivo IISSettings.xml como dados de configuração de entrada. Ele contém as configurações de Compactação Dinâmica e Limite Ocioso
      • A configuração de Arquivo Padrão do servidor é controlada pelo Default_File_Config.xml. Ela contém uma lista de todos os arquivos padrão a serem adicionados ou removidos. Crie quantas entradas você desejar. Defina activity="ADD" para adicionar ou "REMOVE" para remover.
    • Enable32bitModeWorkerProcess.PS1: habilita os processos de trabalho no modo de 32 bits nos computadores de 64 bits.

    • AppPoolIdentAsAnonymousUser.PS1: define a Identidade do Pool de Aplicativos como Usuário Anônimo.

    • AddRemoveDefaultDoc.PS1: adiciona ou remove Documentos Padrão de acordo com a especificação do arquivo de entrada Default_Files_Config.XML.

    • ConfigureDynamicIdleThreshold.PS1: define a propriedade de configuração dynamicIdleThreshold.

    • ConfigureDynamicCompression.PS1: define as propriedades de Compactação Dinâmica.

    • HTTPResponseCache.PS1: mostra o Cache de Resposta HTTP.

    • Em breve: definição de confiança média do ASP.NET.

  2. Servidor de arquivos

    Esses scripts do PowerShell ajudarão a implantar e configurar o Servidor de Arquivos. Observe que esses scripts foram gravados e testados usando o PS 2.0:

    • InstallFileServer.PS1: executa todos os scripts para instalar e configurar a função FileServer.

      • Arquivos: FolderPermissions.xml, SharePermissions.xml DirectoryQuotas_Settings.xml são preenchidos com configurações de exemplo. Cada um deve ser configurado antes da implantação, pois essas configurações variam de acordo com a implantação.
      • DirectoryQuotas_Settings.xml: permite definir quantas cotas de pastas forem necessárias.
      • FolderPermissions.xml: permite definir quantas pastas forem necessárias, e cada pasta pode ter nenhuma, uma ou muitas permissões.
      • SharePermissions.xml: permite definir quantos compartilhamentos forem necessários (será um erro se o novo compartilhamento não corresponder a uma pasta existente). Cada compartilhamento pode ter nenhuma, uma ou muitas permissões.
    • runPKGMGR_FileServer: executa a ferramenta de comando "pkgmgt.exe" para instalar a função de Servidor de Arquivos. O script usa o arquivo "unattended.xml" como parâmetro de entrada. Ele especifica os módulos a serem instalados.

    • DirectoryQuota.PS1: define a cota de diretório, confira Cotas de Diretório.

    • Folder_Shares_Permissions.PS1: define as permissões da pasta de acordo com a especificação no arquivo de entrada "SharePermissions.XML". Confira Permissões de Compartilhamento e NTFS.

Provisionamento e Gerenciamento

  1. O Exemplo de Provisionamento no C# é um conjunto de exemplos do C# para executar várias tarefas comuns de provisionamento. Confira os detalhes no artigo Exemplo de Provisionamento no C#.

  2. O Exemplo de Serviços de Hospedagem é um extenso exemplo de código do C# para provisionamento de sites, contas de usuário, banco de dados SQL e outros. Confira os detalhes no artigo Exemplo de Código dos Serviços de Hospedagem.

  3. Os Exemplos de Código e Scripts fornecem trechos de código de exemplo para criar Sites e Tarefas de Configuração do IIS 7.0.

  4. [Scripts do PowerShell para Provisionamento de Sites do IIS] https://www.iis.net/community/files/hosting/ProvisioningScripts ( 4-7-2008.zip "Scripts do PowerShell dos Sites do IIS"). Estes são seis Scripts do PowerShell para ajudar você a automatizar o provisionamento de AppPools, Sites, Aplicativos, Diretórios Virtuais e Associações. Eles usam as interfaces de namespace de código gerenciado Microsoft.Web.Administration para provisionar esses objetos. Veja abaixo um exemplo de cada um deles:

    4.1. Para criar qualquer número de AppPools, Sites, Aplicativos, Diretórios Virtuais e Associações organizados de acordo com um arquivo de dados de configuração, use Sample_AppPool_Site_AppCreation. Esse script chama todos os outros para criar cada objeto de acordo com os dados de configuração encontrados no arquivo XML ProvisioningConfig.xml.

    Exemplo:

    Sample_AppPool_Site_AppCreation
    

    Exemplo de um arquivo XML ProvisioningConfig.xml:

    <Script>
    <ApplicationPool>
    <Site Name="DAP1Site2" PhysicalPath="C:\Content\DAP1Site2">
    
    <Application PhysicalPath="C:\Content\DAP1Site2\App1" RelativePath="/App1">
    <VirtualDirectory PhysicalPath="C:\Content\Logs" RelativePath="/App1/VDir"/>
    </Application>
    
    <Application PhysicalPath="C:\Content\DAP1Site2\App2" RelativePath="/App2">
    </Application>
    
    <Binding Port="80" BindingInfo="www.DAP1Site2.com" Protocol="http"/>
    
    <Folder name="C:\Content\DAP1Site2" quota="50mb"> 
    <Permission>
    <User>Administrators</User>
    <Capability>F</Capability>
    </Permission>
    </Folder>
    
    </Site>
    </ApplicationPool>
    </Script>
    

    4.2. Para criar AppPools, use CreateIISAppPool PoolName, nome de usuário, senha. Se você não fornecer o nome de usuário e a senha, ele usará o usuário atual.

    Exemplo:

    CreateIISAppPool "DemoAppPool1" "" ""
    

    4.3. Para criar um Site, use CreateIISSite, SiteName, PhysicalPath, PoolName, ID.

    Exemplo:

    CreateIISSite "DAP1Site1" "C:\Content\DAP1Site1" "DemoAppPool1" 1702121
    

    4.4. Para criar um Aplicativo em um site, use CreateIISApplicationOntoSite, PhysicalPath, RelativePath, SiteName, PoolName.

    Exemplo:

    CreateIISApplicationOntoSite "C:\Content\DAP1Site1\App1" "/App1" "DAP1Site1" "DemoAppPool1"
    

    4.5. Para criar um Diretório Virtual para um aplicativo, use CreateIISVDirOntoApplication ApplicationPhysicalPath, PhysicalPath, SiteName, RelativePath.

    Exemplo:

    CreateIISVDirOntoApplication "C:\Content\Logs" "/App1/VDir" "DAP1Site1" "/App1"
    

    4.6. Para criar uma Associação para um Site, use CreateIISBindingOntoSite SiteName Port BindingInfo Protocol.

    Exemplo:

    CreateIISBindingOntoSite "DAP1Site1" 80 "www.DAP1Site2.com" "http"