4

次のコードは、POST 要求を送信し、応答を取得して に保存する PowerShell スクリプトです$response。フォームの値を取得して に保存しようとすると$wa、ブラウザが自動的に開きます。

$destination="https://adfs.somedomain.com/adfs/ls/";
$response = '';
$username = 'some username';
$password = 'some password';
$AuthMethod = 'FormsAuthentication';
$postParams = @{
    destination="$destination";
    flags='0';
    forcedownlevel='0';
    trusted='0'
    UserName="$($username)";
    Password="$($password)";
    AuthMethod = "$($AuthMethod)";
    isUtf8='1'
}

$url = "$($destination)?wa=wsignin1.0&wtrealm=urn:federation:cas"
$response = Invoke-WebRequest -uri $url -Method POST -body $postParams;
$wa = $response.InputFields.value[0];

ブラウザを開かないようにスクリプトを作成するにはどうすればよいですか?

注:getリクエストで同じuriにリダイレクトを返すポストリクエストを送信し、変数に保存しようとしているフォーム値で応答します。

4

2 に答える 2

7

そのため、Powershell はコンピューターの既定のブラウザーのパーサーを使用して HTML を解析することがわかりました。そのため、ブラウザが開きます。-UseBasicParsing 属性を使用すると、powershell の HTML パーサーを利用できます。そして、Powershell のパーサーは、少なくとも上記のケースには十分ではないことがわかりました!

于 2015-02-19T17:41:36.837 に答える