Windows server 2022中IIS 10 系统自带 appcmd 程序 和命令行 ,实现自动化 一键部署操作

c:\Windows\System32\inetsrv>appcmd

General purpose IIS command line administration tool.

APPCMD (command) (object-type) <identifier> </parameter1:value1 ...>

Supported object types:

  SITE      Administration of virtual sites
  APP       Administration of applications
  VDIR      Administration of virtual directories
  APPPOOL   Administration of application pools
  CONFIG    Administration of general configuration sections
  WP        Administration of worker processes
  REQUEST   Administration of HTTP requests
  MODULE    Administration of server modules
  BACKUP    Administration of server configuration backups
  TRACE     Working with failed request trace logs
  BINDING   Object for working with SSL bindings

(To list commands supported by each object use /?, e.g. 'appcmd.exe site /?')

General parameters:

/?               Display context-sensitive help message.

/text<:value>    Generate output in text format (default).
                 /text:* shows all object properties in detail view.
                 /text:<attribute> shows the value of the specified
                 attribute for each object.
/xml             Generate output in XML format.
                 Use this to produce output that can be sent to another
                 command running in /in mode.
/in or -         Read and operate on XML input from standard input.
                 Use this to operate on input produced by another
                 command running in /xml mode.
/config<:*>      Show configuration for displayed objects.
                 /config:* also includes inherited configuration.
/metadata        Show configuration metadata when displaying configuration.

/commit          Set config path where configuration changes are saved.
                 Can specify either a specific configuration path, "site",
                 "app", "parent", or "url" to save to the appropriate portion
                 of the path being edited by the command, "apphost", "webroot",
                 or "machine" for the corresponding configuration level.
/apphostconfig   Specify an alternate applicationHost.config file to edit.
/debug           Show debugging information for command execution.

Use "!" to escape parameters that have same names as the general parameters,
like "/!debug:value" to set a config property named "debug".

通用的IIS命令行管理工具。

APPCMD (命令) (对象类型) <标识符> </参数1:值1 ...>

支持的对象类型:

SITE      虚拟站点的管理
  APP       应用程序的管理
  VDIR      虚拟目录的管理
  APPPOOL   应用程序池的管理
  CONFIG    一般配置部分的管理
  WP        工作进程的管理
  REQUEST   HTTP请求的管理
  MODULE    服务器模块的管理
  BACKUP    服务器配置备份的管理
  TRACE     处理失败请求跟踪日志
  BINDING   用于处理SSL绑定的对象

(要列出每个对象支持的命令,请使用 /?,例如 'appcmd.exe site /?')

通用参数:

/?               显示上下文敏感的帮助消息。

/text<:value>    以文本格式生成输出(默认)。
                 /text:* 显示详细视图中的所有对象属性。
                 /text:<attribute> 显示每个对象的指定属性的值。
/xml             以XML格式生成输出。
                 使用此选项生成可发送到另一个运行在 /in 模式下的命令的输出。
/in 或 -         从标准输入读取并操作XML输入。
                 使用此选项处理由另一个运行在 /xml 模式下的命令生成的输入。
/config<:>      显示所显示对象的配置。
                 /config: 还包括继承的配置。
/metadata        在显示配置时显示配置元数据。

/commit          设置保存配置更改的配置路径。
                 可以指定特定的配置路径,“site”、“app”、“parent”或“url”以保存到命令正在编辑的路径的适当部分,“apphost”、“webroot”或“machine”对应于相应的配置级别。
/apphostconfig   指定要编辑的替代applicationHost.config文件。
/debug           显示命令执行的调试信息。

使用 "!" 转义具有与通用参数相同名称的参数,例如 "/!debug:value" 以设置名为 "debug" 的配置属性。

 


c:\Windows\System32\inetsrv>dir *.exe

 Volume in drive C has no label.
 Volume Serial Number is

 Directory of c:\Windows\System32\inetsrv

           143,360 appcmd.exe
          155,648 aspnetca.exe
          77,824 bitsiissetup.exe
         57,344 iisrstas.exe
         217,088 iissetup.exe
         14,848 iisual.exe
        36,864 inetinfo.exe
        143,360 InetMgr.exe
          45,056 w3wp.exe
       32,768 WMSvc.exe
              10 File(s)        924,160 bytes
               0 Dir(s)  337,931,825,152 bytes free

  1. appcmd.exe: IIS 命令行管理工具,用于管理 IIS 的配置和状态。

  2. aspnetca.exe: ASP.NET 配置工具,用于管理 ASP.NET 应用程序的配置。

  3. bitsiissetup.exe: 用于安装 BITS 扩展的辅助程序,BITS 是一种用于在后台传输数据的技术。

  4. iisrstas.exe: IIS 管理器启动应用程序,用于启动 IIS 管理工具。

  5. iissetup.exe: IIS 安装程序,用于安装和配置 IIS。

  6. iisual.exe: IIS 用户界面辅助程序,可能用于特定的管理任务或界面操作。

  7. inetinfo.exe: 早期版本的 IIS 中的主要进程,负责处理 HTTP 请求等。

  8. InetMgr.exe: Internet Information Services (IIS) 管理器,用于管理 IIS 的配置和功能。

  9. w3wp.exe: IIS 工作进程,处理 Web 请求并执行 ASP.NET 应用程序中的代码。

  10. WMSvc.exe: IIS Web 管理服务,允许远程管理 IIS 服务器。


c:\Windows\System32\inetsrv>w3wp /?

Usage: w3wp -s <site id> | -h [application host file]
                           -w <optional root web.config file>
                           -in <optional instance name>

        -u
                 This option launches a worker process using the default
                 application host config file.  By default, it will use
                 site id 1.

        -s <site id>
                 Optional parameter to use a siteinformation from the provided
                 site id.

        or

        -h [Application host config filename]
                 Launches a worker process using the specified application host
                 config file.

        -in <Instance Name>
                 Optional instance name to use.  Defaults to 'HWC-<PID>'

        -w <Root web config filename>
                 Optional root web config file to use.

        -tt <Shutdown timeout in seconds>
                 Optional parameter for graceful shutdown when user launched w3wp.exe directly, default 30s.
                 Graceful shutdown will only be triggered by ctrl+break signal

        -g  <Enable locale>
                 Optional parameter for enabling locale to use user's setting on language,
                 environ

用法:w3wp -s <站点ID> | -h [应用程序宿主文件]                           -w <可选的根web.config文件>                           -in <可选的实例名称>

-u                  此选项使用默认的应用程序宿主配置文件启动工作进程。默认情况下,它将使用站点ID 1。

-s <站点ID>                  使用提供的站点ID中的站点信息的可选参数。

或者

-h [应用程序宿主配置文件名]                  使用指定的应用程序宿主配置文件启动工作进程。

-in <实例名称>                  要使用的可选实例名称。默认为'HWC-<PID>'

-w <根web配置文件名>                  要使用的可选根web配置文件。

-tt <关闭超时(秒)>                  用户直接启动w3wp.exe时的优雅关闭的可选参数,默认为30秒。                  优雅关闭仅在通过ctrl+break信号触发时生效。

-g  <启用区域设置>                  启用区域设置以使用用户设置的语言环境的可选参数。


Windows Server 中,您可以使用 PowerShell 来管理 IIS10。以下是一些常用的 PowerShell 管理命令:

  1. 安装 IIS 功能
powershellCopy Code
Install-WindowsFeature -Name Web-Server
  1. 启动/停止/重启 IIS 服务
powershellCopy Code
Start-Service -Name W3SVC
Stop-Service -Name W3SVC
Restart-Service -Name W3SVC
  1. 创建/删除网站
powershellCopy Code
New-Website -Name "MyWebsite" -Port 80 -PhysicalPath "C:\Path\To\Website"
Remove-Website -Name "MyWebsite"
  1. 添加/移除网站绑定
powershellCopy Code
New-WebBinding -Name "MyWebsite" -IPAddress "*" -Port 80 -HostHeader "www.example.com"
Remove-WebBinding -Name "MyWebsite" -IPAddress "*" -Port 80 -HostHeader "www.example.com"
  1. 添加/删除虚拟目录
powershellCopy Code
New-WebVirtualDirectory -Site "MyWebsite" -Name "MyVDir" -PhysicalPath "C:\Path\To\VirtualDirectory"
Remove-WebVirtualDirectory -Site "MyWebsite" -Name "MyVDir"
  1. 查看网站列表
powershellCopy Code
Get-Website
  1. 启用/禁用网站
powershellCopy Code
Enable-Website -Name "MyWebsite"
Disable-Website -Name "MyWebsite"

这些是一些常用的 PowerShell 命令,您可以根据需要进行自定义和扩展。

  1. 查看应用程序池列表
powershellCopy Code
Get-ChildItem IIS:\AppPools\
  1. 创建/删除应用程序池
powershellCopy Code
New-WebAppPool -Name "MyAppPool"
Remove-WebAppPool -Name "MyAppPool"
  1. 设置应用程序池属性
powershellCopy Code
Set-ItemProperty IIS:\AppPools\MyAppPool -Name "managedRuntimeVersion" -Value "v4.0"
  1. 查看网站日志
powershellCopy Code
Get-EventLog -LogName "System" -Source "Microsoft-Windows-IIS-Logging" | ?{$_.TimeGenerated -gt (Get-Date).AddDays(-1)}
  1. 启用/禁用网站日志
powershellCopy Code
Set-WebConfigurationProperty -Filter "/system.applicationHost/sites/site[@name='MyWebsite']/logfile" -Name "enabled" -Value "True"
  1. 查看 IIS 版本
powershellCopy Code
Get-ItemProperty HKLM:\SOFTWARE\Microsoft\InetStp\ | Select-Object setupstring
  1. 查看 IIS 配置信息
powershellCopy Code
Get-WebConfiguration -Filter /system.webServer/security/authentication/anonymousAuthentication
  1. 查看网站绑定信息
powershellCopy Code
Get-WebBinding -Name "MyWebsite"
  1. 查看网站 SSL 证书信息
powershellCopy Code
Get-WebBinding -Name "MyWebsite" | Select-Object -ExpandProperty sslFlags
  1. 配置网站 SSL 证书
powershellCopy Code
$cert = Get-ChildItem Cert:\LocalMachine\My | Where-Object {$_.Subject -eq "CN=www.example.com"}
New-Item -Path "IIS:\SslBindings\0.0.0.0!443" -Value $cert
  1. 查看网站的 MIME 映射
powershellCopy Code
Get-WebConfiguration -Filter "/system.webServer/staticContent/mimeMap" | Select-Object -Property fileExtension, mimeType
  1. 添加/删除 MIME 映射
powershellCopy Code
Add-WebConfiguration -Filter "/system.webServer/staticContent" -Value @{fileExtension='.json';mimeType='application/json'}
Remove-WebConfiguration -Filter "/system.webServer/staticContent" -PSPath "IIS:\Sites\MyWebsite" -Location "." -Filter @{fileExtension='.json'}
  1. 查看当前连接到 IIS 的用户信息
powershellCopy Code
Get-NetTCPConnection -LocalPort 80 | Where-Object {$_.OwningProcess -in (Get-Process -Name 'w3wp').Id} | Select-Object -Property RemoteAddress, State
  1. 查看当前 IIS 网站的状态
powershellCopy Code
Get-Website | Select-Object -Property Name, State
  1. 暂停/启动/停止特定网站
powershellCopy Code
Stop-Website -Name "MyWebsite"
Start-Website -Name "MyWebsite"
Suspend-Website -Name "MyWebsite"
  1. 设置网站应用程序池
powershellCopy Code
Set-ItemProperty IIS:\Sites\MyWebsite -Name "applicationPool" -Value "MyAppPool"
  1. 设置网站绑定
powershellCopy Code
New-WebBinding -Name "MyWebsite" -IPAddress "*" -Port 80 -HostHeader "www.example.com"
  1. 设置默认文档
powershellCopy Code
Set-WebConfigurationProperty -Filter "/system.webServer/defaultDocument/files/add[@value='default.aspx']" -Name "enabled" -Value "True"
  1. 查看 IIS 服务器的 CPU 和内存使用情况
powershellCopy Code
Get-Counter '\Process(w3wp)\% Processor Time' -SampleInterval 1 -MaxSamples 10
Get-Counter '\Process(w3wp)\Private Bytes' -SampleInterval 1 -MaxSamples 10
  1. 配置应用程序池的身份验证信息
powershellCopy Code
Set-ItemProperty IIS:\AppPools\MyAppPool -Name "processModel.identityType" -Value "NetworkService"
  1. 查看当前正在运行的应用程序池
powershellCopy Code
Get-ChildItem IIS:\AppPools | Select-Object -Property Name, State
  1. 创建新的应用程序池
powershellCopy Code
New-WebAppPool -Name "NewAppPool"
  1. 删除应用程序池
powershellCopy Code
Remove-WebAppPool -Name "OldAppPool"
  1. 设置应用程序池的.NET CLR 版本
powershellCopy Code
Set-ItemProperty IIS:\AppPools\MyAppPool -Name "managedRuntimeVersion" -Value "v4.0"
  1. 设置应用程序池的 CPU 限制
powershellCopy Code
Set-ItemProperty IIS:\AppPools\MyAppPool -Name "cpu.limit" -Value "50000"
  1. 启用/禁用 IIS 网站日志记录
powershellCopy Code
Set-WebConfigurationProperty -Filter "/system.applicationHost/sites/siteDefaults/logFile" -Name "logFormat" -Value "W3C"
Set-WebConfigurationProperty -Filter "/system.applicationHost/sites/siteDefaults/logFile" -Name "enabled" -Value "True"
  1. 配置 IIS 站点的身份验证
powershellCopy Code
Set-WebConfigurationProperty -Filter "/system.webServer/security/authentication/anonymousAuthentication" -Name "enabled" -Value "False"
  1. 查看当前 IIS 中安装的所有模块
powershellCopy Code
Get-Module -ListAvailable | Where-Object {$_.Name -like "*IIS*"}
  1. 启用/禁用特定的 IIS 模块
powershellCopy Code
Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerRole
Disable-WindowsOptionalFeature -Online -FeatureName IIS-FTPService
  1. 设置默认文档(另一种方式):
powershellCopy Code
Set-WebConfigurationProperty -Filter "/system.webServer/defaultDocument/files/add[@value='index.html']" -Name "enabled" -Value "True"
  1. 配置 SSL 绑定
powershellCopy Code
New-Item 'IIS:\SslBindings\0.0.0.0!443' -Value 'www.example.com'
  1. 配置 IIS 请求筛选器
powershellCopy Code
Add-WebConfiguration -Filter "/system.webServer/security/requestFiltering/filteringRules" -Value (@{name='BlockDotDot';sequence=0;denyUrlSequences=@{add='..'}})
  1. 设置 IIS 请求限制
powershellCopy Code
Set-WebConfigurationProperty -Filter "/system.webServer/security/requestFiltering/requestLimits" -Name "maxAllowedContentLength" -Value "104857600"
  1. 查看当前 IIS 站点的绑定信息
powershellCopy Code
Get-WebBinding -Port 80
  1. 查看特定网站的详细信息
powershellCopy Code
Get-Website -Name "MyWebsite" | Select-Object *
  1. 启用/禁用特定网站
powershellCopy Code
Enable-Website -Name "MyWebsite"
Disable-Website -Name "MyWebsite"
  1. 设置 IIS 网站的默认文档(另一种方式):
powershellCopy Code
Set-WebConfigurationProperty -Filter "/system.webServer/defaultDocument/files" -Name "value" -Value @{add="index.html"}
  1. 查看当前正在运行的 IIS 进程
powershellCopy Code
Get-Process -Name "w3wp"
  1. 重启特定网站的应用程序池
powershellCopy Code
Restart-WebAppPool -Name "MyAppPool"
  1. 查看当前 IIS 网站的日志文件路径
powershellCopy Code
Get-WebConfigurationProperty -Filter "/system.applicationHost/sites/siteDefaults/logFile" -Name "directory"
  1. 设置特定网站的物理路径
powershellCopy Code
Set-WebConfigurationProperty -Filter "/system.applicationHost/sites/site[@name='MyWebsite']/application[@path='/']/virtualDirectory[@path='/']/physicalPath" -Name "value" -Value "C:\inetpub\wwwroot\MyWebsite"
  1. 查看当前正在运行的 IIS 应用程序
powershellCopy Code
Get-WebApplication
  1. 查看当前 IIS 网站的 MIME 类型
powershellCopy Code
Get-WebConfiguration -Filter "/system.webServer/staticContent/mimeMap" | Select-Object -ExpandProperty Collection
  1. 设置 IIS 网站的 MIME 类型
powershellCopy Code
Add-WebConfiguration -Filter "/system.webServer/staticContent" -Value @{fileExtension='.webp';mimeType='image/webp'}
  1. 配置 IIS 站点的 HTTP 压缩
powershellCopy Code
Set-WebConfigurationProperty -Filter "/system.webServer/httpCompression" -Name "noCompressionForHttp10" -Value $false
Set-WebConfigurationProperty -Filter "/system.webServer/httpCompression" -Name "noCompressionForProxies" -Value $false
  1. 查看当前 IIS 应用程序池的列表
powershellCopy Code
Get-WebAppPoolState
  1. 查看特定应用程序池的详细信息
powershellCopy Code
Get-WebAppPoolState -Name "MyAppPool"
  1. 创建新的 IIS 应用程序池
powershellCopy Code
New-WebAppPool -Name "NewAppPool"
  1. 删除特定的应用程序池
powershellCopy Code
Remove-WebAppPool -Name "OldAppPool"
  1. 设置应用程序池的 .NET 版本
powershellCopy Code
Set-ItemProperty "IIS:\AppPools\MyAppPool" managedRuntimeVersion v4.0
  1. 配置 IIS 站点的身份验证方式
powershellCopy Code
Set-WebConfigurationProperty -Filter "/system.webServer/security/authentication/anonymousAuthentication" -Name "enabled" -Value $true
  1. 查看当前 IIS 的全局模块列表
powershellCopy Code
Get-WebGlobalModule
  1. 启用/禁用特定的全局模块
powershellCopy Code
Enable-WebGlobalModule -Name "MyModule"
Disable-WebGlobalModule -Name "MyModule"
posted @ 2023-11-28 05:15  suv789  阅读(215)  评论(0编辑  收藏  举报