PowerShell 中使用Copy-Item将一个项目从一个位置复制到另一个位置,可以是复制单个文件、也可以复制文件夹。

复制文件和文件夹

最简单的复制一个文件到另一个文件夹内,如果目标文件夹不存在会自动创建。

Copy-Item "E:\PowerShell\form\1.txt" -Destination "E:\PowerShell\to\"

如果-Destination参数是文件名,就会重命名文件。

Copy-Item "E:\PowerShell\form\1.txt" -Destination "E:\PowerShell\to\2.txt"

使用通配符可以复制文件夹内所有文件到另一个文件内,加上-Recurse就能复制所有的文件和子文件夹的内容。

Copy-Item "E:\PowerShell\form\*" -Destination "E:\PowerShell\to\" -Recurse

- 阅读剩余部分 -

第一步:编写连接 VPN 的脚本

通过rasdial命令可以连接 VPN,系统中需要提前添加名为CD的 VPN,用户名aaa,密码bbb,可以将连接的结果和当前时间存入vpn.log文件供后续查看。

# vpn-conn.ps1
$ras = rasdial CD aaa bbb
$current_time = Get-Date -Format 'yyyy-MM-dd HH:mm:ss'
$current_time , $ras >>  D:\script\vpn.log

第二步:编写 PowerShell 计划任务脚本

Register-ScheduledJob创建计划任务,Get-ScheduledJob获取计划任务,New-JobTrigger定义触发器,Add-JobTrigger给计划任务添加触发器。

$jobName = 'vpn-conn'
$filePath = 'D:\script\vpn-conn.ps1'
#创建任务
Register-ScheduledJob -Name $jobName -FilePath $filePath
#获取任务
$job =  Get-ScheduledJob -Name $jobName
#定义触发器
$jobTrigger = New-JobTrigger -Once -At (Get-Date).AddMinutes(1) -RepetitionInterval (New-TimeSpan -Minutes 10 ) -RepeatIndefinitely
#添加触发器
$job | Add-JobTrigger -Trigger $jobTrigger

以上命令执行完成后,在系统的计划任务里可以看到已成功添加,另外可以直接用Disable-ScheduledJobUnregister-ScheduledJob来禁用任务和删除任务。

# 禁用任务
Disable-ScheduledJob  -Name vpn-conn 
# 删除任务
Unregister-ScheduledJob -Name vpn-conn

Vlookup可以实现在数据区域内根据首列数据查找同行其它列数据Vlookup(首列数据,数据区域,同行其它列数据,false)

如下图,我们在单元格F5内输入一个商家编号来查询到对应商家的网站显示在单元格F6,所以F5为第一个参数,商家编号和商家网站包含在A2:C11区域里,所以A2:C11为第二个参数,我们想要的商家网站在区域内的第3列,所以第三个参数为3。所以结果单元格F6里最终公式为=VLOOKUP(F5,A2:C11,3,FALSE),图中报错是因为还没有输入要查询的商家编号。
vlookup4.jpg

Vlookup还能跨工作表查询,Vlookup(首列数据,工作表!数据区域,同行其它列数据,false)

- 阅读剩余部分 -

如果手机访问宜家移动版m.ikea.com默认是有切换国家的功能,但是电脑版www.ikea.com则不能选择国家而是直接跳转到对应的国家了,比如宜家中国www.ikea.com/cn/zh,即使你直接访问www.ikea.com/us也还是跳转到中国。

只需添加一条host指向宜家美国的ip就可以了。184.26.44.106 www.ikea.com,此时访问首页就不会跳转,而是出现选择国家的页面,完美!
ikea

有两个网段172.16.1.x172.16.2.x,实现互访共享。
通用的办法就是修改子网掩码,但是这里需求只需要访问某几台电脑,比如共享打印机。

首先设置防火墙规则,在目标机器上添加入站规则,UDP端口137、138,TCP端口139、445,此时用\\ip的形式就已经可以访问了。
如果要用\\计算机名访问的话,则需要在客户机的hosts文件里加一条记录,比如:172.16.1.2 PC1,然后就能通过\\PC1来访问了。

在Ubuntu上折腾了一阵DNSMASQ实在是不习惯,感觉Linux真是反人类,于是又回到了我大微软的的怀抱。
Acrylic DNS Proxy简单的讲就是一个DNS缓存服务器,一次查询后,以后直接从本地取ip,理论上讲访问网站速度更快了~更强大的功能在于他可以通配符配置hosts!

1.下载安装 Acrylic DNS Proxy

可直接去Acrylic官网下载,不到600K的安装包,下载安装完成。

2.设置本地连接的DNS为127.0.0.1

在CMD里用nslookup命令看看是否工作在正常,如果出现请求超时,说明Acrylic的DNS有问题,这时需要修改配置文件。
nslookup

- 阅读剩余部分 -

原理就是读取系统事件日志 EventLog,事件相关信息也可以在事件查看器 eventvwr.msc 里找到。eventID 和 InstancedId 并不是一定相同的,事件查看器里只能看到 eventId。

Get-EventLog -LogName system | where {$_.eventID -eq 12} | format-list -property TimeGenerated
Get-EventLog -LogName system -InstanceId 12 | format-list -property TimeGenerated