我对Powershell很新。我一直在努力解决这个问题。我一直在尝试将此文件保存并保存在我的计算机中。我尝试了不同的方式并询问Stack Overflow
当我执行此代码时
$ie = New-Object -ComObject 'internetExplorer.Application'
$ie.Visible= $true
$ie.Navigate("https://idp.appery.io/idp/")
while ($ie.Busy -eq $true){Start-Sleep -seconds 1;}
$usernamefield = $ie.Document.getElementByID('j_username')
$usernamefield.value= $username
$passwordfield = $ie.Document.getElementByID('j_password')
$passwordfield.value = $password
$Link=$ie.Document.getElementByID("loginBtn")
$Link.click()
while ($IE.Busy -eq $true)
{
Start-Sleep -Milliseconds 2000;
}
$ie.Navigate("https://appery.io/bttttn/rest/1/admin/databases")
当我在代码上面执行时,Notepad会自动弹出" database.json",我在C驱动器中寻找这个json文件的位置,但我找不到它。它似乎只是打开文件, 所以我想
保存这个" database.json"到我的文件夹
关闭记事本窗口,
我该怎么做?
非常感谢!!!
答案 0 :(得分:1)
很遗憾,您无法自动记事本! (你可能会向它发送击键,但它会变得非常混乱并且容易破损)
更好的方法是使用invoke-webrequest登录然后下载文件
$request = Invoke-WebRequest $loginpage -SessionVariable "session"
$form = $request.Forms[0]
$form = $request.form['username']
$form = $request.form['password']
$request = Invoke-WebRequest -Uri ('$downloadlink + $form.Action) `
-WebSession $session -Method POST `
-Body $form.Fields -OutFile $filepath
如果页面没有返回表单对象,则可以执行
$form = @{ "username" = $username
"password = $password}
您需要查看登录页面并提取用户名/密码的变量名称。
我还没有测试过它!所以它来自记忆,但它应该让你在一个更可靠的轨道上。