列出PowerShell中的所有站点及其数据库名称

时间:2016-12-07 10:05:59

标签: database powershell iis scripting database-migration

我在powershell中很新,我遇到了问题。 我在新服务器上进行数据库迁移,我需要知道IIS上每个网站使用哪个数据库。因为一些站点使用相同的数据库,我需要同时迁移它。 因为我有太多站点要检查他们的连接字符串,所以我想让PS脚本列出所有站点及其数据库名称。

我已经搜索了解决方案,但我无法找到它。 我发现只列出所有站点,状态,绑定的命令。 导入模块Web管理Get-ChildItem -Path IIS:\ Sites

非常感谢。

此致 贾卡。

1 个答案:

答案 0 :(得分:0)

此脚本可以为您提供帮助,但假设存在web.config文件,则在PowerShell 4中编写的脚本在PowerShell 4中进行了测试。

Import-Module WebAdministration

Get-ChildItem -Path IIS:\Sites | `
ForEach-Object {

    $webConfigFile = [xml](Get-Content "$($_.PhysicalPath)\Web.config")

    foreach($connString in $webConfigFile.configuration.connectionStrings.add)
    {
        $dbRegex = "(((Data Source)))\s*=(?<ic>[a-z\s0-9]+?);"
        $found = $connString.connectionString -match $dbRegex
        if ($found)
        {
            Write-Host "Database: $($Matches["ic"])"
        }
    }}