{"id":235708,"date":"2024-04-12T10:26:54","date_gmt":"2024-04-12T10:26:54","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=235708"},"modified":"2024-04-12T10:27:47","modified_gmt":"2024-04-12T10:27:47","slug":"surveiller-un-serveur-sql-avec-powershell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/fr\/script-hub\/surveiller-un-serveur-sql-avec-powershell\/","title":{"rendered":"Script PowerShell pour surveiller un serveur SQL"},"content":{"rendered":"<h2>Points \u00e0 retenir<\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\">Les scripts PowerShell permettent de surveiller un serveur SQL en toute simplicit\u00e9, am\u00e9liorant ainsi la pr\u00e9cision et l&rsquo;efficacit\u00e9 op\u00e9rationnelle.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\">Les param\u00e8tres personnalisables du script permettent une surveillance sur mesure des services de base de donn\u00e9es, de l&rsquo;espace disque et de la latence.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\">La surveillance automatis\u00e9e r\u00e9duit le risque d&rsquo;indisponibilit\u00e9 du serveur et les probl\u00e8mes de performance.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"4\" data-aria-level=\"1\">Le script v\u00e9rifie l&rsquo;existence de privil\u00e8ges d&rsquo;administrateur, indispensables pour acc\u00e9der aux informations du syst\u00e8me et effectuer certaines op\u00e9rations.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"5\" data-aria-level=\"1\">Les capacit\u00e9s de surveillance en temps r\u00e9el du script sont essentielles pour maintenir la sant\u00e9 de la base de donn\u00e9es et pr\u00e9venir les pertes de donn\u00e9es.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"6\" data-aria-level=\"1\">Adaptable aux diff\u00e9rentes versions de SQL Server, ce qui en fait un outil polyvalent pour diff\u00e9rents environnements informatiques.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"7\" data-aria-level=\"1\">La combinaison de ce script avec des plateformes de gestion informatique compl\u00e8tes telles que NinjaOne offre une solution de surveillance plus robuste.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"8\" data-aria-level=\"1\">Des mises \u00e0 jour r\u00e9guli\u00e8res et une formation du personnel \u00e0 PowerShell sont recommand\u00e9es pour maximiser l&rsquo;efficacit\u00e9 du script.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"9\" data-aria-level=\"1\">La surveillance et la maintenance proactives des serveurs SQL sont essentielles pour garantir la haute disponibilit\u00e9 et l&rsquo;int\u00e9grit\u00e9 des donn\u00e9es dans les environnements professionnels modernes.<\/li>\n<\/ul>\n<h2>Contexte<\/h2>\n<p>Garantir la sant\u00e9 et les performances des <a href=\"https:\/\/www.ninjaone.com\/fr\/blog\/comment-sauvegarder-et-restaurer-une-base-de-donnees-de-sql-server\/\">bases de donn\u00e9es SQL Server<\/a> est essentiel pour assurer la continuit\u00e9 et l&rsquo;efficacit\u00e9 des entreprises. Avec la d\u00e9pendance croissante \u00e0 l&rsquo;\u00e9gard de la prise de d\u00e9cision fond\u00e9e sur les donn\u00e9es, les professionnels de l&rsquo;informatique sont souvent charg\u00e9s de la surveillance et de la gestion de ces syst\u00e8mes. L&rsquo;utilisation de scripts PowerShell permet de rationaliser le processus pour surveiller un serveur SQL, en am\u00e9liorant \u00e0 la fois la pr\u00e9cision et l&rsquo;efficacit\u00e9.<\/p>\n<p>Le script PowerShell fourni repr\u00e9sente un outil pr\u00e9cieux pour les professionnels de l&rsquo;informatique et les <a href=\"https:\/\/www.ninjaone.com\/fr\/quest-ce-quun-msp\">fournisseurs de services g\u00e9r\u00e9s (MSP)<\/a>. Il se concentre sur la surveillance de trois aspects cl\u00e9s de la sant\u00e9 du serveur SQL : l&rsquo;\u00e9tat des services de base de donn\u00e9es, la disponibilit\u00e9 de l&rsquo;espace disque et la latence du disque. Cette surveillance est vitale car elle permet d&rsquo;\u00e9viter les pertes de donn\u00e9es, d&rsquo;assurer une haute disponibilit\u00e9 et de maintenir des performances optimales du serveur SQL.<\/p>\n<h2>Le script :<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">#Requires -Version 5.1\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Monitors the database services, database's drive free space, and database's disk latency.\r\n.DESCRIPTION\r\n    Monitors the database services, database's drive free space, and database's disk latency.\r\n\r\n    Exit code of 1 means there is a problem.\r\n\r\n    Will not detect LocalDB uses of SQL Express\r\n\r\n.EXAMPLE\r\n    (No Parameters)\r\n    ## EXAMPLE OUTPUT WITHOUT PARAMS ##\r\n    SQL Server's services are running.\r\n    SQL Server's disk latency is below threshold.\r\n    SQL Server's disk free space is above threshold.\r\n\r\nPARAMETER: -RequireAgentService\r\n    Checks if the SQL Agent service is running or not.\r\n.EXAMPLE\r\n    -RequireAgentService\r\n    ## EXAMPLE OUTPUT WITH RequireAgentService ##\r\n    SQL Server's services are running.\r\n    SQL Server's disk latency is below threshold.\r\n    SQL Server's disk free space is above threshold.\r\n\r\n\r\nPARAMETER: -DiskSpaceThreshold 50\r\n    The percentage of free space where the database is stored must have free. 0-100\r\n.EXAMPLE\r\n    -DiskSpaceThreshold 50\r\n    ## EXAMPLE OUTPUT WITH DiskSpeedThreshold ##\r\n    [MSSQLSERVER] C: is under the threshold(50%) at 20%\r\n\r\nPARAMETER: -DiskSpeedThreshold 40\r\n    A brief explanation of the parameter.\r\n.EXAMPLE\r\n    -DiskSpeedThreshold 40\r\n    ## EXAMPLE OUTPUT WITH DiskSpeedThreshold ##\r\n    [MSSQLSERVER] Disk Read\/Write latency is over 0 ms.\r\n    Path                                           InstanceName          CookedValue\r\n    ----                                           ------------          -----------\r\n    \\\\test01\\logicaldisk(c:)\\disk reads\/sec      c:               42.89807648928576\r\n    \\\\test01\\logicaldisk(c:)\\disk writes\/sec     c:                49.484308202068\r\n.OUTPUTS\r\n    None\r\n.NOTES\r\n    Minimum OS Architecture Supported: Windows 10, Windows Server 2016\r\n    Release Notes: Renamed script and added Script Variable support\r\nBy using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https:\/\/www.ninjaone.com\/fr\/conditions-dutilisation\r\n    Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. \r\n    Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. \r\n    Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. \r\n    Warranty Disclaimer: The script is provided \u201cas is\u201d and \u201cas available\u201d, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. \r\n    Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. \r\n    Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. \r\n    EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).\r\n#&gt;\r\n\r\n[CmdletBinding()]\r\nparam (\r\n    [Parameter()]\r\n    # Expects number in percentage with out the %\r\n    # Default is 10 %\r\n    [int]$DiskSpaceThreshold = 10,\r\n    [Parameter()]\r\n    # Expects number in milliseconds(ms)\r\n    # Default is 50 ms\r\n    [int]$DiskSpeedThreshold = 50,\r\n    [switch]$RequireAgentService = [System.Convert]::ToBoolean($env:requireAgentService)\r\n)\r\n\r\nbegin {\r\n    function Test-IsElevated {\r\n        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()\r\n        $p = New-Object System.Security.Principal.WindowsPrincipal($id)\r\n        $p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)\r\n    }\r\n\r\n    if ($env:DiskSpaceThreshold) {\r\n        $DiskSpaceThreshold = $env:DiskSpaceThreshold\r\n    }\r\n    if ($env:DiskSpeedThreshold) {\r\n        $DiskSpeedThreshold = $env:DiskSpeedThreshold\r\n    }\r\n\r\n    Function Get-DefaultDBLocation {\r\n        Param ([string] $vInstance)\r\n        # Get the registry key associated with the Instance Name\r\n        $vRegInst = (Get-ItemProperty -Path HKLM:\"SOFTWARE\\Microsoft\\Microsoft SQL Server\\Instance Names\\SQL\" -ErrorAction SilentlyContinue).$vInstance\r\n        $vRegPath = \"SOFTWARE\\Microsoft\\Microsoft SQL Server\\\" + $vRegInst + \"\\MSSQLServer\"\r\n        # Get the Data and Log file paths if available\r\n        $vDataPath = (Get-ItemProperty -Path HKLM:$vRegPath -ErrorAction SilentlyContinue).DefaultData\r\n        $vLogPath = (Get-ItemProperty -Path HKLM:$vRegPath -ErrorAction SilentlyContinue).DefaultLog\r\n        # Report the entries found\r\n        $Locations = [PSCustomObject]@{\r\n            Data = \"\"\r\n            Log  = \"\"\r\n        }\r\n        if ($vDataPath.Length -lt 1) {\r\n            $vRegPath = \"SOFTWARE\\Microsoft\\Microsoft SQL Server\\\" + $vRegInst + \"\\Setup\"\r\n            $vDataPath = (Get-ItemProperty -Path HKLM:$vRegPath -ErrorAction SilentlyContinue).SQLDataRoot + \"\\Data\\\"\r\n            $Locations.Data = $vDataPath\r\n        }\r\n        else {\r\n            $Locations.Data = $vDataPath\r\n        }\r\n        if ($vLogPath.Length -lt 1) {\r\n            $vRegPath = \"SOFTWARE\\Microsoft\\Microsoft SQL Server\\\" + $vRegInst + \"\\Setup\"\r\n            $vDataPath = (Get-ItemProperty -Path HKLM:$vRegPath -ErrorAction SilentlyContinue).SQLDataRoot + \"\\Data\\\"\r\n            $Locations.Log = $vDataPath\r\n        }\r\n        else {\r\n            $Locations.Log = $vDataPath\r\n        }\r\n        $Locations\r\n    }\r\n    function Get-DiskCounters {\r\n        param ($Drive)\r\n        $Counters = @(\r\n            \"\\LogicalDisk($Drive*)\\Avg. Disk sec\/Read\"\r\n            \"\\LogicalDisk($Drive*)\\Avg. Disk sec\/Write\"\r\n            \"\\LogicalDisk($Drive*)\\Disk Reads\/sec\"\r\n            \"\\LogicalDisk($Drive*)\\Disk Writes\/sec\"\r\n        )\r\n        $CounterData = Get-Counter -Counter $Counters -MaxSamples 1 -SampleInterval 10 | Select-Object -ExpandProperty CounterSamples\r\n\r\n        $CounterData | Where-Object { $_.CookedValue -gt $DiskSpeedThreshold } | Write-Output\r\n    }\r\n    function Get-DiskFreePercentage {\r\n        param ($Drive)\r\n        $TotalSize = Get-Partition | Where-Object { $_.DriveLetter -like $Drive } | Select-Object -ExpandProperty Size\r\n        $Free = Get-PSDrive -Name $Drive | Select-Object -ExpandProperty Free\r\n        try {\r\n            $Free \/ $TotalSize * 100\r\n        }\r\n        catch {\r\n            0\r\n        }\r\n    }\r\n    $script:HasErrors = $false\r\n}\r\nprocess {\r\n    Write-Host\r\n    if (-not (Test-IsElevated)) {\r\n        Write-Error -Message \"Access Denied. Please run with Administrator privileges.\"\r\n        exit 1\r\n    }\r\n    $Services = Get-Service | Where-Object { $_.DisplayName -like \"SQL Server*\" }\r\n    $SqlDbServices = $Services | Where-Object { $_.DisplayName -like \"SQL Server (*\" } | Select-Object -ExpandProperty DisplayName\r\n    $SqlDbNames = $SqlDbServices | ForEach-Object {\r\n        \"$_\" -split '\\(' -replace '\\)' | Select-Object -Last 1\r\n    }\r\n\r\n    # Get all MS SQL Databases\r\n    $Databases = $SqlDbNames | ForEach-Object {\r\n        $DbName = $_\r\n        $DbLocations = Get-DefaultDBLocation -vInstance $DbName\r\n        [PSCustomObject]@{\r\n            Name            = $DbName\r\n            DatabaseService = $Services | Where-Object { $_.DisplayName -like \"SQL Server ($DbName)\" }\r\n            AgentService    = $Services | Where-Object { $_.DisplayName -like \"*Agent *$DbName*\" }\r\n            DataPath        = $DbLocations.Data\r\n            LogPath         = $DbLocations.Log\r\n        }\r\n    }\r\n\r\n    $Databases | ForEach-Object {\r\n        $Database = $_\r\n        $DatabaseService = $Database.DatabaseService\r\n        $AgentService = $Database.AgentService\r\n        $DatabaseName = $Database.Name\r\n        $Drive = $Database.DataPath -split ':\\\\' | Select-Object -First 1\r\n\r\n        # Check service status\r\n        if ($DatabaseService.Status -notlike \"Running\") {\r\n            Write-Host \"[$DatabaseName] Database Service is not running.\"\r\n            $script:HasErrors = $true\r\n        }\r\n        if ($AgentService.Status -notlike \"Running\") {\r\n            Write-Host \"[$DatabaseName] Database Agent Service is not running.\"\r\n            if ($RequireAgentService) {\r\n                $script:HasErrors = $true\r\n            }\r\n        }\r\n\r\n        # Get disk free space percentage\r\n        $FreePercent = Get-DiskFreePercentage -Drive $Drive\r\n        if ($FreePercent -lt $DiskSpaceThreshold) {\r\n            Write-Host \"[$DatabaseName] $($Drive): is under the threshold($DiskSpaceThreshold%) at $([System.Math]::Round($FreePercent,0))%\"\r\n            $script:HasErrors = $true\r\n        }\r\n\r\n        # Get disk latency\r\n        $HighCounters = Get-DiskCounters -Drive $Drive\r\n        if ($HighCounters) {\r\n            $HighCounters | ForEach-Object {\r\n                Write-Host \"[$DatabaseName] Disk Read\/Write latency is over $DiskSpeedThreshold ms at $([System.Math]::Round($_.CookedValue,2)) for $($_.InstanceName).\"\r\n            }\r\n            $HighCounters | Out-String | Write-Host\r\n            $script:HasErrors = $true\r\n        }\r\n    }\r\n\r\n    if ($script:HasErrors) {\r\n        exit 1\r\n    }\r\n    else {\r\n        Write-Host \"SQL Server's services are running.\"\r\n        Write-Host \"SQL Server's disk latency is below threshold.\"\r\n        Write-Host \"SQL Server's disk free space is above threshold.\"\r\n        exit 0\r\n    }\r\n    \r\n}\r\nend {\r\n    \r\n    \r\n    \r\n}<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"in-context-cta\"><p>Acc\u00e9dez \u00e0 plus de 700 scripts dans le Dojo NinjaOne<\/p>\n<p><a href=\"https:\/\/www.ninjaone.com\/fr\/phase-de-test-gratuit\/\">Obtenir l&rsquo;acc\u00e8s<\/a><\/p>\n<\/div>\n<h2>Description d\u00e9taill\u00e9e<\/h2>\n<p>Le script commence par une s\u00e9rie de param\u00e8tres permettant une personnalisation en fonction des besoins de surveillance sp\u00e9cifiques, tels que les seuils d&rsquo;espace disque et de vitesse. Il comprend plusieurs fonctions :<\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><strong>Test-IsElevated<\/strong>\u00a0: V\u00e9rifie si le script s&rsquo;ex\u00e9cute avec les privil\u00e8ges d&rsquo;administrateur, indispensables pour acc\u00e9der \u00e0 certaines informations du syst\u00e8me.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><strong>Get-DefaultDBLocation<\/strong>: D\u00e9termine l&#8217;emplacement par d\u00e9faut des fichiers de donn\u00e9es et de journaux pour les instances du serveur SQL.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><strong>Get-DiskCounters<\/strong>: R\u00e9cup\u00e8re les mesures de performance du disque.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"4\" data-aria-level=\"1\"><strong>Get-DiskFreePercentage<\/strong>: Calcule le pourcentage d&rsquo;espace disque libre.<\/li>\n<\/ul>\n<p>Dans son processus principal, le script \u00e9value l&rsquo;\u00e9tat des services SQL Server, des services d&rsquo;agent, de l&rsquo;espace disque et de la latence du disque. Si l&rsquo;un des param\u00e8tres est inf\u00e9rieur aux seuils d\u00e9finis ou si les services ne sont pas en cours d&rsquo;ex\u00e9cution, une erreur est signal\u00e9e.<\/p>\n<h2>Cas d&rsquo;utilisation potentiels<\/h2>\n<p>Imaginez une entreprise MSP charg\u00e9e de la maintenance de l&rsquo;environnement SQL Server d&rsquo;un client. Elle peut programmer l&rsquo;ex\u00e9cution p\u00e9riodique de ce script, ce qui permet d&rsquo;identifier et de r\u00e9soudre rapidement tout probl\u00e8me potentiel li\u00e9 aux services de base de donn\u00e9es, \u00e0 l&rsquo;espace disque ou \u00e0 la latence, r\u00e9duisant ainsi le risque d&rsquo;indisponibilit\u00e9 du serveur ou de d\u00e9gradation des performances.<\/p>\n<h2>Comparaisons<\/h2>\n<p>Les m\u00e9thodes traditionnelles pour surveiller un serveur SQL impliquent souvent des contr\u00f4les manuels ou des outils tiers. Ce script, cependant, fournit une approche plus int\u00e9gr\u00e9e et automatis\u00e9e, permettant des alertes en temps r\u00e9el et minimisant l&rsquo;erreur humaine.<\/p>\n<h2>FAQ<\/h2>\n<p><strong>Q1 : \u00c0 quelle fr\u00e9quence le script doit-il \u00eatre ex\u00e9cut\u00e9 ?\u00a0<\/strong><br \/>\nA1 : Cela d\u00e9pend de la criticit\u00e9 de l&rsquo;environnement SQL Server ; pour les bases de donn\u00e9es \u00e0 fort trafic, une programmation quotidienne ou m\u00eame horaire peut \u00eatre appropri\u00e9e.<\/p>\n<p><strong>Q2 : Le script peut-il \u00eatre modifi\u00e9 pour diff\u00e9rentes versions du serveur SQL ?\u00a0<\/strong><br \/>\nA2 : Oui, il peut \u00eatre adapt\u00e9 \u00e0 diff\u00e9rentes versions, bien que certains ajustements puissent \u00eatre n\u00e9cessaires en fonction des caract\u00e9ristiques et des configurations sp\u00e9cifiques de la version.<\/p>\n<p><strong>Q3 : Est-il n\u00e9cessaire d&rsquo;avoir des connaissances en PowerShell pour utiliser ce script ?\u00a0<\/strong><br \/>\nA3 : Des connaissances de base de PowerShell sont utiles, mais le script est con\u00e7u pour \u00eatre facile \u00e0 utiliser, avec des instructions claires sur les param\u00e8tres.<\/p>\n<h2>Implications<\/h2>\n<p>Une surveillance inefficace peut entra\u00eener des temps d&rsquo;arr\u00eat du serveur, des r\u00e9ponses lentes aux requ\u00eates, voire des pertes de donn\u00e9es. Ce script att\u00e9nue ces risques, contribuant ainsi \u00e0 un environnement informatique plus s\u00fbr et plus fiable.<\/p>\n<h2>Recommandations<\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\">Mettez r\u00e9guli\u00e8rement \u00e0 jour le script pour l&rsquo;adapter aux nouvelles versions du serveur SQL ou aux changements organisationnels.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\">Combinez ce script avec d&rsquo;autres outils de surveillance pour obtenir une vue d&rsquo;ensemble de l&rsquo;infrastructure informatique.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\">Formez le personnel informatique \u00e0 PowerShell afin de maximiser les avantages du script.<\/li>\n<\/ul>\n<h2>Conclusion :<\/h2>\n<p>Dans le domaine de la gestion des bases de donn\u00e9es et de la <a href=\"https:\/\/www.ninjaone.com\/fr\/gestion-informatique-grande-entreprise\/infrastructure\/\">surveillance de l&rsquo;infrastructure informatique<\/a>, des outils comme NinjaOne offrent des solutions performantes qui compl\u00e8tent les <a href=\"https:\/\/www.ninjaone.com\/fr\/script-hub\">scripts PowerShell<\/a>. NinjaOne peut am\u00e9liorer les capacit\u00e9s des scripts de ce type en fournissant une plateforme unifi\u00e9e pour la surveillance, l&rsquo;alerte et l&rsquo;automatisation des r\u00e9ponses aux probl\u00e8mes de performance du serveur SQL. En int\u00e9grant des scripts \u00e0 ces outils, les entreprises peuvent mettre en place une strat\u00e9gie de gestion informatique plus proactive et plus efficace, en veillant \u00e0 ce que leurs serveurs SQL restent performants, r\u00e9actifs et fiables.<\/p>\n","protected":false},"author":35,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"no","_lmt_disable":""},"operating_system":[4212],"use_cases":[4285],"class_list":["post-235708","script_hub","type-script_hub","status-publish","hentry","script_hub_category-windows"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub\/235708","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/comments?post=235708"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media?parent=235708"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/operating_system?post=235708"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/use_cases?post=235708"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}