PowerShell v3 Invoke-WebRequest: problèmes liés aux formulaires

Depuis que j'ai mis à niveau vers Windows 8 beaucoup de mes scripts PowerShell en s'appuyant sur le lancement d'une invisible IE de ne pas assez travailler plus, donc j'ai essayé de passer à l' Invoke-WebRequest de commande. J'ai fait beaucoup de recherches sur google, mais ne peut toujours pas obtenir mon script fonctionne.

C'est ce qu'il doit faire:

  1. de chargement d'un site web avec un formulaire simple (nom d'utilisateur, mot de passe, le bouton "soumettre"),
  2. entrez les informations d'identification
  3. et de l'envoyer.

Avec la fonction "aide" de l'incroyablement mauvais Microsoft tech-net des exemples (au moins pour moi), j'ai reconstitué l'ensemble suivant:

$myUrl = "http://some.url"  

$response = Invoke-WebRequest -Uri $myUrl -Method Default -SessionVariable $rb
$form = $response.Forms[0]
$form.Fields["user"]     = "username"
$form.Fields["password"] = "password"

$response = Invoke-WebRequest -Uri $form.Action -WebSession $rb -Method POST 
$response.StatusDescriptionOK

Je reçois deux erreurs, la première lors de la tentative d'écriture dans "l'utilisateur" champ:

Ne peut pas indexer dans un null tableau.

$form.Champs["utilisateur"] = "nom d'utilisateur"

+ CategoryInfo          : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : NullArray

La deuxième on a à faire avec la $form.Action dont je n'ai aucune idée de ce qu'il faut lire:

Invoke-WebRequest : Ne peut pas valider l'argument de paramètre "Uri". L'argument est
null ou vide. Fournir un argument qui n'est pas null ou vide, puis lancez la commande
de nouveau.

Encore une fois, je m'appuyais beaucoup sur exemple #2 chez Microsoft.

EDIT: Merci à hammar pour la capitalisation. Où sont mes manières? 😉

source d'informationauteur Phil Strahl