2016-12-07 7 views
0

私はpowershellでかなり新しいです。問題があります。 私は新しいサーバー上でデータベースを移行しようとしており、どのデータベースがどのIISを使用しているのかを知る必要があります。サイトによっては同じデータベースを使用するサイトがあり、同時にそのサイトを移行する必要があるためです。 接続文字列を確認するサイトが多すぎるため、PSスクリプトを使用してすべてのサイトとそのデータベース名を一覧にしたいと考えています。powershellですべてのサイトとデータベース名を表示

私はすでに解決策を探していましたが、見つけられませんでした。 すべてのサイト、状態、バインディングをリストするコマンドしか見つかりませんでした。 インポートモジュールのWeb管理Get-ChildItem -Path IIS:\ Sites

ありがとうございました。

よろしく、 Jaka。

答えて

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"])" 
     } 
    }} 
+0

でテストされているあなたの答えのためにあなたにM.Fatihをありがとうございます。 Web.configファイルがサイトディレクトリに存在しないかどうかを確認する方法を教えてください。さらにもう1つの質問は、(サイト名、ステータス、バインディング、データベース名)のようなすべてのデータにOut-GridViewを使用することができますか? ありがとうございます。 よろしく、ジャック – Jack

+0

どうぞよろしくお願いします。$ dbRegex = "((データソース)))\ s * =(? [a-z \ s0-9] +?);" – Jack

+0

https://regex101.com/ – mfatih

関連する問題