Получить dbname из нескольких файлов web.config с powershell - PullRequest
4 голосов
/ 14 августа 2011

Я хотел бы выполнить команду powershell, чтобы вернуть мне строку подключения (в частности, я ищу значение имени БД) для всех веб-сайтов на веб-сервере ...

Поэтому я хотел бычтобы увидеть что-то вроде

site1 dbname = Northwind

site2 dbname = Fitch

site3 dbname = DemoDB

Я пытался использовать оснастку IIS Powershell... Я думал, что я был близок с этим:

PS C: \ Windows \ system32> Get-WebApplication |Get-WebConfiguration -filter / connectionStrings / *

но ... после просмотра результатов ... мой ответ, похоже, отсутствует

Я очень новичок в powershell -прошу прощения за мое невежество и неопытность

Любая помощь приветствуется!

спасибо!

Ответы [ 2 ]

9 голосов
/ 14 августа 2011

Надеюсь, это поможет вам начать.Это просто предполагает, что на физическом пути физического пути веб-приложения будет файл web.config.Не стоит искать другие файлы web.config в веб-приложении.Также предполагается, что строки подключения находятся в элементе конфигурации connectionStrings.

Import-Module WebAdministration

Get-WebApplication | `
ForEach-Object {

$webConfigFile = [xml](Get-Content "$($_.PhysicalPath)\Web.config")
Write-Host "Web Application: $($_.path)"
foreach($connString in $webConfigFile.configuration.connectionStrings.add)
{
  Write-Host "Connection String $($connString.name): $($connString.connectionString)"
  $dbRegex = "((Initial\sCatalog)|((Database)))\s*=(?<ic>[a-z\s0-9]+?);"
  $found = $connString.connectionString -match $dbRegex
  if ($found)
  {
   Write-Host "Database: $($Matches["ic"])"
  }

}
Write-Host " "
}
0 голосов
/ 14 августа 2011

Этот пост может дать вам идею начать с.В основном загрузите файл web.config как файл XML, а затем просто найдите узел, в котором находится строка подключения.

Сделайте что-то вроде $ myFile = ([xml] Get-Content web.config).Затем вы можете передать это в Get-Member ($ myFile | Get-Member -MemberType Property), чтобы начать прокладывать путь к файлу, чтобы увидеть, какой узел имеет его.Я не за компьютером, где я могу показать вам несколько скриншотов, чтобы объяснить это более подробно, но вы можете проверить эту главу из PowerShell.com "Master PowerShell" электронную книгу, которая хорошо объясняет работу с XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...