Windows 8 にアップグレードしてから、目に見えない IE の起動に依存する多くの PowerShell スクリプトが機能しなくなったため、Invoke-WebRequestコマンドに切り替えてみました。私は多くのグーグルを行いましたが、それでもスクリプトを機能させることができません。
これがすべきことです:
- シンプルなフォーム (ユーザー名、パスワード、送信ボタン) で Web サイトをロードします。
- 資格情報を入力してください
- そしてそれらを提出してください。
Microsoft tech-net の例はあまり役に立ちませんでした。
$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
user
最初のエラーは、フィールドに書き込もうとしたときに発生しました。
Cannot index into a null array.
$form.Fields["user"] = "username"
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : NullArray
2番目のものは、$form.Action
何を読むべきかわかりません:
Invoke-WebRequest : Cannot validate argument on parameter 'Uri'. The argument is null or empty. Supply an argument that is not null or empty and then try the command again.
ここでも、 Microsoft の例 #2 に大きく依存しています。