Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles à la une

SCOM et alertes WMI: Script de redémarrage du service wmi et de ses dépendances

 

Le script suivant récupère les alertes ouvertes pour une machine, qui correspondent a des erreurs de requetage wmi. Si il en trouve au moins une dont le repeatcount est supérieur a une valeur donnée en variable, il redémarre le service wmi et ses dépendances et clos les alertes correspondantes.

   1:  

   2: $scomms="scom2k12sp1srv1"

   3: $targetcomputer="scom2k12sp1dc1"

   4: $repeatcountthreshold="1"

   5: $wmi="WinMgmt"

   6:  

   7: $scomcred=Get-Credential -Credential "scom2k12sp1maq1\administrator"

   8: $arrwmialerts=@(“Operations Manager failed to run a WMI query","Workflow Initialization: Failed to start a workflow that queries WMI for performance data","Workflow Initialization: Failed to start a workflow that queries WMI for WMI events","Operations Manager failed to run a WMI query for WMI events",

   9: "Operations Manager failed to run a performance data WMI query","Workflow Initialization: Failed to start a workflow that queries WMI","Script Based Test Failed to Complete")

  10:  

  11: Import-Module operationsmanager

  12:  

  13: New-SCOMManagementGroupConnection -ComputerName $scomms -Credential $scomcred

  14:  

  15: $arrcomputernewalertnames=Get-SCOMAlert | Where-Object {$_.Resolutionstate -eq "0" -and $_.NetbiosComputerName -eq $targetcomputer -and $_.RepeatCount -gt $repeatcountthreshold -and $_.IsMonitorAlert -eq $false } | Select-Object -Property name -ExpandProperty name

  16: $arrcomputernewalerts=Get-SCOMAlert | Where-Object {$_.Resolutionstate -eq "0" -and $_.NetbiosComputerName -eq $targetcomputer -and $_.RepeatCount -gt $repeatcountthreshold -and $_.IsMonitorAlert -eq $false }

  17:  

  18:  

  19:  

  20: $matchingalerts=0

  21: foreach ($wmialert in $arrwmialerts)

  22: {

  23:   if ($arrcomputernewalertnames -contains $wmialert)

  24:     {

  25:     Write-Host -ForegroundColor Red -BackgroundColor White "L'alerte "$wmialert.ToUpper()" a été répétée plus de $repeatcountthreshold fois sur $targetcomputer"

  26:     Write-Host -ForegroundColor Yellow "Fermeture de l'alerte "$wmialert.ToUpper()" avant redemarrage du service $wmi et de ses dependances"

  27:     $matchingalerts= ($matchingalerts + 1)

  28:     $arrcomputernewalerts | Where-Object {$_.Name -like "$wmialert*"} | foreach {Set-SCOMAlert -ResolutionState 255 -Alert $_ }

  29:     }

  30: }

  31:  

  32:  

  33: ###FUNCTIONS###

  34: Function Restart-Wmi ($targetcomputer)

  35: {

  36: Invoke-Command -ComputerName $targetcomputer -Credential $scomcred -ScriptBlock {

  37: $winmgmt=Get-Service -Name Winmgmt

  38: $winmgmtrundep=$winmgmt.DependentServices | Where-Object {$_.Status -eq "Running"}

  39: Stop-Service -Name Winmgmt -Force -ErrorAction SilentlyContinue

  40: Start-Sleep -Seconds 5

  41: Start-Service -Name Winmgmt -ErrorAction silentlycontinue

  42: Start-Sleep -Seconds 5

  43:  

  44: foreach ($dep in $winmgmtrundep) 

  45:     {

  46:     if (Get-WmiObject win32_service | Where-Object {$_.Name -eq $dep.Name -AND $_.state -ne "running" -AND $_.startmode -eq "Auto"}) 

  47:         {

  48:         write-host -ForegroundColor Green "demarrage de la dependance "$dep.Name.ToUpper()""

  49:         Start-Service -Name $dep.Name -erroraction SilentlyContinue -ErrorVariable ("start_"+$dep.Name+"_error").ToString()

  50:         }

  51:     }

  52:  

  53: }

  54: }

  55:  

  56:  

  57: Function NewEventSource

  58: {

  59:     if(!(Test-Path 'HKLM:\SYSTEM\CurrentControlSet\services\eventlog\Operations Manager\RestartWMIScript'))

  60:     {

  61:     New-EventLog -LogName "Operations Manager" -Source RestartWMIScript

  62:     }

  63: }

  64: ###FUNCTIONS###

  65:  

  66:  

  67:  

  68:  

  69:  

  70:  

  71: if ($matchingalerts -gt 0)

  72: {

  73: write-host -ForegroundColor Yellow "Redemarrage du service WinMgmt et de ses dependances"

  74: Restart-Wmi $targetcomputer

  75: }

  76: else

  77: {

  78: write-host -ForegroundColor Green "Pas d'alertes correspondantes trouvées"

  79: Write-Host -ForegroundColor Green "Pas de redemarrage du service WinMgmt et de ses dependances"

  80: exit

  81: }

  82:  

  83:  

  84:  

  85:  

  86:  

  87: ###VERIFICATION ET LOG D'ERREURS

  88:  

  89:  

  90: Invoke-Command -ComputerName $targetcomputer -Credential $scomcred -ScriptBlock {

  91: param($targetcomputer)

  92: $wmi=Get-Service -Name WinMgmt -ComputerName $targetcomputer

  93: if ($wmi.Status -ne "Running")

  94: {

  95: $function:NewEventSource

  96: Write-EventLog -LogName 'Operations Manager' -Source RestartWMIScript -EntryType Error -EventId 1002 -Message "erreur de demarrage du service winmgmt"

  97: }

  98:  

  99: } -Argumentlist $targetcomputer

 100:  

 101: ###VERIFICATION ET LOG D'ERREURS

 102:  

 103:  

 104:  

KEMP – Déploiement d’une mise à jour sur deux boitiers en mode HA

Contexte

Les boitiers KEMP sont des Appliances de load-balancing. Ces boitiers permettent de répartir la charge des flux entrants.

La mise à jour de ces boitiers s’effectue en plusieurs étapes. L’opération de mise à jour sur deux boitiers (en mode High Availability) prend entre 15 minutes et 30 minutes.

Remarque : La mise à jour de boitiers KEMP implique une légère interruption de service.

Récupérer la mise à jour

Afin de récupérer une mise à jour KEMP il faut contacter l’éditeur via le formulaire suivant :

http://kemptechnologies.com/en/load-balancing-support/contact-support

Sauvegarde de la configuration

Avant de mettre à jour les boitiers, il est important de sauvegarder la configuration actuelle. Il sera ainsi rapide de remettre en place la configuration en cas d’échec de la mise à jour.

Pour se faire, se connecter à la shared IP et se rendre dans la partie System Configuration puis System Administration et enfin Backup / Restore. Cliquer sur Create Backup File. Le navigateur va alors télécharger le fichier de sauvegarde.

1

Sauvegarde des certificats

Il est important de sauvegarder également les certificats en place sur les boitiers.

Depuis l’interface d’administration (sur la Shared IP), aller dans la partie Certificates, Backup / Restore Certs. Insérer un mot de passe puis cliquer sur Create Backup File.

2

Mise à jours des boitiers

La mise à jour se fera ici sur deux boitiers KEMP en HA.

La mise à jour s’effectue dans un premier sur le boitier actif, puis sur le boitier passif (qui sera alors en mode actif).

Depuis l’interface d’administration (sur la Shared IP), aller dans System Configuration, System Administration, Update Software. Cliquer sur Browse…

3

Récupérer le fichier de mise à jour. Cliquer sur Update Machine pour lancer la mise à jour.

45

Un message informe que l’opération peut prendre du temps, cliquer sur OK pour passer à l’étape suivante. Le fichier est alors transféré vers le boitier.

67

Une fois le fichier transféré, une confirmation est demandée, cliquer sur OK.

8

La mise à jour s’installe puis un reboot est demandé. Ce reboot ne concerne que le boitier actif. Il y aura, à ce moment, une petite interruption du service le temps que le boitier passif prenne le relais.

91011

A ce moment de la mise à jour, le boitier est indisponible comme le montre les deux icônes.

12

Une fois l’icône redevenu vert, se connecter sur l’adresse IP du boitier pour vérifier que tout fonctionne correctement.

13

Remarque : Il est préférable de vider la cache du navigateur afin de ne pas voir de fausses informations. Pour cela depuis les options internet, dans l’onglet General, cliquer sur Delete… puis cocher les cases Temporary Internet files, Cookies et History.

1415

Une fois connecté sur le boitier mis à jour, vérifier que la version est bien celle voulue.

16

Refaire les mêmes actions une seconde fois pour mettre à jour le deuxième boitier. Le boitier premier boitier redeviendra ainsi l’actif.

Une fois les deux boitiers mis à jour, depuis l’interface d’administration (sur la Shared IP), vérifier la version.

Lync Server 2013 – Erreur « User is not sip-enabled » dans l’interface du Persistent Chat

Problématique

Dans Lync Server 2013 lorsque le rôle Persistent Chat est activé, il est possible que les utilisateurs rencontrent l’erreur « User is not sip-enabled » lorsqu’ils tentent de se connecter à l’interface d’administration (Ajout / Modification des salles de chat).

Cause

L’erreur se produit généralement avec les navigateurs tiers, en raison d’une mauvaise configuration de l’authentification NTLM.

Résolution

Il est recommandé d’utiliser Internet Explorer pour se connecter à l’interface d’administration. Vérifier que la version d’Internet Explorer est bien à jour.

Pour les aficionados de Firefox, il est possible de modifier sa configuration. Pour cela, dans la barre d’URL taper about:config et cliquer sur Je ferai attention, promis !

image

Rechercher le terme NTLM, puis modifier l’option network.automatic-ntlm-auth.trusted-uris. Insérer l’URL du pool Lync Server https://nomdupool.domaine.fr, valider avec OK.

image image

Redémarrer Firefox. L’accès à l’interface d’administration est alors disponible.

image