{"id":353661,"date":"2024-08-27T10:04:36","date_gmt":"2024-08-27T10:04:36","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/surveillance-de-l-espace-disque-hyper-v-powershell\/"},"modified":"2024-10-13T19:09:01","modified_gmt":"2024-10-13T19:09:01","slug":"surveillance-de-l-espace-disque-hyper-v-powershell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/fr\/script-hub\/surveillance-de-l-espace-disque-hyper-v-powershell\/","title":{"rendered":"Guide complet pour la surveillance de l&rsquo;espace disque Hyper-V avec PowerShell"},"content":{"rendered":"<p>La gestion efficace de l&rsquo;espace disque est un aspect essentiel pour le maintien d&rsquo;une infrastructure informatique efficace et fiable. Un outil puissant pour les professionnels de l&rsquo;informatique est PowerShell, un cadre d&rsquo;automatisation des t\u00e2ches de Microsoft. Aujourd&rsquo;hui, nous allons nous pencher sur un script PowerShell con\u00e7u pour <strong>surveiller l&rsquo;espace libre sur les volumes partag\u00e9s dans un environnement de cluster Hyper-V<\/strong>. Ce script est particuli\u00e8rement utile pour les professionnels de l&rsquo;informatique et les <a href=\"https:\/\/www.ninjaone.com\/fr\/quest-ce-quun-msp\" target=\"_blank\" rel=\"noopener\">fournisseurs de services g\u00e9r\u00e9s (MSP)<\/a> qui doivent s&rsquo;assurer que leurs syst\u00e8mes fonctionnent sans probl\u00e8mes et \u00e9viter les <a href=\"https:\/\/www.ninjaone.com\/it-hub\/it-service-management\/what-is-network-downtime\/\" target=\"_blank\" rel=\"noopener\">temps d&rsquo;arr\u00eat<\/a> dus \u00e0 des probl\u00e8mes de stockage.<\/p>\n<h2>Contexte<\/h2>\n<p>Le contr\u00f4le de l&rsquo;espace disque est essentiel pour \u00e9viter les pannes inattendues et garantir que les applications et les services fonctionnent sans interruption. Les volumes partag\u00e9s de cluster Hyper-V peuvent h\u00e9berger de nombreuses machines virtuelles et un manque d&rsquo;espace peut avoir de graves cons\u00e9quences. Ce script PowerShell simplifie le processus de surveillance, permettant aux administrateurs de garder un \u0153il sur l&rsquo;espace libre et de prendre des mesures avant que des probl\u00e8mes ne surviennent.<\/p>\n<h2>Le script\u00a0:<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">Requires -Version 5.1\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Hyper-V Monitor shared volume disk free space. Must be ran as a Local or Domain Admin user.\r\n.DESCRIPTION\r\n    Hyper-V Monitor shared volume disk free space. Must be ran as a Local or Domain Admin user.\r\n\r\n.EXAMPLE\r\n    (No Parameters)\r\n    ## EXAMPLE OUTPUT WITHOUT PARAMS ##\r\nName                       Path                  Size(GB) FreeSpace(GB) UsedSpace(GB) PercentFree\r\n----                       ----                  -------- ------------- ------------- -----------\r\nCluster Virtual Disk (vd1) C:\\ClusterStorage\\vd1 3,068.98 168.77        2900.21       9.99\r\n\r\nPARAMETER: -MinimumPercentage 20\r\n    Only errors when any shared volume disk is below the specified percentage.\r\n    Defaults to 10 percent.\r\n.EXAMPLE\r\n    -MinimumPercentage 20\r\n    ## EXAMPLE OUTPUT WITH MinimumPercentage ##\r\nName                       Path                  Size(GB) FreeSpace(GB) UsedSpace(GB) PercentFree\r\n----                       ----                  -------- ------------- ------------- -----------\r\nCluster Virtual Disk (vd1) C:\\ClusterStorage\\vd1 3,068.98 168.77        2900.21       9.99\r\n\r\nPARAMETER: -MinimumFreeBytes 1073741824\r\n    Only errors when any shared volume disk is below the specified percentage.\r\n    Defaults to 1GB or 1073741824 bytes.\r\n.EXAMPLE\r\n    -MinimumFreeBytes 1073741824\r\n    ## EXAMPLE OUTPUT WITH MinimumFreeBytes ##\r\nName                       Path                  Size(GB) FreeSpace(GB) UsedSpace(GB) PercentFree\r\n----                       ----                  -------- ------------- ------------- -----------\r\nCluster Virtual Disk (vd1) C:\\ClusterStorage\\vd1 3,068.98 168.77        2900.21       9.99\r\n\r\nPARAMETER: -ExcludeDrivesByName MyDisk\r\n    Excludes drives that contains the text MyDisk in its name.\r\n.EXAMPLE\r\n    -ExcludeDrivesByName 1073741824\r\n    ## EXAMPLE OUTPUT WITH ExcludeDrivesByName ##\r\nName                       Path                  Size(GB) FreeSpace(GB) UsedSpace(GB) PercentFree\r\n----                       ----                  -------- ------------- ------------- -----------\r\nCluster Virtual Disk (vd1) C:\\ClusterStorage\\vd1 3,068.98 168.77        2900.21       9.99\r\n\r\nPARAMETER: -ExcludeDrivesByPath C:\\ClusterStorage\\MyDisk\r\n    Excludes drives that contains the text MyDisk in its name.\r\n.EXAMPLE\r\n    -ExcludeDrivesByPath C:\\ClusterStorage\\MyDisk\r\n.EXAMPLE\r\n    -ExcludeDrivesByPath MyDisk\r\n    ## EXAMPLE OUTPUT WITH ExcludeDrivesByPath ##\r\nName                       Path                  Size(GB) FreeSpace(GB) UsedSpace(GB) PercentFree\r\n----                       ----                  -------- ------------- ------------- -----------\r\nCluster Virtual Disk (vd1) C:\\ClusterStorage\\vd1 3,068.98 168.77        2900.21       9.99\r\n\r\nPARAMETER: -CustomFieldParam \"ReplaceMeWithAnyMultilineCustomField\"\r\n    Saves the results to a multi-line string custom field.\r\n.EXAMPLE\r\n    -CustomFieldParam \"ReplaceMeWithAnyMultilineCustomField\"\r\n    ## EXAMPLE OUTPUT WITH CustomFieldParam ##\r\nName                       Path                  Size(GB) FreeSpace(GB) UsedSpace(GB) PercentFree\r\n----                       ----                  -------- ------------- ------------- -----------\r\nCluster Virtual Disk (vd1) C:\\ClusterStorage\\vd1 3,068.98 168.77        2900.21       9.99\r\n.OUTPUTS\r\n    None\r\n.NOTES\r\n    Minimum OS Architecture Supported: Windows Server 2016\r\n    Release Notes: Initial Release\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\/terms-of-use.\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    [int]$MinimumPercentage = 10,\r\n    $MinimumFreeBytes = 1GB,\r\n    [String]$ExcludeDrivesByName,\r\n    [String]$ExcludeDrivesByPath,\r\n    [string]$CustomFieldParam\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    function Test-IsSystem {\r\n        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()\r\n        return $id.Name -like \"NT AUTHORITY*\" -or $id.IsSystem\r\n    }\r\n    function Get-FriendlySize {\r\n        param($Bytes)\r\n        # Converts Bytes to the highest matching unit\r\n        $Sizes = 'Bytes,KB,MB,GB,TB,PB,EB,ZB' -split ','\r\n        for ($i = 0; ($Bytes -ge 1kb) -and ($i -lt $Sizes.Count); $i++) { $Bytes \/= 1kb }\r\n        $N = 2\r\n        if ($i -eq 0) { $N = 0 }\r\n        if ($Bytes) { \"$([System.Math]::Round($Bytes,$N)) $($Sizes[$i])\" }else { \"0 B\" }\r\n    }\r\n    function Get-Size {\r\n        param (\r\n            [string]$String,\r\n            [ValidateSet(\"PB\", \"TB\", \"GB\", \"MB\", \"KB\", \"B\", \"Bytes\")][string]$DefaultSize = \"GB\"\r\n        )\r\n        switch -wildcard ($String) {\r\n            '*PB' { [int64]$($String -replace '[^\\d+]+') * 1PB; break }\r\n            '*TB' { [int64]$($String -replace '[^\\d+]+') * 1TB; break }\r\n            '*GB' { [int64]$($String -replace '[^\\d+]+') * 1GB; break }\r\n            '*MB' { [int64]$($String -replace '[^\\d+]+') * 1MB; break }\r\n            '*KB' { [int64]$($String -replace '[^\\d+]+') * 1KB; break }\r\n            '*B' { [int64]$($String -replace '[^\\d+]+') * 1; break }\r\n            '*Bytes' { [int64]$($String -replace '[^\\d+]+') * 1; break }\r\n            Default { Get-Size -String \"$String $DefaultSize\" }\r\n        }\r\n    }\r\n    function Invoke-FilterDisks {\r\n        [CmdletBinding()]\r\n        param(\r\n            [parameter(ValueFromPipeline = $true)]\r\n            $Disks\r\n        )\r\n        process {\r\n            $Disks | ForEach-Object {\r\n                # Check if exclude by name is needed\r\n                if ($([string]::IsNullOrEmpty($ExcludeDrivesByName) -or [string]::IsNullOrWhiteSpace($ExcludeDrivesByName))) {\r\n                    $_\r\n                }\r\n                else {\r\n                    if (\r\n                        $_.Name -like \"*$ExcludeDrivesByName*\"\r\n                    ) {\r\n                        # Output Nothing\r\n                    }\r\n                    else {\r\n                        $_\r\n                    }\r\n                }\r\n            } | ForEach-Object {\r\n                # Check if exclude by name is needed\r\n                if ($([string]::IsNullOrEmpty($ExcludeDrivesByPath) -or [string]::IsNullOrWhiteSpace($ExcludeDrivesByPath))) {\r\n                    $_\r\n                }\r\n                else {\r\n                    if (\r\n                        $_.Path -like \"*$ExcludeDrivesByPath*\"\r\n                    ) {\r\n                        # Output Nothing\r\n                    }\r\n                    else {\r\n                        $_\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    }\r\n    if ($env:MinimumPercentage) {\r\n        $MinimumPercentage = $env:MinimumPercentage\r\n    }\r\n    if ($env:minimumFreeSpace) {\r\n        $MinimumFreeBytes = Get-Size -String $env:minimumFreeSpace\r\n    }\r\n    if ($env:ExcludeDrivesByName) {\r\n        $ExcludeDrivesByName = $env:ExcludeDrivesByName\r\n    }\r\n    if ($env:ExcludeDrivesByPath) {\r\n        $ExcludeDrivesByPath = $env:ExcludeDrivesByPath\r\n    }\r\n    if ($env:CustomFieldParam) {\r\n        $CustomFieldParam = $env:CustomFieldParam\r\n    }\r\n}\r\nprocess {\r\n    if (Test-IsSystem) {\r\n        Write-Error -Message \"Access Denied. Please run with a Domain Account or a Local Account that has permissions to access this node.\"\r\n        exit 1\r\n    }\r\n\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\r\n    Import-Module FailoverClusters -ErrorAction SilentlyContinue\r\n\r\n    if (-not $(Get-Command -Name \"Get-Cluster\" -ErrorAction SilentlyContinue)) {\r\n        Write-Error \"[Error] Must run this script on a server that is apart of a Cluster or can communicate with a Cluster.\"\r\n        exit 1\r\n    }\r\n\r\n    try {\r\n        Get-ClusterNode -ErrorAction Stop | Out-Null\r\n    }\r\n    catch {\r\n        Write-Error \"[Error] Failed to get Cluster Nodes.\"\r\n        exit 1\r\n    }\r\n\r\n    # Get Cluster Shared Volume Info\r\n    $Volumes = foreach ( $csv in $(Get-ClusterSharedVolume) ) {\r\n        foreach ( $csvinfo in $($csv | Select-Object -Property Name -ExpandProperty SharedVolumeInfo) ) {\r\n            [PSCustomObject]@{\r\n                Name        = $csv.Name\r\n                Path        = $csvinfo.FriendlyVolumeName\r\n                Size        = $csvinfo.Partition.Size\r\n                FreeSpace   = $csvinfo.Partition.FreeSpace\r\n                UsedSpace   = $csvinfo.Partition.UsedSpace\r\n                PercentFree = $csvinfo.Partition.PercentFree\r\n            }\r\n        }\r\n    }\r\n\r\n    # Prep Format-Table substitutions\r\n    $Size = @{ Label = \"Size(GB)\" ; Expression = { (Get-FriendlySize -Bytes $_.Size) } }\r\n    $FreeSpace = @{ Label = \"FreeSpace(GB)\" ; Expression = { (Get-FriendlySize -Bytes $_.FreeSpace) } }\r\n    $UsedSpace = @{ Label = \"UsedSpace(GB)\" ; Expression = { (Get-FriendlySize -Bytes $_.UsedSpace) } }\r\n    $PercentFree = @{ Label = \"PercentFree\" ; Expression = { ($_.PercentFree) } }\r\n    # Sort disks by FreeSpace\r\n    $Disks = $Volumes | Sort-Object FreeSpace\r\n    # Save results as a string\r\n    $DisksFormattedString = $Disks | Format-Table -AutoSize Name, Path, $Size, $FreeSpace, $UsedSpace, $PercentFree | Out-String\r\n\r\n    # If using a custom field sent that to the specified custom field, should be a multi-line\r\n    if ($CustomFieldParam) {\r\n        Ninja-Property-Set -Name $CustomFieldParam -Value $DisksFormattedString\r\n    }\r\n\r\n    # Loop through each disk\r\n    $DiskUnderPercentage = $Disks | Invoke-FilterDisks | Where-Object { $_.PercentFree -lt $MinimumPercentage }\r\n    $DiskUnderFreeBytes = $Disks | Invoke-FilterDisks | Where-Object { $_.FreeSpace -lt $MinimumFreeBytes }\r\n\r\n    if ($DiskUnderPercentage -or $DiskUnderFreeBytes) {\r\n        if ($DiskUnderPercentage) {\r\n            Write-Host \"[Issue] One or more Disks under $MinimumPercentage % free!\"\r\n        }\r\n        if ($DiskUnderFreeBytes) {\r\n            Write-Host \"[Issue] One or more Disks under $(Get-FriendlySize -Bytes $MinimumFreeBytes) free!\"\r\n        }\r\n        $DisksFormattedString | Write-Host\r\n        exit 1\r\n    }\r\n\r\n    # List all shared volumes\r\n    if (-not $DiskUnderPercentage) {\r\n        Write-Host \"[Info] One or more Disks over $MinimumPercentage % free.\"\r\n    }\r\n    if (-not $DiskUnderFreeBytes) {\r\n        Write-Host \"[Info] One or more Disks over $(Get-FriendlySize -Bytes $MinimumFreeBytes) free.\"\r\n    }\r\n    $DisksFormattedString | Write-Host\r\n    exit 0\r\n}\r\nend {\r\n    \r\n    \r\n    \r\n}<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"blog-cta-new blog-cta-style-1\"><div class=\"cta-left\"><h2><\/h2><p><\/p><\/div><div class=\"cta-right\"><a class=\"button\" href=\"\"><\/a><\/div><\/div>\n<h2>Description d\u00e9taill\u00e9e<\/h2>\n<p>D\u00e9cortiquons le script \u00e9tape par \u00e9tape pour comprendre sa fonctionnalit\u00e9 et la mani\u00e8re dont il peut \u00eatre utilis\u00e9 efficacement.<\/p>\n<p><strong>1. Conditions pr\u00e9alables et configuration initiale<\/strong> Le script n\u00e9cessite la version 5.1 de PowerShell et doit \u00eatre ex\u00e9cut\u00e9 avec des droits d&rsquo;administrateur. Il commence par d\u00e9finir divers param\u00e8tres tels que MinimumPercentage, MinimumFreeBytes, ExcludeDrivesByName, ExcludeDrivesByPath et CustomFieldParam.<\/p>\n<p><strong>2. Fonctions de contr\u00f4le des privil\u00e8ges et de calcul de la taille<\/strong><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&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=\"2\">Test-IsElevated v\u00e9rifie si le script est ex\u00e9cut\u00e9 avec des privil\u00e8ges d&rsquo;administrateur.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&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=\"2\">Test-IsSystem permet de s&rsquo;assurer que le script n&rsquo;est pas ex\u00e9cut\u00e9 en tant que compte syst\u00e8me.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&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=\"2\">Get-FriendlySize et Get-Size convertissent les valeurs en octets en unit\u00e9s plus lisibles telles que Ko, Mo, Go, etc.<\/li>\n<\/ul>\n<p><strong>3. Filtrage et variables d&rsquo;environnement<\/strong> Le script met en place des fonctions pour filtrer les lecteurs en fonction de noms ou de chemins d&rsquo;acc\u00e8s sp\u00e9cifi\u00e9s. Il v\u00e9rifie \u00e9galement la pr\u00e9sence de variables d&rsquo;environnement susceptibles de remplacer les param\u00e8tres du script.<\/p>\n<p><strong>4. R\u00e9cup\u00e9ration d&rsquo;informations sur les clusters et les volumes<\/strong> Le script importe le module FailoverClusters et v\u00e9rifie qu&rsquo;il est ex\u00e9cut\u00e9 sur un serveur faisant partie d&rsquo;un cluster. Il r\u00e9cup\u00e8re ensuite des informations sur les volumes partag\u00e9s du cluster, notamment leur taille, l&rsquo;espace libre, l&rsquo;espace utilis\u00e9 et le pourcentage d&rsquo;espace libre.<\/p>\n<p><strong>5. Formatage et r\u00e9sultat<\/strong> Le script formate les informations du disque pour qu&rsquo;elles soient lisibles et v\u00e9rifie si des volumes sont inf\u00e9rieurs aux seuils d&rsquo;espace libre sp\u00e9cifi\u00e9s. Si des probl\u00e8mes sont d\u00e9tect\u00e9s, il fournit les d\u00e9tails et se finit avec un statut d&rsquo;erreur. Dans le cas contraire, il confirme que tous les volumes disposent de suffisamment d&rsquo;espace libre.<\/p>\n<h2>Cas d&rsquo;utilisation potentiels<\/h2>\n<p>Imaginez un administrateur informatique responsable d&rsquo;un cluster Hyper-V h\u00e9bergeant des machines virtuelles cruciales. Cet administrateur peut utiliser le script pour automatiser la surveillance de l&rsquo;espace disque, ce qui lui permet d&rsquo;\u00eatre alert\u00e9 avant qu&rsquo;un volume ne manque cruellement d&rsquo;espace. Cette approche proactive lui permet d&rsquo;allouer un espace de stockage suppl\u00e9mentaire ou de nettoyer les fichiers inutiles, afin d&rsquo;\u00e9viter les pannes potentielles et de maintenir les performances du syst\u00e8me.<\/p>\n<h2>Comparaisons<\/h2>\n<p>Par rapport \u00e0 une surveillance manuelle ou \u00e0 l&rsquo;utilisation d&rsquo;outils int\u00e9gr\u00e9s de base, ce script fournit une approche plus automatis\u00e9e et plus d\u00e9taill\u00e9e. Il v\u00e9rifie non seulement l&rsquo;espace libre, mais permet \u00e9galement une personnalisation bas\u00e9e sur les noms de volumes, les chemins d&rsquo;acc\u00e8s et les exigences sp\u00e9cifiques en mati\u00e8re d&rsquo;espace libre. D&rsquo;autres m\u00e9thodes, telles que des outils de surveillance tiers, peuvent offrir des fonctionnalit\u00e9s similaires, mais elles sont souvent plus co\u00fbteuses et n\u00e9cessitent une configuration suppl\u00e9mentaire.<\/p>\n<h2>FAQ<\/h2>\n<h3>Q\u00a0: Ce script peut-il \u00eatre ex\u00e9cut\u00e9 sur n&rsquo;importe quelle version de Windows Server ?<\/h3>\n<p>R\u00a0: Le script prend en charge Windows Server 2016 et les versions ult\u00e9rieures en raison des exigences du module FailoverClusters.<\/p>\n<h3>Q\u00a0: Quelles sont les autorisations n\u00e9cessaires pour ex\u00e9cuter ce script ?<\/h3>\n<p>R\u00a0: Le script doit \u00eatre ex\u00e9cut\u00e9 avec les privil\u00e8ges d&rsquo;administrateur local ou de domaine pour acc\u00e9der aux informations n\u00e9cessaires sur le cluster.<\/p>\n<h3>Q\u00a0: Comment puis-je exclure certains volumes de la surveillance ?<\/h3>\n<p>R\u00a0: Vous pouvez utiliser les param\u00e8tres ExcludeDrivesByName ou ExcludeDrivesByPath pour filtrer des volumes sp\u00e9cifiques en fonction de leur nom ou de leur chemin d&rsquo;acc\u00e8s.<\/p>\n<h2>Implications<\/h2>\n<p>Les r\u00e9sultats de ce script peuvent avoir un impact significatif sur les op\u00e9rations informatiques. En identifiant les volumes dont l&rsquo;espace libre est insuffisant, les administrateurs peuvent prendre des mesures pr\u00e9ventives pour \u00e9viter les interruptions de service. Cette surveillance proactive am\u00e9liore \u00e9galement la fiabilit\u00e9 et les performances globales du syst\u00e8me, contribuant ainsi \u00e0 un environnement informatique plus stable.<\/p>\n<h2>Recommandations<\/h2>\n<p>Lors de l&rsquo;utilisation de ce script, il est important de suivre les bonnes pratiques suivantes :<\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" 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\">Planifiez l&rsquo;ex\u00e9cution du script \u00e0 intervalles r\u00e9guliers \u00e0 l&rsquo;aide d&rsquo;un planificateur de t\u00e2ches ou d&rsquo;outils similaires.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" 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\">Personnalisez les param\u00e8tres en fonction des besoins sp\u00e9cifiques de votre environnement.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" 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\">Assurez-vous que vous disposez des autorisations suffisantes et que vous ex\u00e9cutez le script sur les serveurs appropri\u00e9s.<\/li>\n<\/ul>\n<h2><strong>Conclusion<\/strong><\/h2>\n<p>Les scripts <a href=\"https:\/\/www.ninjaone.com\/it-hub\/endpoint-management\/what-is-powershell\/\" target=\"_blank\" rel=\"noopener\">PowerShell<\/a> comme celui-ci sont des outils inestimables pour les professionnels de l&rsquo;informatique et les entreprises MSP, car ils offrent de puissantes capacit\u00e9s d&rsquo;automatisation pour g\u00e9rer et surveiller les syst\u00e8mes importants. En int\u00e9grant de tels scripts dans leurs flux de travail, les administrateurs peuvent mieux contr\u00f4ler leur infrastructure, garantir des performances optimales et pr\u00e9venir les probl\u00e8mes potentiels avant qu&rsquo;ils ne s&rsquo;aggravent.<\/p>\n<p><a href=\"https:\/\/www.ninjaone.com\/fr\/\" target=\"_blank\" rel=\"noopener\">NinjaOne<\/a>, l&rsquo;un des principaux logiciels d&rsquo;op\u00e9rations informatiques, peut encore am\u00e9liorer ce processus en int\u00e9grant l&rsquo;ex\u00e9cution de scripts \u00e0 ses capacit\u00e9s de surveillance et de gestion, fournissant ainsi une solution compl\u00e8te pour la gestion de l&rsquo;infrastructure informatique.<\/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":"","_lmt_disable":""},"operating_system":[4212],"use_cases":[4281,4285],"class_list":["post-353661","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\/353661","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=353661"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media?parent=353661"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/operating_system?post=353661"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/use_cases?post=353661"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}