2013-05-30 19 views
4

web.config의 IP 주소 만 변경하려면 web.config 파일을 업데이트해야합니다. 변경 사항을 스크립팅하기 위해 powershell을 찾고있는 코드 섹션을 포함 시켰습니다.powershell을 사용하여 web.config를 수정하십시오.

<connectionStrings> 
    <add name="connectionString" connectionString="provider=SQLOLEDB;Server=192.168.1.100;database=sample;Trusted_Connection=Yes" providerName="System.Data.OleDb" /> 
    <add name="sqlConnectionString" connectionString="Data Source=192.168.1.100;Initial Catalog=sample;Trusted_Connection=Yes" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

은 그냥 serverip로 주소를 업데이트이 에 대한 매우 간단한 해결책을 부탁합니다.

누구나 PowerShell을 사용하여 쉽게이 작업을 수행 할 수 있습니다.

답변

8

내가 다음

$cfg = [xml](gc web.config) 
# Replace all references of the IP in all connection string 
$cfg.configuration.connectionStrings.add|%{ 
    $_.connectionString = $_.connectionString -replace "192.168.1.100", "1.0.0.1"; 
} 
$cfg.Save("Web.config"); 

에 거라고 그냥 선택은 특정 연결 문자열을 대체하기 위해 찾고 있다면, 나는 다음과 같이 가져 오십시오.

$con= $cfg.configuration.connectionStrings.add|?{$_.name -eq "SqlDataCon"}; 
# Replace the content 
$con.connectionString = $con.connectionString -replace "192.168.1.100", "1.0.0.1" 
+0

감사합니다. –

2

당신이 시도 할 수 :

$xml = [xml](Get-Content c:\temp\web.config) 
$conString = $xml.connectionStrings.add[0].connectionString 
$conString2 = $conString -replace '192.168.1.100','10.10.10.10' 
$xml.connectionStrings.add[0].connectionString = $conString2 
$conString = $xml.connectionStrings.add[1].connectionString 
$conString2 = $conString -replace '192.168.1.100','10.10.10.10' 
$xml.connectionStrings.add[1].connectionString = $conString2 
$xml.Save('c:\temp\web2.config') 

이 두 개의 연결 문자열을위한 일을하고 있어요. 당신이 하드 코드하지 않으려면 이전 IP 주소는 다음을 사용할 수 있습니다

$conString -replace 'Server=.*;','Server=10.10.10.11;' 
관련 문제