我试图在没有看到Internet Explorer的打开/保存对话框的情况下下载文件。登录表单比发送Web请求复杂得多,因此我只能使用InternetExplorer.Application。
$credentials = Get-Credential -Message "Enter the username and password..."
$username = $credentials.UserName
$password = $credentials.GetNetworkCredential().password
$ie = New-Object -com InternetExplorer.Application
$ie.navigate("https://example.com/getFile?downloadId=123")
$ie.document.getElementById("username").value= "$username"
$ie.document.getElementById("password").value = "$password"
$ie.document.getElementById("fm1").submit()
在执行上面的代码时,登录工作完美,下载开始了,但我看到一个像下面这样的窗口,这是我想要的。虽然我知道最终用户可以更改此设置,但任何通过PowerShell自动下载的建议都会很好。
上面是一个示例窗口。
答案 0 :(得分:0)
正如@beatcracker所指出的,通过注册表设置,您可以禁用文件类型的提示。
在HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\AttachmentExecute\{0002DF01-0000-0000-C000-000000000046}
键内(如果需要,可以创建),您必须为每种文件类型添加一个条目。
首先,您必须获取要定位的文件类型的 ProgID 。
您可以使用assoc命令获取它:
C:\Windows\System32>assoc .docx
.docx=Word.Document.12
在注册表中,您必须创建一个名为Word.Document.12
且值为0
的新值。
当然,这需要为每个工作站的每个用户部署(GPO?)...这很乏味。