【问题标题】:Powershell script to create folder, website and deploy using MSDeploy.exe使用 MSDeploy.exe 创建文件夹、网站和部署的 Powershell 脚本
【发布时间】:2013-01-15 08:18:12
【问题描述】:

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

我只需要语法,你能帮我做以下动作吗:

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

  2. 如果MyWebsite 存在,则在IIS7 中测试,如果不创建它(我知道如何Import-Module WebAdministration 并调用New-WebSite

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

【问题讨论】:

  • 任何完整的源代码示例?

标签: iis-7 powershell powershell-2.0


【解决方案1】:

回答您的问题:

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 脚本就好了。

【讨论】:

  • 嗨,这太棒了。我可以围绕这个来完成我的 PS 脚本。
【解决方案2】:

我也变了一点。使用相同的Test语法来测试一个网站是否存在:

if (-not (Test-Path -path IIS:\Sites\$SiteName))
{
   New-WebSite -Name $SiteName ...etc...
}

为了执行 *.cmd 文件,我从网上提取了一些代码,发现人们使用 & 来执行外部命令。希望你没事:

& c:\PathToScript\MakeMySite.cmd arg1 arg2

非常感谢您的帮助。

【讨论】:

    【解决方案3】:

    如果需要以管理员身份运行.cmd文件,可以使用以下代码:

        Start-Process -FilePath C:\PathToScript\MakeMySite.cmd -Verb RunAs -ArgumentList "/y"
    

    【讨论】:

      猜你喜欢
      • 2017-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多