Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles Ă  la une

SCOM – Script Exemple de rapport Cmdline pour un monitor

Le script ci-dessous montre comment facilement sortir de petit rapport en ligne de commande de l’état d’un monitor pour tout les agents.

Dans cet exemple on affiche l’état du rollup monitor de l’espace disque (FreeSpaceMonitorRollup) et l’information de maintenance mode.

 

Function GetLogicDiskFreeSpState 
     
{

     
param(
     
[string]$dataSource = « SQLSERV1\OPSMGR »,
     
[string]$database = « OperationsManager »,
     
[string]$UnitMonitor = « Microsoft.Windows.Server.%.LogicalDisk.FreeSpaceMonitorRollup »,
     
[string]$TypeName = « Microsoft.Windows.Server.%.LogicalDisk »,
     
[string]$sqlCommand = 
     
$(
« 
                                                             
      /* QUERY THAT GET STATE OF SPECIFIC MONITOR STATE FOR ALL COMPUTERS */
      Use $database
                                                                                    
      DECLARE @UnitMonitor VARCHAR(100)
      DECLARE @TypeName VARCHAR(100)
                                           
                       
      SET @UnitMonitor = ‘%’+’$UnitMonitor’+’%’
      SET @TypeName = ‘$TypeName’
                                          
      PRINT ‘MONITOR: ‘ + @UnitMonitor
      PRINT ‘CRITERIAS:’
                                           
     ;
     WITH
                                                       
     MAININFO (Monitor,Computer,Disk,HealthState, LastModified,IsAvailable,InMaintenanceMode)
     AS
     (                                           
      SELECT
      MV.Name as Monitor
     ,MEGV.path as Computer
     ,MEGV.Name as Disk
     ,HealthState = CASE WHEN InMaintenanceMode = ‘0’ OR InMaintenanceMode is null  
        THEN     
            CASE MEGV.IsAvailable
                  WHEN ‘0’ THEN ‘KO – STATE IS NOT AVAILABLE’ — THIS MEAN THAT THE STATE IS GRAYED IN SCOM CONSOLE DESPITE OF THE OBJECT IS NOT IN MAINTENANCE MODE (AGENT FUNCTIONNAL PROBLEM)
                  WHEN ‘1’ THEN
                    CASE SV.[HealthState]
                        WHEN ‘0’ THEN ‘Not Monitored’
                        WHEN ‘1’ THEN ‘OK’
                        WHEN ‘2’ THEN ‘Warning’
                        WHEN ‘3’ THEN ‘Critical’
                    END
                                                   
                END                   
                                                       
            WHEN InMaintenanceMode = ‘1’
        THEN
            CASE MEGV.IsAvailable
            WHEN ‘0’ THEN ‘KO – STATE IS NOT AVAILABLE’ — THIS MEAN THAT THE STATE IS GRAYED IN SCOM CONSOLE DESPITE OF THE OBJECT IS IN MAINTENANCE MODE (AGENT FUNCTIONNAL PROBLEM)
            WHEN ‘1’ THEN
                CASE SV.[HealthState]
                WHEN ‘0’ THEN ‘In Maintenance Mode’
                WHEN ‘1’ THEN ‘OK’
                WHEN ‘2’ THEN ‘Warning’
                WHEN ‘3’ THEN ‘Critical’
                END
                                                       
            END                                                                                           
        END

    ,SV.[LastModified] as LastModified
    ,MEGV.IsAvailable
    ,MEGV.InMaintenanceMode
    FROM [OperationsManager].[dbo].[StateView] SV
    INNER JOIN [dbo].[ManagedEntityGenericView] MEGV on SV.BaseManagedEntityId = MEGV.BaseManagedEntityId
    INNER JOIN [dbo].[MonitorView] MV on SV.MonitorId = MV.id
    INNER JOIN [dbo].[ManagedTypeView] MTV on MEGV.MonitoringClassId = MTV.Id
    WHERE MV.Name like @UnitMonitor
    AND MTV.Name like @TypeName
        )
    SELECT
        
    MAININFO.Monitor
   ,MAININFO.Computer
   ,MAININFO.Disk
   ,MAININFO.HealthState
   ,MAININFO.LastModified
   ,MAININFO.IsAvailable
   ,MAININFO.InMaintenanceMode
    FROM MAININFO
            
   ORDER BY computer,Disk
  « 
    
)

 
)

  $connectionString = « Data Source=$dataSource;  » +
  « Integrated Security=SSPI;  »
+
  « Initial Catalog=$database »

  $connection = new-object system.data.SqlClient.SQLConnection($connectionString)
 
$command = new-object system.data.sqlclient.sqlcommand($sqlCommand,$connection)
 
$command.CommandTimeout=300
 
$connection.Open()

 $adapter = New-Object System.Data.sqlclient.sqlDataAdapter $command
 
$dataset = New-Object System.Data.DataSet
 
$adapter.Fill($dataSet) | Out-Null

 $connection.Close()

 #Display Time of Query
« `n »
 
write-host « Query Date: $(get-date -Format F) » -NoNewline
« `n »

#Display Criterias
Write-Host « STATE OF MONITOR ` »$UnitMonitor`« : »
« `n »
#Display Nb of rows

write-host Nb Of Object: $($dataset.Tables.defaultview.Count)
« `n »

$dataSet.Tables
}

try
{
GetLogicDiskFreeSpState | ft -AutoSize
}
catch
{
write-host -F Red « ERROR DURING EXECUTION OF GetLogicDiskFreeSpState FUNCTION – CHECK THAT YOU ARE LOGGED WITH A RIGHT ACCOUNT OR THAT THE SQL QUERY IS CORRECT »
}

Windows 10 – Réouverture automatique des applications au démarrage

Contexte

Depuis la mise à jour de Windows 10 Fall Creator Update (Windows 10 – 1709), lorsque vous éteignez votre machine, au redémarrage l’ensemble des applications qui étaient ouvertes s’ouvrent à nouveau automatiquement.

Pas très pratique si l’on est du genre à éteindre son poste alors que de nombreux programmes sont encore ouverts.

Solution

Pour le moment Microsoft ne propose pas d’option pour activer / désactiver cette (nouvelle) fonctionnalité.

Les solutions possibles pour ne pas avoir ce comportement :

  • Passer par ALT + F4 pour éteindre Windows : on remarque alors que Microsoft à ajouter la ligne Ferme toutes les applications et éteint le PC (cf. image)
  • Utiliser la ligne de commande shutdown /r /t 0

image

CrĂ©ation d’une web app linux php dans AZURE depuis le portail azure

Pour réaliser ce tutoriel, il vous faudrait un compte actif dans Azure. Connectez-vous sur le portail Azure https://portal.azure.com . 

1. Création d’un plan de service d’application (plan app service). Ce plan de service devrait être sous Linux. Ajouter un nom du service plan, créer un nouveau groupe de resource, et mettre Linux pour le Système d’exploitation.

Le plan de service d’application a été créé avec succès comme indique ci-dessous:

2. Sélectionner Â«Â web app » et tapper web app puis sélectionner « web app » et cliquer sur le bouton créer.

Entrer un nom pour cette application web, sélectionner Linux pour l’OS.

NB: vous pouvez configurer le conteneur, dans l’exemple ci-dessous php est utilisé.

La web app a été créé avec succès comme indiqué :

Pour déployer une site depuis github, selectionner la web app puis ‘option de déploiment »

 

Ajouter une source de déploiement, dans ce tutoriel , nous allons utiliser github. Ajouter votre compte github puis sélectionner votre projet. 

Une fois la configuration terminée, Cliquer sur OK.

Retourner dans option de déploiement, puis cliquer sur synchronisation. 

Le projet github est désormais synchro avec la web app azure: