我试图使用Visual Studio生成后事件命令行在Powershell脚本中使用Web管理模块来部署少数IIS网站和应用程序池。当我在不使用Web管理模块的情况下运行脚本时,脚本会成功执行,但是如果包含脚本,则会出现拒绝访问错误。
我尝试了各种设置执行策略的方式,但是现在这就是我所拥有的(我尝试运行32位和64位版本的Powershell):
cd $(ProjectDir)
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -NoProfile -NonInteractive -File "SetupLocalEnvironment.ps1" 2> nul
在我的研究开始无成果的时候,需要一些帮助。谢谢!
这是powershell脚本:
Import-Module WebAdministration
$FNMAWorkSpaceDirectory = "x"
# Do not edit below
Remove-Website -Name EDI
Remove-Website -Name WebAPI
Remove-WebAppPool -Name EDIAppPool
Remove-WebAppPool -Name WebAPIAppPool
New-WebAppPool EDIAppPool
New-WebSite -Name EDI -Port 124 -PhysicalPath "thePath" -ApplicationPool "thePool"
New-WebBinding -Name "EDI" -Protocol "https" -IPAddress "*" -Port 125
New-WebAppPool WebAPIAppPool
New-WebSite -Name WebAPI -Port 123 -PhysicalPath "thePath" -ApplicationPool "WebAPIAppPool"
Set-Location Cert:\LocalMachine\My
$certHash = (Get-ChildItem -DnsName "theCertName").Thumbprint
$guid = [guid]::NewGuid()
$Command = "http add sslcert ipport=0.0.0.0:125 certhash=$certHash appid={$guid}"
$Command | netsh
exit