Joh*_* Mc 5 iis powershell web-config
我想发出一个powershell命令来返回Web服务器上所有网站的连接字符串(特别是我正在寻找数据库名称值)...
所以我想看到类似的东西
site1 dbname = Northwind
site2 dbname = Fitch
site3 dbname = DemoDB
我尝试过使用IIS Powershell管理单元...我以为我接近这个:
PS C:\ Windows\system32> Get-WebApplication | Get-WebConfiguration -filter/connectionStrings/*
但是......看完结果后......我的回答似乎没有在那里
我对powershell很新 - 所以请原谅我的无知和缺乏经验
任何帮助赞赏!
谢谢!
dug*_*gas 10
希望这会让你开始.这假设在Web应用程序的物理路径的物理路径上将有一个web.config文件.它不会在Web应用程序中找到其他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 " "
}
Run Code Online (Sandbox Code Playgroud)
小智 0
这篇文章可能会给您一个开始的想法。基本上将 web.config 文件作为 XML 文件加载,然后查找连接字符串所在的节点。
执行类似 $myFile = ([xml] Get-Content web.config) 的操作。然后,您可以将其通过管道传递给 Get-Member ( $myFile | Get-Member -MemberType 属性),开始进入文件以查看哪个节点拥有该文件。我无法在计算机上向您展示一些屏幕截图来进行更多解释,但您可以从 PowerShell.com“掌握 PowerShell”电子书中查看本章,该书很好地解释了如何使用 XML。
| 归档时间: |
|
| 查看次数: |
4830 次 |
| 最近记录: |