You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PowerShell配置IIS服务器级Machine Key?

用PowerShell配置IIS服务器级Machine Key的方法

核心原理

服务器级Machine Key配置存储在IIS根配置文件%windir%\System32\inetsrv\config\applicationHost.config中,配置完成后会被所有站点自动继承,要实现多服务器密钥一致,只需在每台服务器执行相同脚本即可。

方法一:通过WebAdministration模块操作(推荐)

该模块是IIS管理的官方PowerShell模块,操作更直观:

  1. 导入模块
Import-Module WebAdministration
  1. 设置服务器级Machine Key(替换示例中的密钥值和算法)
# 设置验证密钥
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' `
  -filter "system.web/machineKey" `
  -name "validationKey" `
  -value "YOUR_VALIDATION_KEY_HERE"

# 设置解密密钥
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' `
  -filter "system.web/machineKey" `
  -name "decryptionKey" `
  -value "YOUR_DECRYPTION_KEY_HERE"

# 设置验证算法(如SHA1、HMACSHA256等)
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' `
  -filter "system.web/machineKey" `
  -name "validation" `
  -value "SHA1"

# 设置解密算法(如AES、3DES等)
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' `
  -filter "system.web/machineKey" `
  -name "decryption" `
  -value "AES"
  1. 验证配置结果
Get-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' `
  -filter "system.web/machineKey" `
  -name "validationKey,decryptionKey,validation,decryption"

方法二:使用AppCmd.exe(兼容旧版IIS)

若服务器未安装WebAdministration模块,可直接调用IIS自带的AppCmd工具:

& "$env:windir\system32\inetsrv\appcmd.exe" set config -section:system.web/machineKey `
  /validationKey:"YOUR_VALIDATION_KEY_HERE" `
  /decryptionKey:"YOUR_DECRYPTION_KEY_HERE" `
  /validation:SHA1 `
  /decryption:AES

注意事项

  • 强密钥可通过PowerShell生成,比如生成64字节验证密钥:[System.Web.Security.MachineKey]::GenerateKey(64)
  • 修改配置后无需重启IIS,设置会立即生效
  • 多服务器部署时,确保所有服务器执行完全相同的脚本,密钥值和算法必须完全一致

内容的提问来源于stack exchange,提问作者Denis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 16:04:54