gpt4 book ai didi

powershell - 如何在 PowerShell 中运行 appCmd 以将自定义 header 添加到默认网站

转载 作者:行者123 更新时间:2023-12-04 00:21:54 25 4
gpt4 key购买 nike

请帮助我弄清楚如何正确转义参数,以便它们在 powershell 中调用 appcmd 时工作。

我的脚本如下所示:

$defaultWebSite = "Default Web Site"
$appCmd = "C:\windows\system32\inetsrv\appcmd.exe"
$addHeaderP3P = "set config ""$defaultWebSite"" -section:system.webServer/httpProtocol /+""customHeaders.[name='P3P',value='policyRef=`\`"/w3c/p3p.xml`\`",CP=`\`"DSP COR NID OUR COM PRE`\`"']`""

Write-Output "Here's the argument string: " $addHeaderP3P



Write-Output "`nInvoke Result:"
Invoke-Expression "$appCmd $addHeaderP3P"


Write-Output "`n& Result:"
& $appCmd --%"$addHeaderP3P"

在 powershell_ise 中运行时的输出是这样的:
PS C:\Users\robert.bratton> D:\Junk\p3pheader.ps1
Here's the argument string:
set config "Default Web Site" -section:system.webServer/httpProtocol /+"customHeaders.[name='P3P',value='policyRef=\"/w3c/p3p.xml\",CP=\"DSP COR NID OUR COM PRE\"']"

Invoke Result:
Failed to process input: The parameter 'COR' must begin with a / or - (HRESULT=80070057).


& Result:
Failed to process input: The parameter 'NID' must begin with a / or - (HRESULT=80070057).

这从命令行工作
"C:\windows\system32\inetsrv\appcmd.exe" set config "Default Web Site" -section:system.webServer/httpProtocol /+"customHeaders.[name='P3P',value='policyRef=\"/w3c/p3p.xml\",CP=\"DSP COR NID OUR COM PRE\"']"

谢谢你的帮助!

最佳答案

像这样尝试:

$env:defaultWebSite = "Default Web Site"
$appCmd = "C:\windows\system32\inetsrv\appcmd.exe"

& $appCmd --% set config "%defaultWebSite%" -section:system.webServer/httpProtocol /+customHeaders.[name='P3P',value='policyRef="/w3c/p3p.xml",CP="DSP COR NID OUR COM PRE"']

如果在 --% 之后使用任何变量必须是环境变量。

关于powershell - 如何在 PowerShell 中运行 appCmd 以将自定义 header 添加到默认网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21584390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com