Powershell - Ne plus utiliser le navigateur Internet Explorer avec la command Invoke-Webrequest
Récupérer des informations sur une page internet avec PowerShell
Je pense qu'il vous est déjà arrivé de vouloir récupérer des informations avec PowerShell sur des pages internet, cependant, comme on peut le voir souvent, la première fois on a le droit à un message pour vous informer que l'on doit d'abord initialiser le moteur Internet Explorer. Il faut comprendre par là, l'avoir lancer et valider les différentes options.
Le message en question en Anglais :
Invoke-WebRequest : The response content cannot be parsed because the Internet Explorer engine is not available, or Internet Explorer’s first-launch configuration is not complete. Specify the UseBasicParsing parameter and try again.
Si l'on voulait le contourner, il suffisait de faire la manipulation ou rajouter une clef de registre pour corriger cela. Comme ce que vous pouvez le voir ici.
$keyPath = 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Internet Explorer\Main' if (!(Test-Path $keyPath)) { New-Item $keyPath -Force | Out-Null } Set-ItemProperty -Path $keyPath -Name "DisableFirstRunCustomize" -Value 1
Bon, c'est ok sur son poste, mais on pourrait faire mieux non ? Oui, on peut aussi utiliser le paramètre "UseBasicParsing", cependant adieu les pages en HTTPS.
Si l'on utilisait un autre navigateur
PS C:\Temp> [Microsoft.PowerShell.Commands.PSUserAgent].GetProperties() | Select-Object Name, @{n='UserAgent';e={ [Microsoft.PowerShell.Commands.PSUserAgent]::$($_.Name) }} Name UserAgent ---- --------- InternetExplorer Mozilla/5.0 (compatible; MSIE 9.0; Windows NT; Windows NT 10.0; en-US) FireFox Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) Gecko/20100401 Firefox/4.0 Chrome Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6 Opera Opera/9.70 (Windows NT; Windows NT 10.0; en-US) Presto/2.2.1 Safari Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16
Donc on va l'initialiser comme ceci :
$userAgent = [Microsoft.PowerShell.Commands.PSUserAgent]::Chrome Invoke-WebRequest https://blog.delacourt.ovh -UserAgent $userAgent
Voici ce que cela donne les agents quand on les fait tester par le site https://www.whatismybrowser.com/ .
Pour l'agent Chrome :
Pour l'agent Safari :
Commentaires
Enregistrer un commentaire