我想在Windows 2008 R2上部署Web应用程序。我知道单独的PowerShell命令可以执行各种任务。但我想把它放到一个很好的PowerShell脚本中。
我只需要语法,请你帮我做下面的动作:
测试C:\Inetpub\MyWebsite
文件夹是否存在,如果不存在,请创建它。
如果MyWebsite
存在,则在IIS7中进行测试,如果不存在则(我知道如何Import-Module WebAdministration
并致电New-WebSite
)
现在复杂的部分。我从Visual Studio 2010准备的软件包中部署了一个Web站点.VS提供了一个.cmd
文件,我只需要在DOS提示符下执行它。这意味着我必须离开PS控制台,打开DOS控制台来运行该cmd文件。是否可以在PowerShell控制台中运行.cmd
文件?
答案 0 :(得分:8)
回答你的问题:
Import-Module WebAdministration
# Check for physical path
$sitePath = "c:\inetpub\MyWebsite"
if (-not (Test-Path -path $sitePath))
{
New-Item -Path $sitePath -type directory
}
# Check for site
$siteName = "MyWebSite"
$site = Get-WebSite | where { $_.Name -eq $siteName }
if($site -eq $null)
{
Write-Host "Creating site: $siteName"
# Put your New-WebSite code here
}
# Execute your .cmd here
c:\PathToScript\MakeMySite.cmd
您可以在PowerShell中运行.cmd
脚本。
答案 1 :(得分:2)
我也改变了一点。使用相同的测试语法来测试网站是否存在:
if (-not (Test-Path -path IIS:\Sites\$SiteName))
{
New-WebSite -Name $SiteName ...etc...
}
同样为了执行* .cmd文件,我从网上提取了一些代码,看到人们使用&执行外部命令。希望你没事:
& c:\PathToScript\MakeMySite.cmd arg1 arg2
非常感谢你的帮助。
答案 2 :(得分:0)
如果您需要以管理员身份运行.cmd文件,可以使用以下代码:
Start-Process -FilePath C:\PathToScript\MakeMySite.cmd -Verb RunAs -ArgumentList "/y"