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
|
-
appcmd.exe: IIS 命令行管理工具,用于管理 IIS 的配置和状态。
-
aspnetca.exe: ASP.NET 配置工具,用于管理 ASP.NET 应用程序的配置。
-
bitsiissetup.exe: 用于安装 BITS 扩展的辅助程序,BITS 是一种用于在后台传输数据的技术。
-
iisrstas.exe: IIS 管理器启动应用程序,用于启动 IIS 管理工具。
-
iissetup.exe: IIS 安装程序,用于安装和配置 IIS。
-
iisual.exe: IIS 用户界面辅助程序,可能用于特定的管理任务或界面操作。
-
inetinfo.exe: 早期版本的 IIS 中的主要进程,负责处理 HTTP 请求等。
-
InetMgr.exe: Internet Information Services (IIS) 管理器,用于管理 IIS 的配置和功能。
-
w3wp.exe: IIS 工作进程,处理 Web 请求并执行 ASP.NET 应用程序中的代码。
-
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 管理命令:
- 安装 IIS 功能:
Install-WindowsFeature -Name Web-Server
- 启动/停止/重启 IIS 服务:
Start-Service -Name W3SVC
Stop-Service -Name W3SVC
Restart-Service -Name W3SVC
- 创建/删除网站:
New-Website -Name "MyWebsite" -Port 80 -PhysicalPath "C:\Path\To\Website"
Remove-Website -Name "MyWebsite"
- 添加/移除网站绑定:
New-WebBinding -Name "MyWebsite" -IPAddress "*" -Port 80 -HostHeader "www.example.com"
Remove-WebBinding -Name "MyWebsite" -IPAddress "*" -Port 80 -HostHeader "www.example.com"
- 添加/删除虚拟目录:
New-WebVirtualDirectory -Site "MyWebsite" -Name "MyVDir" -PhysicalPath "C:\Path\To\VirtualDirectory"
Remove-WebVirtualDirectory -Site "MyWebsite" -Name "MyVDir"
- 查看网站列表:
Get-Website
- 启用/禁用网站:
Enable-Website -Name "MyWebsite"
Disable-Website -Name "MyWebsite"
这些是一些常用的 PowerShell 命令,您可以根据需要进行自定义和扩展。
|
- 查看应用程序池列表:
Get-ChildItem IIS:\AppPools\
- 创建/删除应用程序池:
New-WebAppPool -Name "MyAppPool"
Remove-WebAppPool -Name "MyAppPool"
- 设置应用程序池属性:
Set-ItemProperty IIS:\AppPools\MyAppPool -Name "managedRuntimeVersion" -Value "v4.0"
- 查看网站日志:
Get-EventLog -LogName "System" -Source "Microsoft-Windows-IIS-Logging" | ?{$_.TimeGenerated -gt (Get-Date).AddDays(-1)}
- 启用/禁用网站日志:
Set-WebConfigurationProperty -Filter "/system.applicationHost/sites/site[@name='MyWebsite']/logfile" -Name "enabled" -Value "True"
- 查看 IIS 版本:
Get-ItemProperty HKLM:\SOFTWARE\Microsoft\InetStp\ | Select-Object setupstring
- 查看 IIS 配置信息:
Get-WebConfiguration -Filter /system.webServer/security/authentication/anonymousAuthentication
|
- 查看网站绑定信息:
Get-WebBinding -Name "MyWebsite"
- 查看网站 SSL 证书信息:
Get-WebBinding -Name "MyWebsite" | Select-Object -ExpandProperty sslFlags
- 配置网站 SSL 证书:
$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
- 查看网站的 MIME 映射:
Get-WebConfiguration -Filter "/system.webServer/staticContent/mimeMap" | Select-Object -Property fileExtension, mimeType
- 添加/删除 MIME 映射:
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'}
- 查看当前连接到 IIS 的用户信息:
Get-NetTCPConnection -LocalPort 80 | Where-Object {$_.OwningProcess -in (Get-Process -Name 'w3wp').Id} | Select-Object -Property RemoteAddress, State
|
- 查看当前 IIS 网站的状态:
Get-Website | Select-Object -Property Name, State
- 暂停/启动/停止特定网站:
Stop-Website -Name "MyWebsite"
Start-Website -Name "MyWebsite"
Suspend-Website -Name "MyWebsite"
- 设置网站应用程序池:
Set-ItemProperty IIS:\Sites\MyWebsite -Name "applicationPool" -Value "MyAppPool"
- 设置网站绑定:
New-WebBinding -Name "MyWebsite" -IPAddress "*" -Port 80 -HostHeader "www.example.com"
- 设置默认文档:
Set-WebConfigurationProperty -Filter "/system.webServer/defaultDocument/files/add[@value='default.aspx']" -Name "enabled" -Value "True"
- 查看 IIS 服务器的 CPU 和内存使用情况:
Get-Counter '\Process(w3wp)\% Processor Time' -SampleInterval 1 -MaxSamples 10
Get-Counter '\Process(w3wp)\Private Bytes' -SampleInterval 1 -MaxSamples 10
- 配置应用程序池的身份验证信息:
Set-ItemProperty IIS:\AppPools\MyAppPool -Name "processModel.identityType" -Value "NetworkService"
|
- 查看当前正在运行的应用程序池:
Get-ChildItem IIS:\AppPools | Select-Object -Property Name, State
- 创建新的应用程序池:
New-WebAppPool -Name "NewAppPool"
- 删除应用程序池:
Remove-WebAppPool -Name "OldAppPool"
- 设置应用程序池的.NET CLR 版本:
Set-ItemProperty IIS:\AppPools\MyAppPool -Name "managedRuntimeVersion" -Value "v4.0"
- 设置应用程序池的 CPU 限制:
Set-ItemProperty IIS:\AppPools\MyAppPool -Name "cpu.limit" -Value "50000"
- 启用/禁用 IIS 网站日志记录:
Set-WebConfigurationProperty -Filter "/system.applicationHost/sites/siteDefaults/logFile" -Name "logFormat" -Value "W3C"
Set-WebConfigurationProperty -Filter "/system.applicationHost/sites/siteDefaults/logFile" -Name "enabled" -Value "True"
- 配置 IIS 站点的身份验证:
Set-WebConfigurationProperty -Filter "/system.webServer/security/authentication/anonymousAuthentication" -Name "enabled" -Value "False"
|
- 查看当前 IIS 中安装的所有模块:
Get-Module -ListAvailable | Where-Object {$_.Name -like "*IIS*"}
- 启用/禁用特定的 IIS 模块:
Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerRole
Disable-WindowsOptionalFeature -Online -FeatureName IIS-FTPService
- 设置默认文档(另一种方式):
Set-WebConfigurationProperty -Filter "/system.webServer/defaultDocument/files/add[@value='index.html']" -Name "enabled" -Value "True"
- 配置 SSL 绑定:
New-Item 'IIS:\SslBindings\0.0.0.0!443' -Value 'www.example.com'
- 配置 IIS 请求筛选器:
Add-WebConfiguration -Filter "/system.webServer/security/requestFiltering/filteringRules" -Value (@{name='BlockDotDot';sequence=0;denyUrlSequences=@{add='..'}})
- 设置 IIS 请求限制:
Set-WebConfigurationProperty -Filter "/system.webServer/security/requestFiltering/requestLimits" -Name "maxAllowedContentLength" -Value "104857600"
|
- 查看当前 IIS 站点的绑定信息:
Get-WebBinding -Port 80
- 查看特定网站的详细信息:
Get-Website -Name "MyWebsite" | Select-Object *
- 启用/禁用特定网站:
Enable-Website -Name "MyWebsite"
Disable-Website -Name "MyWebsite"
- 设置 IIS 网站的默认文档(另一种方式):
Set-WebConfigurationProperty -Filter "/system.webServer/defaultDocument/files" -Name "value" -Value @{add="index.html"}
- 查看当前正在运行的 IIS 进程:
Get-Process -Name "w3wp"
- 重启特定网站的应用程序池:
Restart-WebAppPool -Name "MyAppPool"
|
- 查看当前 IIS 网站的日志文件路径:
Get-WebConfigurationProperty -Filter "/system.applicationHost/sites/siteDefaults/logFile" -Name "directory"
- 设置特定网站的物理路径:
Set-WebConfigurationProperty -Filter "/system.applicationHost/sites/site[@name='MyWebsite']/application[@path='/']/virtualDirectory[@path='/']/physicalPath" -Name "value" -Value "C:\inetpub\wwwroot\MyWebsite"
- 查看当前正在运行的 IIS 应用程序:
Get-WebApplication
- 查看当前 IIS 网站的 MIME 类型:
Get-WebConfiguration -Filter "/system.webServer/staticContent/mimeMap" | Select-Object -ExpandProperty Collection
- 设置 IIS 网站的 MIME 类型:
Add-WebConfiguration -Filter "/system.webServer/staticContent" -Value @{fileExtension='.webp';mimeType='image/webp'}
- 配置 IIS 站点的 HTTP 压缩:
Set-WebConfigurationProperty -Filter "/system.webServer/httpCompression" -Name "noCompressionForHttp10" -Value $false
Set-WebConfigurationProperty -Filter "/system.webServer/httpCompression" -Name "noCompressionForProxies" -Value $false
|
- 查看当前 IIS 应用程序池的列表:
Get-WebAppPoolState
- 查看特定应用程序池的详细信息:
Get-WebAppPoolState -Name "MyAppPool"
- 创建新的 IIS 应用程序池:
New-WebAppPool -Name "NewAppPool"
- 删除特定的应用程序池:
Remove-WebAppPool -Name "OldAppPool"
- 设置应用程序池的 .NET 版本:
Set-ItemProperty "IIS:\AppPools\MyAppPool" managedRuntimeVersion v4.0
- 配置 IIS 站点的身份验证方式:
Set-WebConfigurationProperty -Filter "/system.webServer/security/authentication/anonymousAuthentication" -Name "enabled" -Value $true
- 查看当前 IIS 的全局模块列表:
Get-WebGlobalModule
- 启用/禁用特定的全局模块:
Enable-WebGlobalModule -Name "MyModule"
Disable-WebGlobalModule -Name "MyModule"
|