我在powershell中很新,我遇到了问题。 我在新服务器上进行数据库迁移,我需要知道IIS上每个网站使用哪个数据库。因为一些站点使用相同的数据库,我需要同时迁移它。 因为我有太多站点要检查他们的连接字符串,所以我想让PS脚本列出所有站点及其数据库名称。
我已经搜索了解决方案,但我无法找到它。 我发现只列出所有站点,状态,绑定的命令。 导入模块Web管理Get-ChildItem -Path IIS:\ Sites
非常感谢。
此致 贾卡。
答案 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"])"
}
}}