If you leave the entry name in ReadProfileString() blank you will get all the entries in a section. If you leave the section name blank you will get all the sections in a file.

Use this technique to enumerate all the sections and entries.

Here is a simple (untested!) example:
Code:
$sMyIni=".\serverlist.ini"
$sOldString="Server1"
$sNewString="Server2"

For Each $sSection in Split(ReadProfileString($sMyIni,"",""),Chr(10))
If $sSection
"Checking section "+$sSection+@CRLF
For Each $sEntry in Split(ReadProfileString($sMyIni,$sSection,""),Chr(10))
If $sEntry
$sValue=ReadProfileString($sMyIni,$sSection,$sEntry)
"Entry "+$sEntry+" has value "+$sValue+" status:"
If $sValue=$sOldString
" **UPDATED**"+@CRLF
$=WriteProfileString($sMyIni,$sSection,$sEntry,$sNewString)
Else
" No change"+@CRLF
EndIf
EndIf
Next
EndIf
Next