Get-McAfeeFilteredWebContent: Télécharger du Contenu Sécurisé.

0
(0)

Comment utiliser la fonction PowerShell Get-McAfeeFilteredWebContent pour récupérer du contenu filtré par McAfee Web Gateway

La fonction Get-McAfeeFilteredWebContent est une commande PowerShell puissante qui permet de récupérer le contenu web filtré par McAfee Web Gateway. En effet, cette commande s’assure que les fichiers se téléchargent correctement après la fin de l’analyse antivirus de McAfee. Par conséquent, les administrateurs système et les professionnels de la sécurité peuvent utiliser cette fonction pour automatiser la récupération de contenu web, particulièrement dans des environnements sécurisés. En outre, cette automatisation contribue à améliorer l’efficacité et la sécurité des opérations.

Qu’est-ce que la fonction Get-McAfeeFilteredWebContent ?

La fonction Get-McAfeeFilteredWebContent permet d’interagir directement avec McAfee Web Gateway pour télécharger des fichiers après l’analyse antivirus. Cette commande est utile lorsque vous devez télécharger des fichiers depuis des sites web protégés par McAfee et que vous souhaitez automatiser le processus à l’aide de scripts PowerShell.

Utilisation

PowerShell
Function Get-McAfeeWebContent {
    [CmdletBinding(HelpUri='http://go.microsoft.com/fwlink/?LinkID=217035')]
    param(
        [Parameter(Mandatory=$true, ValueFromPipeline=$true,Position=0)]
        [ValidateNotNullOrEmpty()]
        [uri] ${Uri},

        [Parameter(Mandatory=$true)]
        [string] ${OutFile},

        [switch] ${UseBasicParsing},

        [switch] ${DisableKeepAlive}

    )

    process {
        try {
            $response = Invoke-WebRequest @PSBoundParameters -PassThru

            if ($response.Headers.ContainsKey('Via') -and $response.Headers.Via.Contains('McAfee Web Gateway')) {
                $unixEpochStart = [DateTime]::new(1970,1,1,0,0,0,([DateTimeKind]::Utc))
                $content = $response.Content
                if ($content -match '<meta id="progresspageid" content="(.*?)">') {
                        $RequestID = $matches[1]
                        Write-Verbose "Detected request ID of '$RequestID'"
                }
                if ($content -match '/mwg-internal/(.*?)/files/') {
                    $URLPart1 = $matches[1]
                    Write-Verbose "Detected internal URL with folder '$URLPart1'"
                }
                $requestDomain = $Uri.ToString().Split('/')[0..2] -join '/'
                $statusComplete = $false

                While (!$statusComplete) {
                    Start-Sleep -Seconds 3
                    $statusUri = "$requestDomain/mwg-internal/$URLPart1/progress?id=$RequestID&a=1&$([Int64]([DateTime]::UtcNow - $unixEpochStart).TotalMilliseconds)"
                    Write-Verbose "Requesting status URI: $statusUri"
                    $PSBoundParameters['Uri'] = $statusUri
                    $statusResponse = Invoke-WebRequest @PSBoundParameters -PassThru
                    if ($statusResponse.StatusCode -eq 200) {
                        $Global:colStat = $statusResponse.Content.Split(';')
                        if ($colStat[3] -eq 1 -or $colStat[3] -eq $null) {
                            Write-Verbose "Detected completion status. Attempting request of original content"
                            $statusComplete = $true
                            $PSBoundParameters['Uri'] = "$requestDomain/mwg-internal/$URLPart1/progress?id=$RequestID&dl"
                            $result = Invoke-WebRequest @PSBoundParameters
                        } elseif ($colStat[4] -eq 0) {
                            Write-Verbose "Downloaded $($colStat[0]) of $($colStat[1])"
                        } else {
                            Write-Verbose "Scanning in progress ($($colStat[4])s)"
                        }
                    }
                }
            }
        } catch {
            throw $_
        }
    }
}

Paramètres

  • Uri: Paramètre obligatoire spécifiant l’URI du contenu web à récupérer.
  • OutFile: Paramètre obligatoire spécifiant le chemin où le contenu téléchargé sera enregistré.
  • UseBasicParsing: Commutateur facultatif indiquant s’il faut utiliser une analyse de base pour la requête web.
  • DisableKeepAlive: Commutateur facultatif indiquant s’il faut désactiver le maintien de connexion HTTP pour la requête web.

Exemple d’utilisation

Voici un exemple simple d’utilisation de la fonction Get-McAfeeFilteredWebContent :

PowerShell
Get-McAfeeFilteredWebContent -Uri "https://example.com" -OutFile "fichier_telecharge.txt"

Cette commande récupère le contenu web depuis « https://example.com » et le sauvegarde dans un fichier nommé « fichier_telecharge.txt ».

Remarques

Cette fonction est conçue pour fonctionner spécifiquement avec McAfee Web Gateway afin de garantir le téléchargement réussi des fichiers après l’analyse antivirus.

Par ailleurs, des paramètres et des commutateurs supplémentaires sont disponibles pour la personnalisation et l’optimisation en fonction des besoins spécifiques.


Cette publication était-elle utile ?

Cliquez sur une étoile pour l'évaluer !

Note moyenne 0 / 5. Nombre de votes : 0

Aucun vote pour le moment ! Soyez le premier à évaluer cette publication.

Laisser un commentaire

Light
Dark