iis-7 – 通过Powershell更改远程机器上的IIS网站的物理路径

我正在开发一个部署脚本,该脚本将占用我的站点,从svn导出,删除其中的任何测试文件等,将javascript / css,将代码复制到远程Web服务器,然后切换现有站点到新目录。

到目前为止,除了在IIS中切换物理目录之外,我还有一切工作。

$IIsServer = Get-WmiObject Site -Namespace "root/WebAdministration" -ComputerName $serverIP -Credential $credentials -Authentication PacketPrivacy
$site = $IIsServer | Where-Object {$_.Name -eq $siteName}

当我研究我的价值观,我找不到物理路径属性。

任何建议将不胜感激。

root / WebAdministration WMI提供程序的问题是它不是功能丰富。

您可以做的是使用Microsoft.Web.Administration管理的API。如果在服务器本身上运行,此脚本将工作。

[Void][Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")

$siteName = "Default Web Site"
$serverIP = "your ip address"
$newPath = "your new path"

$serverManager = New-Object Microsoft.Web.Administration.ServerManager
## $serverManager = [Microsoft.Web.Administration.ServerManager]::OpenRemote($serverIP)
$site = $serverManager.Sites | where { $_.Name -eq $siteName }
$rootApp = $site.Applications | where { $_.Path -eq "/" }
$rootVdir = $rootApp.VirtualDirectories | where { $_.Path -eq "/" }
$rootVdir.PhysicalPath = $newPath
$serverManager.CommitChanges()

如果您需要远程执行此操作,您会发现有一条注释掉的行可能适用于您:

## $serverManager = [Microsoft.Web.Administration.ServerManager]::OpenRemote($serverIP)

不幸的是,MS没有想到提供一种供应凭证的方式。这意味着运行该脚本的帐户将需要在远程服务器上授予所有正确的权限。我现在不能尝试这个,因为我不在AD环境附近。

脚本本身将更新站点根物理路径(/)。

有关IIS7配置的更多信息,请参阅以下链接:

07000

http://stackoverflow.com/questions/3938058/changing-the-physical-path-of-an-iis-website-on-a-remote-machine-via-powershell

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:iis-7 – 通过Powershell更改远程机器上的IIS网站的物理路径