C# 和 PowerShell 脚本示例

本文汇总了整个托管指南中提到的 PowerShell 和 C# 示例脚本。 它们可用于部署、配置、迁移和预配任务。

作者:Walter Oliver

部署脚本 -共享托管

  1. Web 服务器

    这些 PowerShell 脚本有助于部署和配置 Web 服务器。 请注意,这些脚本是使用 PS 2.0 编写和测试的:

    • runPKGMGT_IIS.PS1:运行“pkgmgt.exe”命令工具,使用建议的共享托管模块安装 IIS 7.0。请参阅安装 Web 服务器角色

      • 该脚本使用“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" 进行添加,或者设置 activity="REMOVE" 进行删除。
    • Enable32bitModeWorkerProcess.PS1:在 64 位计算机中启用 32 位模式工作进程

    • 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:运行所有脚本来安装和配置文件服务器角色。

      • 文件:使用示例设置填充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. [IIS 站点预配 PowerShell 脚本](https://www.iis.net/community/files/hosting/ProvisioningScripts 4-7-2008.zip "IIS 站点 PowerShell 脚本")。 下面是 6 个 PowerShell 脚本,可帮助你自动预配引用池、站点、应用程序、虚拟目录和绑定。 它们使用 Microsoft.Web.Administration 托管代码命名空间接口来预配这些对象。 下面是其中每个接口的示例:

    4.1. 若要根据配置数据文件创建任意数量的应用池、站点、应用程序、虚拟目录和绑定,请使用Sample_AppPool_Site_AppCreation。 此脚本调用所有其他对象,以根据ProvisioningConfig.xml XML 文件中找到的配置数据创建每个对象。

    示例:

    Sample_AppPool_Site_AppCreation
    

    ProvisioningConfig.xml 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。 若要创建应用池,请使用 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 Protocol。

    示例:

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