Windows AD 域管理 PowerShell 命令

备注:
dsquery 命令帮助你在目录中查找与指定搜索条件匹配的对象:
dsquery 的输入是一个搜索条件,其输出是与该搜索匹配的对象列表。
若要获得特定对象的属性,请使用 dsget 命令 (dsget /?)。

如果你提供的值包含空格,请在文本两边使用引号
(例如,"CN=John Smith,CN=Users,DC=microsoft,DC=com")。

如果你输入了多个值,这些值必须用空格隔开
(例如,一系列可分辨名称)。

示例:
在给定组织单位 (OU) 中查找名称以 "jon" 开始并且帐户被禁止登录的所有用户,
并显示他们的用户主体名称 (UPN):

dsquery user ou=Test,dc=microsoft,dc=com -o upn -name jon* -disabled

只在当前域中查找名称以 "smith" 结束并且至少已有三个星期处于非活动状态
的所有用户,并显示他们的 DN:

dsquery user domainroot -name *smith -inactive 3

在给定组织单位中查找 ou=sales,dc=microsoft,dc=com 的所有用户
并显示他们的 UPN:
dsquery user ou=sales,dc=microsoft,dc=com -o upn

另请参阅:
dsquery computer /? – 在目录中查找计算机的帮助。
dsquery contact /? – 在目录中查找联系人的帮助。
dsquery subnet /? – 在目录中查找子网的帮助。
dsquery group /? – 在目录中查找组的帮助。
dsquery ou /? – 在目录中查找组织单位的帮助。
dsquery site /? – 在目录中查找站点的帮助。
dsquery server /? – 在目录中查找 AD DC/LDS 实例的帮助。
dsquery user /? – 在目录中查找用户的帮助。
dsquery quota /? – 在目录中查找配额的帮助。
dsquery partition /? – 在目录中查找分区的帮助。
dsquery * /? – 使用通用 LDAP 查询在目录中查找
任何对象的帮助。

名称解析:

AD Active Directory 活动目录
LDAP Lightweight Directory Access Protocol 轻型目录访问协议
CN Common Name 通用名称
DN Distinguished Name 区分名/目录条目的名字
DC Domain Component 域组件
OU Organizational Unit 组织单位
RDN Relative Distinguished Name 可分辨名称
UPN User Principal Name 用户主体名称/用户登录名/邮件地址
SAMID SAM Account Name SAM 账户名

 

实例操作:

通过姓名查询关键用户

dsquery user -name 何星星
"CN=何星星,OU=高级运维组,OU=技术部,OU=信息和新技术中心,OU=中国总部,OU=hexingxing,DC=hxx,DC=com"

通过模糊姓名查询关键用户:实例一

dsquery user -name 何星*
"CN=何星星,OU=高级运维组,OU=技术部,OU=信息和新技术中心,OU=中国总部,OU=hexingxing,DC=hxx,DC=com"

通过模糊姓名查询关键用户:实例二

dsquery user -name 何*
"CN=何星星,OU=高级运维组,OU=技术部,OU=信息和新技术中心,OU=中国总部,OU=hexingxing,DC=hxx,DC=com"
"CN=何小湘,OU=数字一组,OU=市场部,OU=市场营销中心,OU=中国总部,OU=hexingxing,DC=hxx,DC=com"
"CN=何未央,OU=闵行,OU=上海,OU=华东分部,OU=中国总部,OU=hexingxing,DC=hxx,DC=com"
"CN=何克难,OU=南京,OU=江苏,OU=华东分部,OU=中国总部,OU=hexingxing,DC=hxx,DC=com"
"CN=何逸轩,OU=朝阳,OU=北京,OU=华北分部,OU=中国总部,OU=hexingxing,DC=hxx,DC=com"

通过模糊姓名查询关键用户:实例三

dsquery user -name *星*
"CN=王海星,OU=芙蓉,OU=长沙,OU=湖南,OU=华南分部,OU=中国总部,OU=hexingxing,DC=hxx,DC=com"
"CN=崔夏星,OU=华强北,OU=福田,OU=深圳,OU=华南分部,OU=中国总部,OU=hexingxing,DC=hxx,DC=com"

通过姓名查询输出 UPN(User Principal Name,用户主体名称)

dsquery user -name 何星星 -o upn
"hexingxing@hexingxing.cn"

通过姓名查询输出 SAMID(SAM Account,Name SAM 账户名)

dsquery user -name 何星星 -o samid
"hexingxing"

通过姓名查询输出 DN(Distinguished Name,区分名/目录条目的名字)

dsquery user -name 何星星 -o dn
"CN=何星星,OU=高级运维组,OU=技术部,OU=信息和新技术中心,OU=中国总部,OU=hexingxing,DC=hxx,DC=com"

通过 SAMID 查询输出 RDN(Relative Distinguished Name,可分辨名称)

dsquery user -samid hexingxing -o rdn
"何星星"

通过查询符合关键字为 test 描述字段的用户

dsquery user -desc test
"CN=于小小,OU=西湖,OU=南昌,OU=江西,OU=华南分部,OU=中国总部,OU=hexingxing,DC=hxx,DC=com"

通过 UPN 查询关键用户

dsquery user -upn hexingxing@hexingxing.cn
"CN=何星星,OU=高级运维组,OU=技术部,OU=信息和新技术中心,OU=中国总部,OU=hexingxing,DC=hxx,DC=com"

通过 SAMID 查询关键用户

dsquery user -samid hexing*
"CN=何星星,OU=高级运维组,OU=技术部,OU=信息和新技术中心,OU=中国总部,OU=hexingxing,DC=hxx,DC=com"

查询最近 2 周没有活动的用户

dsquery user -inactive 2
"CN=dd,CN=Users,DC=hxx,DC=com"
"CN=www,CN=Users,DC=hxx,DC=com"

查询最近 200 天没有修改密码的用户

dsquery user -stalepwd 200
"CN=Exchange Online-ApplicationAccount,CN=Users,DC=hxx,DC=com"
"CN=Guest,CN=Users,DC=hxx,DC=com"
"CN=ASPNET,CN=Users,DC=hxx,DC=com"

查询已禁用的用户

dsquery user -disabled
"CN=Exchange Online-ApplicationAccount,CN=Users,DC=hxx,DC=com"
"CN=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c},CN=Users,DC=hxx,DC=com"
"CN=Guest,CN=Users,DC=hxx,DC=com"
"CN=krbtgt,CN=Users,DC=hxx,DC=com"
"CN=SUPPORT_388945a0,CN=Users,DC=hxx,DC=com"

查询并显示所有姓 “张” 的用户,未加 -limit 0 命令默认显示前 100 个条目

dsquery user -name 张*
...

导出姓 “张” 的前 10 位用户并输出到 C 盘桌面目录保存为 data.txt 文件

dsquery user -name 张* -limit 0 >C:\Users\hexingxing.HXX\Desktop\data.txt

重置密码

dsmod user "CN=何逸轩,OU=朝阳,OU=北京,OU=华北分部,OU=中国总部,OU=hexingxing,DC=hxx,DC=com" -pwd A1b2C3d4 -mustchpwd yes

显示指定域组成员名单

Get-ADGroupMember -Identity "中国总部_上海研发组" -Recursive | Get-ADUser -Properties Mail | Select-Object Name,Mail

Name   Mail
----   ----
徐丹   xudan@hexingxing.cn
曾蕾   zenglei@hexingxing.cn
余刚   yugang@hexingxing.cn
彭华   penghua@hexingxing.cn
王博   wangbo@hexingxing.cn
卢嘉希 lujiaxi@hexingxing.cn
谭美玲 tanmeiling@hexingxing.cn
李红伟 lihongwei@hexingxing.cn
陈月   chenyue@hexingxing.cn

导出指定域组成员名单

Get-ADGroupMember -Identity "中国总部所有人员" -Recursive | Get-ADUser -Properties Mail | Select-Object Name,Mail >C:\Users\hexingxing.HXX\Desktop\data.txt

获取组成员详细信息

Get-ADGroupMember -Identity "中国总部所有人员"

搜索密码永不过期的账号

Search-ADAccount -PasswordNeverExpires

AccountExpirationDate :
DistinguishedName     : CN=Administrator,CN=Users,DC=hxx,DC=com
Enabled               : True
LastLogonDate         : 2019/7/25 17:28:58
LockedOut             : False
Name                  : Administrator
ObjectClass           : user
ObjectGUID            : b32db757-2d18-4715-91d4-6ca2a97ee662
PasswordExpired       : False
PasswordNeverExpires  : True
SamAccountName        : Administrator
SID                   : S-1-5-21-5792920-1990643082-3676145756-500
UserPrincipalName     : Administrator@hxx.com

查询已禁用的 AD 账号、计算机、服务账号

Search-ADAccount -AccountDisabled


AccountExpirationDate :
DistinguishedName     : CN=krbtgt,CN=Users,DC=hxx,DC=com
Enabled               : False
LastLogonDate         :
LockedOut             : False
Name                  : krbtgt
ObjectClass           : user
ObjectGUID            : b762e82c-e231-4364-a9f2-db79e8a3061d
PasswordExpired       : True
PasswordNeverExpires  : False
SamAccountName        : krbtgt
SID                   : S-1-5-21-1306548705-3882769175-3968532004-502
UserPrincipalName     :

AccountExpirationDate :
DistinguishedName     : CN=王海星,OU=芙蓉,OU=长沙,OU=湖南,OU=华南分部,OU=中国总部,OU=hexingxing,DC=hxx,DC=com
Enabled               : False
LastLogonDate         :
LockedOut             : False
Name                  : 王海星
ObjectClass           : user
ObjectGUID            : 0aa08423-3e62-4b0e-9b0f-cd0a7185afb1
PasswordExpired       : True
PasswordNeverExpires  : False
SamAccountName        : whx
SID                   : S-1-5-21-1306548705-3882769175-3968532004-2727
UserPrincipalName     : whx@hexingxing.cn

仅搜索已禁用的 AD 账户

Search-ADAccount -AccountDisabled -UsersOnly

仅搜索已禁用的计算机账号

Search-ADAccount -AccountDisabled -ComputersOnly

搜索已过期的 AD 账号、计算机、服务账号

Search-ADAccount -AccountExpired

优雅的使用简短的 CMD 命令快捷方式注销或锁定计算机

注销 logoff.bat
命令<1>

rundll32.Exe shell32.dll SHExitWindowsEx 0

命令<2>

shutdown -l

关机 shutdown.bat
命令<1>

rundll32.Exe shell32.dll SHExitWindowsEx 1

命令<2>

shutdown -s -t 00

重启 reboot.bat
命令<1>

rundll32.Exe shell32.dll SHExitWindowsEx 2

命令<2>

shutdown -r -t 00

锁定 lock.bat
命令<1>

rundll32.Exe user32.dll LockWorkStation

0:注销,1:关机,2:重启,4:关闭电源。
命令<1> 代码保存为 .bat 文件,建立快捷方式放在桌面,然后设置快捷键,直接快捷执行,例如将锁定的快捷方式设置快捷键为 F12,单按 F12 即可锁定电脑。
命令<2> 直接运行即可。

NetSH 网络配置命令行工具

netsh (Network Shell) 是一个 windows 系统本身提供的功能强大的网络配置命令行工具。
导出配置脚本:netsh -c interface ip dump > c:\interface.txt
导入配置脚本:netsh -f c:\interface.txt。

netsh interface ip show address - 显示 IP 地址
netsh interface ip show config - 显示更多详情
netsh interface ip show ipaddress - 显示 IP 地址类型
netsh interface ip show ipnet - 显示网络到媒体项目
netsh interface ip show route - 显示当前路由信息

netsh interface ip show interface - 显示接口信息
netsh interface ip set address "以太网" dhcp - 通过 DHCP 设置 IP 地址
netsh interface ip set address "以太网" static 10.1.2.10 255.255.255.0 10.1.2.254 - 设置以太网 IP 地址

netsh interface ip show dns - 显示 DNS 地址
netsh interface ip set dns "以太网" dhcp - 通过 DHCP 设置 DNS 地址
netsh interface ip set dns "以太网" static 10.0.12.8 - 设置以太网 DNS 地址,清除原有 DNS 设置
netsh interface ip add dns "以太网" 114.114.114.114 index=2 - 添加以太网 DNS 地址,index 为自定义排序
netsh interface ip add dns "以太网" 8.8.8.8 index=3 - 添加以太网 DNS 地址,index 为自定义排序
netsh interface ip add dns "以太网" 1.1.1.1 index=4 - 添加以太网 DNS 地址,index 为自定义排序
netsh interface ip add dns "以太网" 223.5.5.5 index=5 - 添加以太网 DNS 地址,index 为自定义排序

netsh -c interface dump > d:\1.txt 导出配置到 D 盘并命名为 1.txt
netsh -f d:\2.txt 导入在 D 盘命名为 2.txt 的配置文件

C:\Users\Administrator>netsh

abort – 丢弃在脱机模式下所做的更改。
add – 在项目列表上添加一个配置项目。
advfirewall – 更改到 `netsh advfirewall’ 上下文。
alias – 添加一个别名
branchcache – 更改到 `netsh branchcache’ 上下文。
bridge – 更改到 `netsh bridge’ 上下文。
bye – 退出程序。
commit – 提交在脱机模式中所做的更改。
delete – 在项目列表上删除一个配置项目。
dhcpclient – 更改到 `netsh dhcpclient’ 上下文。
dnsclient – 更改到 `netsh dnsclient’ 上下文。
dump – 显示一个配置脚本。
exec – 运行一个脚本文件。
exit – 退出程序。
firewall – 更改到 `netsh firewall’ 上下文。
help – 显示命令列表。
http – 更改到 `netsh http’ 上下文。
interface – 更改到 `netsh interface’ 上下文。
ipsec – 更改到 `netsh ipsec’ 上下文。
lan – 更改到 `netsh lan’ 上下文。
mbn – 更改到 `netsh mbn’ 上下文。
namespace – 更改到 `netsh namespace’ 上下文。
netio – 更改到 `netsh netio’ 上下文。
offline – 将当前模式设置成脱机。
online – 将当前模式设置成联机。
p2p – 更改到 `netsh p2p’ 上下文。
popd – 从堆栈上打开一个上下文。
pushd – 将当前上下文放入堆栈。
quit – 退出程序。
ras – 更改到 `netsh ras’ 上下文。
rpc – 更改到 `netsh rpc’ 上下文。
set – 更新配置设置。
show – 显示信息。
trace – 更改到 `netsh trace’ 上下文。
unalias – 删除一个别名。
wcn – 更改到 `netsh wcn’ 上下文。
wfp – 更改到 `netsh wfp’ 上下文。
winhttp – 更改到 `netsh winhttp’ 上下文。
winsock – 更改到 `netsh winsock’ 上下文。
wlan – 更改到 `netsh wlan’ 上下文。

>netsh winsock

audit – 显示已经安装和删除的 Winsock LSP 列表。
dump – 显示一个配置脚本。
help – 显示命令列表。
remove – 从系统中删除 Winsock LSP。
reset – 重置 Winsock 目录为清除状态。
set – 设置 Winsock 选项。
show – 显示信息。

>netsh interface

6to4 – 更改到 `netsh interface 6to4′ 上下文。
? – 显示命令列表。
dump – 显示一个配置脚本。
help – 显示命令列表。
httpstunnel – 更改到 `netsh interface httpstunnel’ 上下文。
ipv4 – 更改到 `netsh interface ipv4′ 上下文。
ipv6 – 更改到 `netsh interface ipv6′ 上下文。
isatap – 更改到 `netsh interface isatap’ 上下文。
portproxy – 更改到 `netsh interface portproxy’ 上下文。
set – 设置配置信息。
show – 显示信息。
tcp – 更改到 `netsh interface tcp’ 上下文。
teredo – 更改到 `netsh interface teredo’ 上下文。

>netsh interface ipv4

add – 在一个表格中添加一个配置项。
delete – 从一个表格中删除一个配置项。
dump – 显示一个配置脚本。
help – 显示命令列表。
install – 安装 IP 协议。
reset – 重置 IP 配置。
set – 设置配置信息。
show – 显示信息。
uninstall – 卸载 IP 协议。

>netsh interface ipv4 set

set address – 设定通向接口的 IP 地址或默认网关。
set compartment – 修改分段配置参数。
set dnsservers – 设置 DNS 服务器模式和地址。
set dynamicportrange – 修更改态端口分配所使用端口的范围。
set global – 修改全局配置常规参数。
set interface – 修改 IP 的接口配置参数。
set neighbors – 设置邻居地址。
set route – 修改路由参数。
set subinterface – 修改子接口配置参数。
set winsservers – 设置 WINS 服务器模式和地址。

>netsh interface ipv4 show

show addresses – 显示 IP 地址配置。
show compartments – 显示分段参数。
show config – 显示 IP 地址和其他信息。
show destinationcache – 显示目标缓存项目。
show dnsservers – 显示 DNS 服务器地址。
show dynamicportrange – 显示动态端口范围配置参数。
show excludedportrange – 显示所有排除的端口范围。
show global – 显示全局配置普通参数。
show icmpstats – 显示 ICMP 统计。
show interfaces – 显示接口参数。
show ipaddresses – 显示当前 IP 地址。
show ipnettomedia – 显示 IP 的网络到媒体的映射。
show ipstats – 显示 IP 统计。
show joins – 显示加入的多播组。
show neighbors – 显示邻居缓存项。
show offload – 显示卸载信息。
show route – 显示路由表项目。
show subinterfaces – 显示子接口参数。
show tcpconnections – 显示 TCP 连接。
show tcpstats – 显示 TCP 统计。
show udpconnections – 显示 UDP 连接。
show udpstats – 显示 UDP 统计。
show winsservers – 显示 WINS 服务器地址。

>netsh interface ipv4 add

add address – 将静态 IP 地址或默认网关添加到指定接口。
add dnsservers – 添加一个静态 DNS 服务器地址。
add excludedportrange – 为连续的端口块添加排除。
add neighbors – 添加邻居地址。
add route – 在接口上添加路由。
add winsservers – 添加一个静态 WINS 服务器地址。

查询 Office 2013&Office 2016 激活状态

查询 Office 2013

cscript "C:\Program Files\Microsoft Office\Office15\ospp.vbs" /dstatus

查询 Office 2016

cscript "C:\Program Files\Microsoft Office\Office16\ospp.vbs" /dstatus

也可在 Office 的安装目录下 “C:\Program Files\Microsoft Office\Office15”(以 Office 2013 为例)hold shift and right click  打开 cmd 或 powershell 执行以下简单命令:

cscript ospp.vbs /dstatus

//注意,目录下有个 “OSPP.VBS” vb 程序执行才有效