windows 下载文件的几种姿势

| 热度 | 字数统计: 403 字 | 阅读时长: 2 分

Linux 下载文件的方式很多, 一般系统自带的 curl wget 就能搞定, 甚至还可以直接在线 apt yum 安装, 也有很多环境例如 Python Ruby Perl

Windows 就那么几个, 除了 vbs 和 powershell 以外大都是依赖于 microsoft 官方自带的命令行工具

对于写着 msiexec IEExec regsvr32 的那些人我只能说呵呵, 下载文件和直接下载执行不是一个概念

vbs

经典的 iget.vbs, 需要一行一行 echo 写

1
2
3
4
5
6
7
8
9
10
11
iLocal=LCase(Wscript.Arguments(1))
iRemote=LCase(Wscript.Arguments(0))
Set xPost=createObject("Microsoft.XMLHTTP")
xPost.Open "GET",iRemote,0
xPost.Send()
set sGet=createObject("ADODB.Stream")
sGet.Mode=3
sGet.Type=1
sGet.Open()
sGet.Write xPost.ResponseBody
sGet.SaveToFile iLocal,2

执行方式

cscript //nologo iget.vbs http://example.com/test.txt C:\test.txt

telnet

前提是机器要支持 telnet

server: nc -lvp 2333 < test.txt

client: telnet example.com -f C:\test.txt

mshta

其实还是依赖于 vbs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<html>
<head>
<script>
var Object = new ActiveXObject("MSXML2.XMLHTTP");
Object.open("GET","http://example.com/test.txt",false);
Object.send();
if (Object.Status == 200)
{
var Stream = new ActiveXObject("ADODB.Stream");
Stream.Open();
Stream.Type = 1;
Stream.Write(Object.ResponseBody);
Stream.SaveToFile("C:\\test.txt", 2);
Stream.Close();
}
window.close();
</script>
<HTA:APPLICATION ID="test"
WINDOWSTATE = "minimize">
</head>
<body>
</body>
</html>

执行方式

mshta http://example.com/test.hta

certutil

windows 2003 下的应用程序

执行方式

certutil -urlcache -split -f http://examplecom/test.txt C:\test.txt

bitsadmin

和 certutil 一样, 但只适用于 windows 7 以上的系统

bitsadmin /rawreturn /transfer getfile http://example.com/test.txt C:\test.txt

powershell

使用 powershell -ExecutionPolicy Bypass -File .\get.ps1 执行脚本

$client = new-object System.Net.WebClient

$client.DownloadFile(‘http://example.com/test.txt’, ‘C:\test.txt’)

本文标题:windows 下载文件的几种姿势

文章作者:X1r0z

发布时间:2018年08月14日

原始链接:https://exp10it.cn/2018/08/14/2018-08-14-windows-download-file/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者.