Je déploie une paire de scripts via SCCM pour définir une grande variété d'éléments de configuration IIS - des choses comme les emplacements de journal par défaut, les valeurs de troncature, et ainsi de suite. L'une des choses que j'ajoute est un champ de fichier journal personnalisé :
Add-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -filter "system.applicationHost/sites/$Sitename/logFile/customFields" -name "." -value @{logFieldName='Original-IP';sourceName='X-Forwarded-For';sourceType='RequestHeader'}
Cela fonctionne bien ; je peux y accéder manuellement avec l'éditeur de configuration dans IIS, et il s'affiche dans l'interface graphique des paramètres de journalisation. Cependant, je rencontre un problème. Une partie du déploiement de SCCM consiste à exécuter un script qui vérifie que les valeurs sont correctes sur chaque serveur. avant il exécute la correction script. Ceci sera exécuté périodiquement contre notre environnement (3000+ serveurs Windows), et les résultats de cette script de vérification déterminent si SCCM exécute la script de remédiation qui définit les valeurs.
Je veux éviter d'exécuter le script quand ce n'est pas nécessaire (et mon patron aime les choses qui disent 100%), mais je n'arrive pas à comprendre l'erreur que je reçois. Je sais que j'interroge la valeur de manière erronée, donc je ne peux pas lui dire ce qu'il faut faire correspondre. Quelqu'un peut-il m'aider à résoudre ce problème ?
$SiteLogFileCustom = Get-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -filter "system.applicationHost/sites/$Sitename/logFile/customFields" -name Original-IP
if (($SiteLogFileCustom) -eq ('Original-IP'))
{
write-host "Match!"
}
else
{
write-Error "Mismatched values!" -Category NotInstalled -ErrorId MisMatch
Les retours :
\\tsclient\D\share\scripts\IIS-Settings\Check-iisSettings.ps1 : Mismatched values!
+ CategoryInfo : NotInstalled: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : MisMatch,Check-iisSettings.ps1
Ce qui est attendu, puisque la valeur retourne vide. Comment puis-je interroger la collection customFields pour obtenir une liste des noms des champs personnalisés, puis les comparer à une liste prédéterminée ?
PS - Il ne devrait y avoir qu'un seul champ, Original-IP.