PowerShell脚本自己打开浏览器
PowerShell script opens browser by itself
以下代码是发送 POST 请求并获取响应并将其存储到 $response
的 powerShell 脚本。当我尝试获取表单值并尝试将其存储到 $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];
如何让脚本不打开浏览器?
注意:它发送 post 请求,其中 returns 重定向到与 get 请求相同的 uri,并以我试图存储在变量中的某个表单值响应。
所以我发现 Powershell 使用计算机默认浏览器的解析器来解析 HTML。这就是它打开浏览器的原因。
使用 -UseBasicParsing 属性可以使用 powershell 的 HTML 解析器。事实证明,至少对于上述情况,Powershell 的解析器不够好!
$res = Invoke-WebRequest $uri -UseDefaultCredentials -UseBasicParsing
对我有用。在添加 -UseBasicParsing
之前,浏览器在 404 上打开。
以下代码是发送 POST 请求并获取响应并将其存储到 $response
的 powerShell 脚本。当我尝试获取表单值并尝试将其存储到 $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];
如何让脚本不打开浏览器?
注意:它发送 post 请求,其中 returns 重定向到与 get 请求相同的 uri,并以我试图存储在变量中的某个表单值响应。
所以我发现 Powershell 使用计算机默认浏览器的解析器来解析 HTML。这就是它打开浏览器的原因。 使用 -UseBasicParsing 属性可以使用 powershell 的 HTML 解析器。事实证明,至少对于上述情况,Powershell 的解析器不够好!
$res = Invoke-WebRequest $uri -UseDefaultCredentials -UseBasicParsing
对我有用。在添加 -UseBasicParsing
之前,浏览器在 404 上打开。