Поделиться через


Примеры сценариев C# и PowerShell

В этой статье содержится сводка по скриптам PowerShell и C#, упомянутым в Руководстве по хостингу. Их можно использовать для задач развертывания, конфигурации, миграции и подготовки.

Уолтер Оливер

Скрипты развертывания - Общий хостинг

  1. Веб-сервер

    Эти скрипты PowerShell помогут развернуть и настроить веб-сервер. Обратите внимание, что эти скрипты были написаны и протестированы с помощью PS 2.0:

    • runPKGMGT_IIS.PS1: запускает средство командной строки pkgmgt.exe для установки IIS 7.0 с рекомендуемыми модулями для общего размещения, см. раздел «Установка роли веб-сервера».

      • Скрипт использует файл "unattended.xml" в качестве входных данных конфигурации, он указывает модули IIS для установки.
      • Обязательный: Unattend.xml требует, чтобы номер версии был задан для текущей версии Windows, т. е. version="6.0.6000.16386". Это можно найти, щелкнув C:\Windows\RegEdit.exe правой кнопкой мыши и выбрав вкладку сведений. PkgMgr требует этого параметра, чтобы он смог правильно установить все необходимые компоненты.
    • Install_IISSharedHosting.PS1: выполняет все скрипты конфигурации в соответствии с рекомендациями по общему размещению, см. инструкции по настройке IIS 7.0 для общего размещения.

      • Скрипт использует файл IISSettings.xml в качестве входных данных конфигурации. Он содержит параметры для динамического сжатия и порога простоя
      • Настройка файла по умолчанию для сервера задается в файле Default_File_Config.xml. Он содержит список всех файлов по умолчанию, которые нужно добавить или удалить. Создайте столько записей, сколько вы хотите. Установите activity="ADD" для добавления или "REMOVE" для удаления.
    • Enable32bitModeWorkerProcess.PS1: включает рабочие процессы в 32-битном режиме на 64-разрядных машинах.

    • AppPoolIdentAsAnonymousUser.PS1: устанавливает идентификатор пула приложений как анонимного пользователя.

    • AddRemoveDefaultDoc.PS1: добавляет или удаляет документы по умолчанию на основе спецификации входного файла Default_Files_Config.XML.

    • ConfigureDynamicIdleThreshold.PS1: задает свойство конфигурации dynamicIdleThreshold .

    • ConfigureDynamicCompression.PS1: задает свойства динамического сжатия .

    • HTTPResponseCache.PS1: отображает кэш ответа HTTP.

    • В ближайшее время: настройка ASP.NET среднего доверия.

  2. Файловый сервер

    Эти скрипты PowerShell помогут развернуть и настроить файловый сервер. Обратите внимание, что эти скрипты были написаны и протестированы с помощью PS 2.0:

    • InstallFileServer.PS1: запускает все скрипты для установки и настройки роли FileServer.

      • Файлы: FolderPermissions.xml, SharePermissions.xml, DirectoryQuotas_Settings.xml заполнены примерами параметров. каждое из них должно быть настроено перед развертыванием, так как эти параметры зависят от развертывания.
      • DirectoryQuotas_Settings.xml. Позволяет определить максимальное количество квот папок.
      • FolderPermissions.xml. Позволяет определить столько папок, сколько необходимо, и каждая папка может иметь 0, 1 или много разрешений.
      • SharePermissions.xml. Позволяет определить необходимое количество общих ресурсов (если новая папка не соответствует существующей, возникнет ошибка). У каждой акции может быть 0, 1 или много разрешений.
    • runPKGMGR_FileServer: запускает средство командыpkgmgt.exeдля установки роли файлового сервера. Скрипт использует файл "unattended.xml" в качестве входного параметра, он указывает модули для установки.

    • DirectoryQuota.PS1: задает квоту каталога, см. раздел "Квоты каталогов".

    • Folder_Shares_Permissions.PS1: задает разрешения папки в соответствии со спецификацией входного файла SharePermissions.XML. Ознакомьтесь с разрешениями на общий доступ и NTFS.

Подготовка и управление

  1. Образец настройки в C# — это набор примеров C# для выполнения нескольких распространенных задач настройки. Подробнее см. в статье Образец настройки в C#.

  2. Пример служб размещения — это обширный пример кода C# для подготовки сайтов, учетных записей пользователей, базы данных SQL и других. Дополнительные сведения см. в статье с примером кода служб размещения .

  3. Примеры кода и скрипты предоставляют примеры фрагментов кода для создания задач сайтов и конфигурации IIS 7.0.

  4. Скрипты PowerShell для развертывания сайтов IIS. Это шесть сценариев PowerShell, которые предназначены для автоматизации подготовки пулов приложений, сайтов, приложений, виртуальных каталогов и связей. Они используют интерфейсы управляемого пространства имен кода Microsoft.Web.Administration для подготовки этих объектов. Ниже приведен пример для каждого из них:

    4.1. Чтобы создать любое количество приложений, сайтов, приложений, виртуальных каталогов и привязок, расположенных в соответствии с файлом данных конфигурации , используйте Sample_AppPool_Site_AppCreation. Этот скрипт вызывает все остальные для создания каждого объекта в соответствии с данными конфигурации, найденными в XML-файле ProvisioningConfig.xml.

    Пример:

    Sample_AppPool_Site_AppCreation
    

    Пример 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. Чтобы создать AppPools , используйте пароль имени пользователя CreateIISAppPool PoolName. Если вы не указали имя пользователя и пароль, он будет использовать текущего пользователя.

    Пример:

    CreateIISAppPool "DemoAppPool1" "" ""
    

    4.3. Чтобы создать сайт используйте CreateIISSite SiteName PhysicalPath PoolName ID.

    Пример:

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

    4.4. Чтобы создать приложение на сайте, используйте CreateIISApplicationOntoSite PhysicalPath RelativePath SiteName PoolName.

    Пример:

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

    4.5. Чтобы создать виртуальный каталог для приложения, используйте CreateIISVDirOntoApplication ApplicationPhysicalPath PhysicalPath SiteName RelativePath.

    Пример:

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

    4.6. Чтобы создать привязку для сайта , используйте протокол CreateIISBindingOntoSite SiteName Port BindingInfo.

    Пример:

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