<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[松哥的笔记]]></title> 
<description><![CDATA[]]></description>
<link>https://blog.liquanyi.com/</link>
<language>zh-cn</language>
<generator>www.emlog.net</generator>
<item>
	<title>无公网IP情况下家庭wireguard服务器的搭建</title>
	<link>https://blog.liquanyi.com/?post=112</link>
	<description><![CDATA[### 方案概述<br />
<br />
1. **家庭网络环境**：<br />
&nbsp;&nbsp; - 家庭宽带使用内网IP（通常是100.64.0.0/10）。<br />
&nbsp;&nbsp; - 运营商分配的公网IPv6地址。<br />
&nbsp;&nbsp; - 使用NAT1进行UDP打洞，获取公网IPv4地址和端口。<br />
<br />
2. **服务器配置**：<br />
&nbsp;&nbsp; - 在公网VPS上搭建一个键值对服务器（例如使用PHP编写）。<br />
&nbsp;&nbsp; - 在家庭网络中运行WireGuard服务器，监听特定端口。<br />
<br />
3. **客户端配置**：<br />
&nbsp;&nbsp; - 客户端在有IPv6的情况下直接使用IPv6连接WireGuard服务器。<br />
&nbsp;&nbsp; - 客户端在没有IPv6的情况下，通过键值对服务器查询WireGuard服务器的公网IPv4和端口。<br />
&nbsp;&nbsp; - 定义计划任务，定期更新WireGuard服务器的endpoint。<br />
<br />
### 详细步骤<br />
<br />
#### 1. 公网VPS上的键值对服务器<br />
<br />
- **编写键值对服务器**：<br />
&nbsp; - 使用PHP或其他语言编写一个简单的键值对服务器，用于存储和查询WireGuard服务器的公网IPv4和端口信息。<br />
&nbsp; - 服务器可以提供API接口，如 `GET ?id=xxx` 和 `POST ?id=xxx&amp;value=xxx`。<br />
<br />
- **键值对服务器示例代码**（PHP）：<br />
<pre class="prettyprint lang-php linenums">&lt;?php
// 设置数据库文件路径
$dbFile = __DIR__ . '/data.db';

// 创建一个新的PDO实例连接到SQLite数据库
try {
    $pdo = new PDO("sqlite:$dbFile");
    // 设置错误模式为异常
    $pdo-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 创建表（如果不存在）
    $pdo-&gt;exec("
        CREATE TABLE IF NOT EXISTS key_value_store (
            id TEXT PRIMARY KEY,
            value TEXT
        )
    ");
} catch (PDOException $e) {
    die("数据库连接失败: " . $e-&gt;getMessage());
}

// 检查请求方法
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // 处理POST请求，保存键值对
    $id = isset($_POST['id']) ? $_POST['id'] : null;
    $value = isset($_POST['value']) ? $_POST['value'] : null;

    if ($id &amp;&amp; $value) {
        try {
            // 插入或更新数据
            $stmt = $pdo-&gt;prepare('INSERT OR REPLACE INTO key_value_store (id, value) VALUES (:id, :value)');
            $stmt-&gt;execute([':id' =&gt; $id, ':value' =&gt; $value]);
            echo "键值对 {$id}={$value} 已保存";
        } catch (PDOException $e) {
            echo "数据库操作失败: " . $e-&gt;getMessage();
        }
    } else {
        echo "缺少必要的参数:id 和 value";
    }
} elseif ($_SERVER['REQUEST_METHOD'] === 'GET') {
    // 处理GET请求，查询键值对
    $id = isset($_GET['id']) ? $_GET['id'] : null;

    if ($id) {
        try {
            $stmt = $pdo-&gt;prepare('SELECT value FROM key_value_store WHERE id = :id');
            $stmt-&gt;execute([':id' =&gt; $id]);
            $result = $stmt-&gt;fetch(PDO::FETCH_ASSOC);

            if ($result) {
                echo $result['value'];
            } else {
                echo "未找到ID {$id}";
            }
        } catch (PDOException $e) {
            echo "数据库操作失败: " . $e-&gt;getMessage();
        }
    } else {
        echo "缺少必要的参数:id";
    }
} else {
    // 不支持的方法
    http_response_code(405);
    echo "不支持的请求方法";
}
?&gt;
</pre>
<br />
#### 2. 家庭网络中的WireGuard服务器<br />
<br />
- **安装和配置WireGuard**：<br />
&nbsp; - 在家庭网络中安装并配置WireGuard服务器。<br />
&nbsp; - 配置WireGuard服务器监听特定端口（例如51820）。<br />
<br />
- **使用NAT映射工具**：<br />
&nbsp; - 使用NAT映射工具natpmp来获取公网IPv4地址和端口。<br />
&nbsp; - 将公网IPv4地址和端口更新到键值对服务器。<br />
<br />
- **更新natmap获取的ip与端口示例脚本**（Shell）：<br />
<pre class="prettyprint lang-bsh linenums">#!/bin/sh

curl -X POST https://服务器域名/键值对文件名.php -d "id=自定义&amp;value=${1}:${2}"
</pre>
<br />
<br />
#### 3. 客户端配置<br />
<br />
- **配置WireGuard客户端**：<br />
&nbsp; - 配置WireGuard客户端，使其优先使用IPv6连接。<br />
&nbsp; - 如果客户端没有IPv6，则从键值对服务器获取WireGuard服务器的公网IPv4和端口。<br />
<br />
- **示例客户端配置文件**：<br />
&nbsp; ```ini<br />
&nbsp; [Interface]<br />
&nbsp; PrivateKey = &lt;Your-PrivateKey&gt;<br />
&nbsp; Address = 10.0.0.2/24<br />
&nbsp; DNS = 1.1.1.1, 8.8.8.8<br />
<br />
&nbsp; [Peer]<br />
&nbsp; PublicKey = &lt;Server-Public-Key&gt;<br />
&nbsp; AllowedIPs = 0.0.0.0/0, ::/0<br />
&nbsp; Endpoint = &lt;Server-IPv6-Address&gt;:51820<br />
&nbsp; PersistentKeepalive = 25<br />
&nbsp; ```<br />
<br />
- **动态更新Endpoint**：<br />
&nbsp; - 使用计划任务当网络连通时或每半小时定时更新WireGuard服务器的endpoint。<br />
<br />
- **创建计划任务**：<br />
&nbsp; - 打开“任务计划程序”。<br />
&nbsp; - 创建一个新的基本任务或触发器。<br />
&nbsp; - 在“常规”选项卡中，输入任务名称和描述。<br />
<p>
	&nbsp; - 在“触发器”部分，设置任务的触发条件为发生事件时，选择自定义，输入如下 xml。
</p>
<p>
	<br />
</p>
<pre class="prettyprint lang-xml linenums">&lt;QueryList&gt;
  &lt;Query Id="0" Path="Microsoft-Windows-NCSI/Operational"&gt;
    &lt;Select Path="Microsoft-Windows-NCSI/Operational"&gt;*[System[(EventID=4042)]] and *[EventData[Data[@Name='Capability']='2']]&lt;/Select&gt;
  &lt;/Query&gt;
&lt;/QueryList&gt;</pre>
<p>
	<br />
</p>
<p>
	&nbsp; - 在“触发器”部分，设置任务的触发条件每半小时。
</p>
<p>
	&nbsp; - 在“操作”部分，选择“启动程序”。
</p>
<p>
	&nbsp; - 在“程序/脚本”字段中，输入 `powershell`。
</p>
<p>
	&nbsp; - 在“添加参数”字段中，输入 `-Command "&amp; { wg set wg接口名 peer 服务器公钥 endpoint (Invoke-RestMethod -UseBasicParsing -Uri https://服务器域名/键值对文件名.php?id=自定义) }"`。
</p>
<p>
	&nbsp; - 确保在“常规”选项卡中选择了“使用最高权限运行”。
</p>
<br />
<br />
通过上述步骤，您可以实现一个灵活的家庭WireGuard服务器配置，支持IPv4和IPv6连接，并能够自动更新服务器的endpoint。这样，无论客户端是否有IPv6，都能可靠地连接到WireGuard服务器。]]></description>
	<pubDate>Wed, 30 Oct 2024 01:00:43 +0000</pubDate>
	<author>lqy</author>
	<guid>https://blog.liquanyi.com/?post=112</guid>

</item>
<item>
	<title>使用python进行socket编程</title>
	<link>https://blog.liquanyi.com/?post=111</link>
	<description><![CDATA[<p>
	tcp服务器
</p>
<p>
<pre class="prettyprint lang-py linenums">#TCP服务器端
import socket

#server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server=socket.socket()
server.bind(("localhost",6666))
print("服务器已启动，等待连接")
server.listen(1)
conn,add=server.accept()

while 1:
    recv=conn.recv(1024).decode("utf-8")
    print("来自客户端的数据:",recv)
    if recv=="N":
        break
    sendMes=input("发送数据:")
    conn.send(sendMes.encode("utf-8"))
    if sendMes=="N":
        break



</pre>
TCP客户端
</p>
<p>
<pre class="prettyprint lang-py linenums">import socket
client= socket.socket()
client.connect(("127.0.0.1",6666))

while 1:
    sendMes=input("发送数据到服务器:")
    client.send(sendMes.encode("utf-8"))
    if sendMes=="N":
        break
    recv=client.recv(1024).decode("utf-8")
    print("来自服务端的数据:",recv)
    if recv=="N":
        break
</pre>
</p>
<p>
	<br />
</p>
<p>
	UDP服务器
</p>
<p>
<pre class="prettyprint lang-py linenums">#UDP协议
import socket

server=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
server.bind(("localhost",8888))
while 1:
    data,addr=server.recvfrom(1024)
    data=data.decode("utf-8")
    print("收到数据:",data)
    if data=="N":
        break
    send_msg=input("请输入数据:")
    server.sendto(send_msg.encode("utf-8"),addr)
    if send_msg=="N":
        break</pre>
</p>
<p>
	<br />
</p>
<p>
	UDP客户端
</p>
<p>
<pre class="prettyprint lang-py linenums">#UDP协议
import socket

server=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#server.bind(("localhost",8888))
while 1:
    send_msg=input("请输入数据:")
    server.sendto(send_msg.encode("utf-8"),("localhost",8888))
    if send_msg=="N":
        break
    data,addr=server.recvfrom(1024)
    data = data.decode("utf-8")
    print("收到数据:",data)
    if data=="N":
        break
</pre>
</p>
<p>
	抓包
</p>
<p>
<pre class="prettyprint lang-py linenums">from scapy.all import *

print(conf.ifaces)
#lists=[]
a=PcapWriter("cap2.cap",append=True)
def callback(p):
#    lists.append(p)
#    a.write(p)
    wrpcap("cap3.cap",p,append=True)
sniff(filter="",
      iface="Intel(R) Wi-Fi 6 AX200 160MHz",
      prn=callback,
      count=30
      )
# wrpcap("cap1.cap",lists)


</pre>
</p>]]></description>
	<pubDate>Fri, 11 Oct 2024 04:09:39 +0000</pubDate>
	<author>lqy</author>
	<guid>https://blog.liquanyi.com/?post=111</guid>

</item>
<item>
	<title>使用python进行数据包分析</title>
	<link>https://blog.liquanyi.com/?post=110</link>
	<description><![CDATA[<pre class="prettyprint lang-py linenums">import pyshark
import os
import xlwt

def getData(path):
    files=os.listdir(path)
    a = xlwt.Workbook()
    frame=a.add_sheet("frame")
    eth=a.add_sheet("eth")
    ip=a.add_sheet("ip")
    tcp=a.add_sheet("tcp")
    bgp=a.add_sheet("bgp")
    aaa=0
    for file in files:
        pkts = pyshark.FileCapture(path+file,
                                   tshark_path="C:\Program Files\Wireshark\tshark.exe")
        for pkt in pkts:
            # print(pkt)
            try:
#                print(pkt.bgp) #过滤对应的协议
#                print(type(pkt.frame_info)) #过滤对应的协
                frame.write(aaa,0,str(pkt.frame_info))
            except:
                print("包类型错误")
            try:
                eth.write(aaa,0,str(pkt.eth))
               # print(pkt.eth) #过滤对应的协议
            except:
                print("包类型错误")
            try:
                ip.write(aaa,0,str(pkt.ip))
               # print(pkt.tcp)  #过滤对应的协议
            except:
                print("包类型错误")
            try:
                tcp.write(aaa,0,str(pkt.tcp))
               # print(pkt.tcp)  #过滤对应的协议
            except:
                print("包类型错误")
            try:
                bgps = pkt.get_multiple_layers("bgp")
                for bg in bgps:
                    bgp.write(aaa, 0, str(bg))
#                    print(bgp.get_field_by_showname("Type"), end="\t")
 #               bgp.write(aaa,0,str(pkt.bgp))
               # print(pkt.tcp)  #过滤对应的协议
            except:
                print("包类型错误")
            aaa = aaa + 1
    a.save("ip包.xlsx")
#            print(pkt.ip.get_field_by_showname("Source Address"))

def getMultiple():
    file="./BGP/EBGP_adjacency.cap"
    pkts = pyshark.FileCapture(file,
                               tshark_path="C:\Program Files\Wireshark\tshark.exe")
    for pkt in pkts:
        bgps=pkt.get_multiple_layers("bgp")
        for bgp in bgps:
            print(bgp.get_field_by_showname("Type"),end="\t")
getData("./BGP/")
#getMultiple()
#获取frame,eth,ip,tcp,bgp(有多个)中的所有数据，里面有找不到的数据。
#将找到的数据写入到excel
</pre>]]></description>
	<pubDate>Fri, 11 Oct 2024 04:09:01 +0000</pubDate>
	<author>lqy</author>
	<guid>https://blog.liquanyi.com/?post=110</guid>

</item>
<item>
	<title>使用python进行netconf访问</title>
	<link>https://blog.liquanyi.com/?post=109</link>
	<description><![CDATA[<pre class="prettyprint lang-py linenums">from ncclient import manager
from ncclient.xml_ import to_ele

# 设备信息
hostname = '10.98.249.12'
username = 'huawei'
password = 'Admin@123'

# NETCONF连接
get_xml="""
  &lt;edit-config&gt;
    &lt;target&gt;
      &lt;running/&gt;
    &lt;/target&gt;
    &lt;default-operation&gt;merge&lt;/default-operation&gt;
    &lt;error-option&gt;rollback-on-error&lt;/error-option&gt;
    &lt;config&gt;
      &lt;ifm xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0"&gt;
        &lt;interfaces&gt;
          &lt;interface&gt;
            &lt;ifName&gt;Ethernet1/0/5&lt;/ifName&gt;
            &lt;ifmAm4&gt;
              &lt;am4CfgAddrs&gt;
                &lt;am4CfgAddr operation="merge"&gt;
                  &lt;ifIpAddr&gt;192.168.15.1&lt;/ifIpAddr&gt;
                  &lt;subnetMask&gt;255.255.255.0&lt;/subnetMask&gt;
                  &lt;addrType&gt;main&lt;/addrType&gt;
                &lt;/am4CfgAddr&gt;
              &lt;/am4CfgAddrs&gt;
            &lt;/ifmAm4&gt;
          &lt;/interface&gt;
          &lt;interface&gt;
            &lt;ifName&gt;LoopBack0&lt;/ifName&gt;
            &lt;ifmAm4&gt;
              &lt;am4CfgAddrs&gt;
                &lt;am4CfgAddr operation="merge"&gt;
                  &lt;ifIpAddr&gt;1.1.1.1&lt;/ifIpAddr&gt;
                  &lt;subnetMask&gt;255.255.255.255&lt;/subnetMask&gt;
                  &lt;addrType&gt;main&lt;/addrType&gt;
                &lt;/am4CfgAddr&gt;
              &lt;/am4CfgAddrs&gt;
            &lt;/ifmAm4&gt;
          &lt;/interface&gt;
        &lt;/interfaces&gt;
      &lt;/ifm&gt;
      &lt;staticrt xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0"&gt;
        &lt;staticrtbase&gt;
          &lt;srRoutes&gt;
            &lt;srRoute operation="merge"&gt;
              &lt;vrfName&gt;_public_&lt;/vrfName&gt;
              &lt;afType&gt;ipv4unicast&lt;/afType&gt;
              &lt;topologyName&gt;base&lt;/topologyName&gt;
              &lt;prefix&gt;10.5.0.0&lt;/prefix&gt;
              &lt;maskLength&gt;24&lt;/maskLength&gt;
              &lt;ifName&gt;Ethernet1/0/5&lt;/ifName&gt;
              &lt;destVrfName&gt;_public_&lt;/destVrfName&gt;
              &lt;nexthop&gt;192.168.15.2&lt;/nexthop&gt;
            &lt;/srRoute&gt;
          &lt;/srRoutes&gt;
        &lt;/staticrtbase&gt;
      &lt;/staticrt&gt;
      &lt;ospfv2 xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0"&gt;
        &lt;ospfv2comm&gt;
          &lt;ospfSites&gt;
            &lt;ospfSite operation="merge"&gt;
              &lt;processId&gt;1&lt;/processId&gt;
              &lt;routerId&gt;1.1.1.1&lt;/routerId&gt;
              &lt;vrfName&gt;_public_&lt;/vrfName&gt;
            &lt;/ospfSite&gt;
          &lt;/ospfSites&gt;
        &lt;/ospfv2comm&gt;
      &lt;/ospfv2&gt;
    &lt;/config&gt;
  &lt;/edit-config&gt;
"""
m=manager.connect(host=hostname,
                  username=username,
                  password=password,
                  port=830,
                  hostkey_verify=False,
                  device_params={'name': 'huawei'}
                  )
get_xml = to_ele(get_xml)
reply=m.rpc(get_xml)
print(reply)

</pre>]]></description>
	<pubDate>Fri, 11 Oct 2024 04:06:32 +0000</pubDate>
	<author>lqy</author>
	<guid>https://blog.liquanyi.com/?post=109</guid>

</item>
<item>
	<title>使用python的pysnmp库进行snmp数据读取</title>
	<link>https://blog.liquanyi.com/?post=108</link>
	<description><![CDATA[<pre class="prettyprint lang-py linenums">from pysnmp.hlapi import *

mes = getCmd(
    SnmpEngine(),
    UsmUserData(userName="admin",
                authKey="Huawei@123",
                privKey="Huawei@123",
                authProtocol=usmHMACSHAAuthProtocol,
                privProtocol=usmAesCfb128Protocol),
    UdpTransportTarget(("10.98.249.12",161)),
    ContextData(),ObjectType(ObjectIdentity("1.3.6.1.2.1.1.5.0"))
)
result=next(mes)
print(result[3][0])
print(str(result[3][0]).split("=")[-1])</pre>]]></description>
	<pubDate>Fri, 11 Oct 2024 04:04:46 +0000</pubDate>
	<author>lqy</author>
	<guid>https://blog.liquanyi.com/?post=108</guid>

</item>
<item>
	<title>使用python的telnetlib进行设备访问</title>
	<link>https://blog.liquanyi.com/?post=107</link>
	<description><![CDATA[<pre class="prettyprint lang-py linenums">import telnetlib
import time
def tel_connect(file_name=None,host=None,port=23):
    tn=telnetlib.Telnet(host,port)
    tn.read_until(b"Password:")
    f=open(file_name)
    lines=f.readlines()
    for line in lines:
        tn.write((line+"\n").encode("utf-8"))
        time.sleep(1)
    print(tn.read_very_eager().decode("utf-8"))
    tn.close()
tel_connect("telnet.txt","10.98.249.12")
</pre>]]></description>
	<pubDate>Fri, 11 Oct 2024 04:03:50 +0000</pubDate>
	<author>lqy</author>
	<guid>https://blog.liquanyi.com/?post=107</guid>

</item>
<item>
	<title>使用paramiko进行ssh访问或sftp操作</title>
	<link>https://blog.liquanyi.com/?post=106</link>
	<description><![CDATA[<pre class="prettyprint lang-py linenums">import re
import paramiko

prompt=re.compile("(\[.*\]$)|(&lt;.*&gt;$)")
def do_sftp(action="get",filename=None,host=None,port=None,user=None,password=None):
    a=paramiko.client.SSHClient()
    a.set_missing_host_key_policy(paramiko.client.AutoAddPolicy)
    a.connect(
        hostname=host,
        port=port,
        username=user,
        password=password
    )
    b=a.open_sftp()
    if action=="get":
        b.get(filename,filename)
    elif action=="put":
        b.put(filename, filename)
    else:
        print("请输入正确的操作符get或者put")
    b.close()
    a.close()
def do_ssh(host=None,port=None,user=None,password=None,cmds=None):
    a=paramiko.client.SSHClient()
    a.set_missing_host_key_policy(paramiko.client.AutoAddPolicy)
    a.connect(
        hostname=host,
        port=port,
        username=user,
        password=password
    )
    b=a.invoke_shell()
    c=""
    for cmd in cmds:
        b.send(cmd+"\n")
        while 1:
            d = b.recv(65535).decode("utf-8")
            c = c + d
            if prompt.search(d):
#            if ("&gt;" in d) or ("]" in d):
                break
    b.close()
    a.close()
    print(c)
do_ssh("10.98.249.12","22","huawei","Admin@123",["scr 0 temp","dis ip inter brief","dis inter brief"])
#do_sftp("get1","device.sys","10.98.249.12",22,"huawei","Admin@123")</pre>]]></description>
	<pubDate>Fri, 11 Oct 2024 04:02:45 +0000</pubDate>
	<author>lqy</author>
	<guid>https://blog.liquanyi.com/?post=106</guid>

</item>
<item>
	<title>管理NTFS的USN日志</title>
	<link>https://blog.liquanyi.com/?post=103</link>
	<description><![CDATA[<p>
	<span id="mt66" class="sentence" data-guid="39ba2266-92b8-4b50-0bda-8439cf4d1c4b" data-approved=" 若要创建 USN 更改日志类型的驱动器 C 上：">To create a USN change journal on drive C, type:</span>
</p>
<div id="code-snippet-2" class="codeSnippetContainer">
	<div class="codeSnippetContainerTabs">
	</div>
	<div class="codeSnippetContainerCodeContainer">
		<div class="codeSnippetToolBar">
			<div class="codeSnippetToolBarText">
			</div>
		</div>
		<div id="CodeSnippetContainerCode_77e61e21-c744-44e6-8145-490b4c52c01a" class="codeSnippetContainerCode" dir="ltr">
			<div style="color:Black;">
<pre>fsutil usn createjournal m=1000 a=100 c:
</pre>
			</div>
		</div>
	</div>
</div>
<p>
	<span id="mt69" class="sentence" data-guid="bbccadab-7e37-d328-2976-9243bdacf1d6" data-approved=" 若要删除活动 USN 更改日志驱动器 c，C 类型：">To delete an active USN change journal on drive C, type:</span>
</p>
<div id="code-snippet-3" class="codeSnippetContainer">
	<div class="codeSnippetContainerTabs">
	</div>
	<div class="codeSnippetContainerCodeContainer">
		<div class="codeSnippetToolBar">
			<div class="codeSnippetToolBarText">
			</div>
		</div>
		<div id="CodeSnippetContainerCode_26ca4a5a-834c-4230-aa2c-f8b844f6dada" class="codeSnippetContainerCode" dir="ltr">
			<div style="color:Black;">
<pre>fsutil usn deletejournal /d c:
</pre>
			</div>
		</div>
	</div>
</div>
<p>
	<span id="mt72" class="sentence" data-guid="8979193f-a97b-03a5-a842-1477bdd80c0e" data-approved=" 枚举并列出驱动器 C 上的两个指定的边界之间的更改日志条目，请键入：">To enumerate and list the change journal entries between two specified boundaries on drive C, type:</span>
</p>
<div id="code-snippet-4" class="codeSnippetContainer">
	<div class="codeSnippetContainerTabs">
	</div>
	<div class="codeSnippetContainerCodeContainer">
		<div class="codeSnippetToolBar">
			<div class="codeSnippetToolBarText">
			</div>
		</div>
		<div id="CodeSnippetContainerCode_7fe96686-47a7-4523-a90f-9e23ca1d414f" class="codeSnippetContainerCode" dir="ltr">
			<div style="color:Black;">
<pre>fsutil usn enumdata 1 0 1 c:
</pre>
			</div>
		</div>
	</div>
</div>
<p>
	<span id="mt75" class="sentence" data-guid="d997b4ee-6e8b-17b1-9232-245a9361958d" data-approved=" 要查询驱动器 C 上的卷的 USN 数据，请键入：">To query USN data for a volume on drive C, type:</span>
</p>
<div id="code-snippet-5" class="codeSnippetContainer">
	<div class="codeSnippetContainerTabs">
	</div>
	<div class="codeSnippetContainerCodeContainer">
		<div class="codeSnippetToolBar">
			<div class="codeSnippetToolBarText">
			</div>
		</div>
		<div id="CodeSnippetContainerCode_f23e4a3b-aa14-4b23-aa94-303f9dbe7ab0" class="codeSnippetContainerCode" dir="ltr">
			<div style="color:Black;">
<pre>fsutil usn queryjournal c:
</pre>
			</div>
		</div>
	</div>
</div>
<p>
	<span id="mt78" class="sentence" data-guid="2cad0d01-0ef4-e12b-f5bf-15929841f2d0" data-approved=" 要读取驱动器 C 上 \Temp 文件夹中的文件的 USN 数据，请键入：">To read the USN data for a file in the \Temp folder on drive C, type:</span>
</p>
<div id="code-snippet-6" class="codeSnippetContainer">
	<div class="codeSnippetContainerTabs">
	</div>
	<div class="codeSnippetContainerCodeContainer">
		<div class="codeSnippetToolBar">
			<div class="codeSnippetToolBarText">
			</div>
		</div>
		<div id="CodeSnippetContainerCode_bed864c1-9d4e-4204-b174-db5a989a00ba" class="codeSnippetContainerCode" dir="ltr">
			<div style="color:Black;">
<pre>fsutil usn readdata c:\temp\sample.txt
</pre>
			</div>
		</div>
	</div>
</div>]]></description>
	<pubDate>Fri, 15 Dec 2017 01:25:46 +0000</pubDate>
	<author>lqy</author>
	<guid>https://blog.liquanyi.com/?post=103</guid>

</item>
<item>
	<title>查看进程的命令行参数</title>
	<link>https://blog.liquanyi.com/?post=102</link>
	<description><![CDATA[<p>
	wmic process where caption="chrome.exe" get caption,commandline /value
</p>
<p>
	https://www.win-raid.com/t596f39-Intel-Management-Engine-Drivers-Firmware-amp-System-Tools.html
</p>
<p>
	win10删除自带应用
</p>
<p>
	<br />
</p>
<div>
	Get-AppXProvisionedPackage -Online<br />
Remove-AppxProvisionedPackage -Online -PackageName Microsoft.SkypeApp_11.18.596.0_neutral_~_kzf8qxf38zg5c
</div>
<p>
	<br />
</p>]]></description>
	<pubDate>Fri, 10 Nov 2017 08:20:36 +0000</pubDate>
	<author>lqy</author>
	<guid>https://blog.liquanyi.com/?post=102</guid>

</item>
<item>
	<title>Windows更改时间同步频率</title>
	<link>https://blog.liquanyi.com/?post=101</link>
	<description><![CDATA[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient里面的SpecialPollInterval为Windows时间同步频率，单位为秒，普通用户默认值604800，通过修改该值可以更改时间同步频率]]></description>
	<pubDate>Thu, 02 Nov 2017 09:51:46 +0000</pubDate>
	<author>lqy</author>
	<guid>https://blog.liquanyi.com/?post=101</guid>

</item></channel>
</rss>