Powershell脚本,使用MSDeploy.exe创建文件夹,网站和部署

时间:2011-04-01 22:39:35

标签: iis-7 powershell powershell-v2.0

我想在Windows 2008 R2上部署Web应用程序。我知道单独的PowerShell命令可以执行各种任务。但我想把它放到一个很好的PowerShell脚本中。

我只需要语法,请你帮我做下面的动作:

  1. 测试C:\Inetpub\MyWebsite文件夹是否存在,如果不存在,请创建它。

  2. 如果MyWebsite存在,则在IIS7中进行测试,如果不存在则(我知道如何Import-Module WebAdministration并致电New-WebSite

  3. 现在复杂的部分。我从Visual Studio 2010准备的软件包中部署了一个Web站点.VS提供了一个.cmd文件,我只需要在DOS提示符下执行它。这意味着我必须离开PS控制台,打开DOS控制台来运行该cmd文件。是否可以在PowerShell控制台中运行.cmd文件?

3 个答案:

答案 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"