使用PowerShell在远程服务器上创建IIS网站

时间:2014-01-14 15:40:05

标签: iis powershell remote-server powershell-remoting

我尝试使用PowerShell从另一台服务器在远程服务器上创建IIS网站。当我执行它时,该站点已在本地服务器中创建,而不是在远程服务器中创建。 这是powershell函数。它位于function.ps1文件中。

function CreateIISWebsite
{
 param (
        [string]$iisAppName,
        [string]$directoryPath,
        [string]$iisAppPoolName,
        [string]$rhost,
        [string]$un,
        [string]$pw
    )

$MSDeployExe = "C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe"
Import-Module WebAdministration
$iisAppPoolDotNetVersion = "v4.0"

#navigate to the app pools root
cd IIS:\AppPools\

#check if the app pool exists
if (Test-Path $iisAppPoolName -pathType container)
{
    Remove-Item $iisAppPoolName -recurse   
}

#create the app pool
$appPool = New-Item $iisAppPoolName
$appPool | Set-ItemProperty -Name "managedRuntimeVersion" -Value $iisAppPoolDotNetVersion

Set-ItemProperty IIS:\AppPools\$iisAppPoolName managedRuntimeVersion v4.0

Set-ItemProperty -Path IIS:\AppPools\$iisAppPoolName -Name processmodel.identityType -Value 3
Set-ItemProperty -Path IIS:\AppPools\$iisAppPoolName -Name processmodel.username -Value $un
Set-ItemProperty -Path IIS:\AppPools\$iisAppPoolName -Name processmodel.password -Value $pw


#navigate to the sites root
cd IIS:\Sites\

#check if the site exists
if (Test-Path $iisAppName -pathType container)
{
Remove-Item $iisAppName -recurse
}

#create the site
$iisApp = New-Item $iisAppName -bindings @{protocol="http";bindingInformation=":80:" +     $iisAppName} -physicalPath $directoryPath
$iisApp | Set-ItemProperty -Name "applicationPool" -Value $iisAppPoolName

}

我这样称呼这个函数。

。 ./function.ps1 CreateIISWebsite -iisAppName $ sitename -directoryPath $ path -iisAppPoolName $ appPool -rhost $ rhost -un $ un -pw $ pw

即使我将远程服务器的ip作为rhost传递,我也不知道我需要在哪里使用它。因此IIS站点正在本地创建成功。不使用rhost参数,它不会在服务器中创建。所以我需要在代码中的正确位置使用该参数。 我在两台服务器上都安装了Web Deploy。 请给我一个解决方案。

1 个答案:

答案 0 :(得分:2)

在本地和远程系统上配置PowerShell远程处理(使用Enable-PSRemoting -Force,然后使用Invoke-Command将脚本部署到远程计算机。

<强>更新

e.g。 在本地和远程系统上,请使用提升的Powershell命令提示符:

Enable-PSRemoting -Force

如果您还没有这样做,请记住Set-ExecutionPolicySee here for more info)适用于远程服务器上的某些内容。

要从本地计算机调用远程计算机上的powershell脚本,您可以执行以下操作:

Invoke-Command -ComputerName server01 -File c:\path\to\script.ps1