Dans certain cas, j'ai besoin d'identifier les fichiers contenant une chaine de caractères bien précise. Par exemple, lors d'une migration de serveur, je dois trouver les scripts de login contenant le nom de l'ancien serveur afin de les modifier. Cet exemple recherche dans les scriptes de logins ceux qui contiennent le nom de l'ancien serveur, et les copies en local.
#Recherche un nom de serveur dans les scripts de login.
$path="\\ServerAd1\netlogon\"
Get-ChildItem -Force $path |
foreach {
$file = $_
$analyse = $path + $file
$cf = 0
get-content $analyse |
foreach {
$string = $_
$string = $string.ToUpper()
if ($string.contains('SERVEUR1')) { $cf = 1 }
}
if ($cf -eq 1)
{
Write-Host $analyse
copy-item $analyse -destination "C:\dossier"
}
}
#Fin.
$path="\\ServerAd1\netlogon\"
Get-ChildItem -Force $path |
foreach {
$file = $_
$analyse = $path + $file
$cf = 0
get-content $analyse |
foreach {
$string = $_
$string = $string.ToUpper()
if ($string.contains('SERVEUR1')) { $cf = 1 }
}
if ($cf -eq 1)
{
Write-Host $analyse
copy-item $analyse -destination "C:\dossier"
}
}
#Fin.