whoami
——查看当前有效用户
这个工具可以用来获取本地系统上当前用户(访问令牌)的用户名和组信息,以及相应的安全标识符(SID)、声明、本地系统上当前用户的权限、登录标识符(登录 ID)。例如,谁是当前已登录的用户?
格式(域\用户名)。
命令格式1:WHOAMI [/UPN | /FQDN | /LOGONID]
命令格式2:WHOAMI { [/USER] [/GROUPS] [/CLAIMS] [/PRIV] } [/FO format] [/NH]
命令格式3:WHOAMI /ALL [/FO format] [/NH]
参数说明:
- /UPN 用用户主体 (User Principal) 格式显示用户名名称 (UPN)格式。
- /FQDN 用完全合格的 (Fully Qualified) 格式显示用户名可分辨名称(FQDN) 格式。
- /USER 显示当前用户的信息以及安全标识符 (SID)。
- /GROUPS 显示当前用户的组成员信息、帐户类型和安全标识符 (SID) 和属性。
- /CLAIMS 显示当前用户的声明,包括声明名称、标志、类型和值。
- /PRIV 显示当前用户的安全特权。
- /LOGONID 显示当前用户的登录 ID。
- /ALL 显示当前用户名、所属的组以及安全等级当前用户访问令牌的标识符(SID)、声明和权限。
- /FO format 指定要显示的输出格式。有效值为 TABLE、LIST、CSV。列标题未使用 CSV
- 格式显示。默认格式为 TABLE。
- /NH 指定不应在输出中显示列标题。此参数仅对TABLE 和 CSV 格式有效。
例1、显示当前用户的信息和安全标识符(sid)
whoami /user
例2、以列表形式输出 显示当前用户名、所属的组以及安全等级当前用户访问令牌的标识符(sid)、声明和权限。
whoami /all /fo list
query
——查询进程与会话
命令格式:QUERY { PROCESS | SESSION | TERMSERVER | USER }[参数]
(1)显示有关进程的信息
QUERY PROCESS [* | processid | username | sessionname | /ID:nn | programname] [/SERVER:servername]
参数说明:
- * 显示所有可见进程。
- processid 显示 processid 指定的进程。
- username 显示所有属于 username 的进程。
- sessionname 显示所有在 sessionname 运行的进程。
- /ID:nn 显示所有在会话 nn 运行的进程。
- programname 显示所有跟 programname 相关进程。
- /SERVER:servername 要查询的远程桌面会话主机服务器。
(2)显示有关远程桌面服务会话的信息。
QUERY SESSION [sessionname | username | sessionid] [/SERVER:servername] [/MODE] [/FLOW] [/CONNECT] [/COUNTER] [/VM]
参数说明:
- sessionname 用名称 sessionname 识别会话。
- username 用用户 username 识别会话。
- sessionid 用 ID sessionid 识别会话。
- /SERVER:servername 要查询的服务器(默认值是当前值)。
- /MODE 显示当前线路设置。
- /FLOW 显示当前流控制设置。
- /CONNECT 显示当前连接设置。
- /COUNTER 显示当前远程桌面服务计数器信息。
- /VM 显示有关虚拟机内会话的信息。
(3)显示网络上可用的远程桌面会话主机服务器。
QUERY TERMSERVER [servername] [/DOMAIN:domain] [/ADDRESS] [/CONTINUE]
参数说明:
- servername 标识远程桌面会话主机服务器。
- /DOMAIN:domain 显示指定域的信息(默认值是当前域)。
- /ADDRESS 显示网络和节点地址。
- /CONTINUE 在每个信息屏幕后不暂停。
(4)显示有关登录到该系统的用户的信息。
QUERY USER [username | sessionname | sessionid] [/SERVER:servername]
参数说明:
username 标识用户名。
sessionname 用名称 sessionname 识别会话。
sessionid 用 ID sessionid 识别会话。
/SERVER:servername 要查询的服务器(默认值是当前值)。
tasklist
——显示进程列表
该工具显示在本地或远程机器上当前运行的进程列表。
命令格式:TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]
参数列表:
- /S 指定连接到的远程系统。
- /U 指定应该在哪个用户上下文执行这个命令。
- /P 为提供的用户上下文指定密码。如果省略,则 提示输入。
- /M 列出当前使用所给 exe/dll 名称的所有任务。 如果没有指定模块名称,显示所有加载的模块。
- /SVC 显示每个进程中主持的服务。
- /APPS 显示 Microsoft Store 应用及其关联的进程。
- /V 显示详细任务信息。
- /FI 示一系列符合筛选器指定条件的任务。
- /FO 指定输出格式。有效值: "TABLE"、"LIST"、"CSV"。
- /NH 指定列标题不应该在输出中显示。只对 "TABLE" 和 "CSV" 格式有效。
筛选器:
筛选器名称 有效运算符 有效值
---------------- --------------- --------------------------
STATUS eq, ne RUNNING | SUSPENDED
NOT RESPONDING | UNKNOWN
IMAGENAME eq, ne 映像名称
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 会话编号
SESSIONNAME eq, ne 会话名称
CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为
hh:mm:ss。
hh - 小时,
mm - 分钟,ss - 秒
MEMUSAGE eq, ne, gt, lt, ge, le 内存使用(以 KB 为单位)
USERNAME eq, ne 用户名,格式为
[域\]用户
SERVICES eq, ne 服务名称
WINDOWTITLE eq, ne 窗口标题
模块 eq, ne DLL 名称
------------------------------------------------------------------------------------------------------------------------
eq 就是 equal 等于
ne 就是 not equal 不等于
gt 就是 greater than 大于
lt 就是 less than 小于
ge 就是 greater than or equal 大于等于
le 就是 less than or equal 小于等于
注意: 当查询远程计算机时,不支持 "WINDOWTITLE" 和 "STATUS"筛选器。
例1、查看系统中正在运行的非"SYSTEM"状态的所有进程
tasklist /fi "username ne nt authority\system" /fi "status eq running"
例2、查看"svchost.exe"进程对应的服务
tasklist /fi "imagename eq svchost.exe" /svc
例3、显示所有调用"shell32.dll"DLL模块文件的进程
tasklist /m shell32.dll
taskkill
——终止进程(部分进程,如系统进程,需要以管理员权限终止)
使用该工具按照进程 ID (PID) 或映像名称终止任务。
命令格式:TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]
参数列表:
- /S 指定要连接的远程系统。
- /U 指定应该在哪个用户上下文执行这个命令。
- /P 为提供的用户上下文指定密码。如果忽略,提示输入。
- /FI 应用筛选器以选择一组任务。允许使用 "*"。例如,映像名称 eq acme*
- /PID 指定要终止的进程的 PID。使用 TaskList 取得 PID。
- /IM 指定要终止的进程的映像名称。通配符 '*'可用来指定所有任务或映像名称。
- /T 终止指定的进程和由它启用的子进程。
- /F 指定强制终止进程。
筛选器:
筛选器名称 有效运算符 有效值
---------------- --------------- --------------------------
STATUS eq, ne RUNNING |
NOT RESPONDING | UNKNOWN
IMAGENAME eq, ne 映像名称
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 会话编号。
CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为
hh:mm:ss。
hh - 时,
mm - 分,ss - 秒
MEMUSAGE eq, ne, gt, lt, ge, le 内存使用量,单位为 KB
USERNAME eq, ne 用户名,格式为 [domain\]user
MODULES eq, ne DLL 名称
SERVICES eq, ne 服务名称
WINDOWTITLE eq, ne 窗口标题
------------------------------------------------------------------------------------------------------------------------
说明
----
1) 只有在应用筛选器的情况下,/IM 切换才能使用通配符 '*'。
2) 远程进程总是要强行 (/F) 终止。
3) 当指定远程机器时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。
例1、终止"notepad.exe"的进程
taskkill /im notepad.exe
例2、终止pid为17336的进程及其所有子进程(树终止)
taskkill /t /pid 17336
例3、强制终止pid大于0的所有进程(WinXP执行此命令直接蓝屏,XP以上系统则需要管理员权限打开,是居家旅行、整人恶搞的必备命令)
taskkill /f /fi " pid gt 0"
systeminfo
显示关于计算机及其操作系统详细配置信息,包括操作系统配置、安全信息、产品ID和硬件属性,如RAM、磁盘空间和网卡
gpresult
显示目标用户和计算机的策略结果集 (RSoP) 的信息
gpupdate
刷新本地和基于 Active Directory组策略
eventcreate
——在应用程序日志中创建一个新日志事件
(需要以管理员身份运行命令提示符)
该命令行工具使管理员能够创建一个自定义事件 ID 和消息于某指定事件日志里
命令格式:EVENTCREATE [/S system [/U username [/P [password]]]] /ID eventid [/L logname] [/SO srcname] /T type /D description
参数列表:
- /S 指定要连接的远程系统。
- /U 指定应该在哪个用户上下文执行命令。
- /P 指定给定用户上下文的密码。如果省略则 提示输入。
- /L 指定要在其中创建事件事件日志。
- /T 指定要创建的事件类型。有效的类型是:SUCCESS,ERROR,WARNING,INFORMATION。
- /SO 为此事件指定要使用的来源(如果没有指定,默认来源则为'eventcreate')。有效来源可以是任何字符串并应该代表应用程序或生成事件的组件。
-
- /ID 指定事件的 ID。有效的自定义消息 ID 在范围 1 - 1000 以内。
-
- /D 为新事件指定描述文字。
例、在应用程序日志中创建一个"ERROR"事件,有效ID值为150,描述文字为"创建应用程序事件"
eventcreate /t error /id 150 /l application /d "创建应用程序日志事件"
sc
——用来与服务控制管理器和服务进行通信
服务——是一种应用程序,它在后台运行。服务应用程序通常可以在本地通过网络为用户提供一些功能,例如客户端/服务器应用程序、Web服务器、数据库服务器以及基于服务器的应用程序。
扩展:
Windows服务是指Windows NT操作系统中的一种运行在后台的计算机程序。它在概念上类似于Unix守护进程。Windows服务必须符合服务控制管理器(负责管理Windows服务的组件)的接口规则和协议。
Windows服务可以配置为在操作系统启动时运行,并且在Windows运行期间持续在后台运行。服务也可以手动或基于某个事件而启动。Windows NT操作系统包含众多服务,分别运行在三种用户帐户环境中:系统、网络服务和本地服务。这些Windows组件通常采用Windows服务托管进程。因为Windows服务运行在其自身的专用用户帐户中,它们可以在用户未登录时活动。
服务扩展的命令行接口是Sc.exe,名为“服务控制”实用工具。[7]此工具在Windows XP[8]及更高版本中提供。
Sc.exe的管理范围仅限于本地计算机。从Windows Server 2003开始,Sc.exe不仅能做到“服务扩展”支持的操作,还可以安装和卸载服务。
命令用法:sc <server> [command] [service name] <option1> <option2>...
<server> 选项的格式为 "\\ServerName"
子命令[command]:
- query 查询服务的状态,或枚举服务类型的状态。
- queryex 查询服务的扩展状态,或枚举服务类型的状态。
- start 启动服务。
- pause 向服务发送 PAUSE 控制请求。
- interrogate 向服务发送 INTERROGATE 控制请求。
- continue 向服务发送 CONTINUE 控制请求。
- stop 向服务发送 STOP 请求。
- config 更改服务的配置(永久)。
- description 更改服务的描述。
- failure 更改失败时服务执行的操作。
- failureflag 更改服务的失败操作标志。
- sidtype 更改服务的服务 SID 类型。
- privs 更改服务的所需特权。
- managedaccount 更改服务以将服务帐户密码标记为由 LSA 管理。
- qc 查询服务的配置信息。
- qdescription 查询服务的描述。
- qfailure 查询失败时服务执行的操作。
- qfailureflag 查询服务的失败操作标志。
- qsidtype 查询服务的服务 SID 类型。
- qprivs 查询服务的所需特权。
- qtriggerinfo 查询服务的触发器参数。
- qpreferrednode 查询服务的首选 NUMA 节点。
- qmanagedaccount 查询服务是否将帐户与 LSA 管理的密码结合使用。
- qprotection 查询服务的进程保护级别。
- quserservice 查询用户服务模板的本地实例。
- delete (从注册表中)删除服务。
- create 创建服务(并将其添加到注册表中)。
- control 向服务发送控制。
- sdshow 显示服务的安全描述符。
- sdset 设置服务的安全描述符。
- showsid 显示与任意名称对应的服务 SID 字符串。
- triggerinfo 配置服务的触发器参数。
- preferrednode 设置服务的首选 NUMA 节点。
- GetDisplayName 获取服务的 DisplayName。
- GetKeyName 获取服务的 ServiceKeyName。
- EnumDepend 枚举服务依赖关系。
以下子命令不需要服务名称:
boot (ok | bad)指示是否应将上一次启动另存为最近一次已知的正确启动配置
Lock 锁定服务数据库
QueryLock 查询 SCManager 数据库的 LockStatus
例1、枚举活动服务和驱动程序的状态
sc query
例2、显示eventlog服务的状态
sc query eventlog
例3、显示eventlog服务的扩展状态
sc queryex eventlog
例4、枚举所有不活动的服务
sc query type=interact
例5、枚举所有活动的驱动程序
sc query type=driver
例6、仅枚举win32服务
sc query type=service
例7、枚举所有活动和驱动程序
sc query state=all
例8、枚举不在组内的活动服务
sc queryex group=""
例9、枚举所有NDIS驱动程序
sc query type=driver group=NDIS
例10、查询eventlog的配置信息
sc qc eventlog
例11、创建一个服务,指定服务名称为"NewServ",服务二进制文件路径为C:\windows\system32\NewService.exe,服务类型为共享进程(share),启动类型为自启动(auto)
sc create NewServ binpath=c:\windows\system32\NewService.exe type=share start=auto
例12、修改服务"NewServ"的启动方式为手动启动(demand)
sc config NewServ start=demand
例13、删除服务"NewServ"
sc delete NewServ
sc create/config的参数列表:
参数
|
描述
|
<ServerName>
|
指定服务所在的远程服务器的名称。该名称必须使用通用命名约定(UNC)格式(例如,\\ myserver)。要在本地运行SC.exe,请忽略此参数。
|
<ServiceName>
|
指定getkeyname操作返回的服务名称。
|
type= {own| share | kernel | filesys | rec | adapt | interact type= {own | share}}
|
指定服务类型。
own-指定在自己的进程中运行的服务。它不与其他服务共享可执行文件。这是默认值。
share-指定作为共享进程运行的服务。它与其他服务共享一个可执行文件。
kernel-指定驱动程序。
filesys-指定文件系统驱动程序。
rec-指定文件系统可识别的驱动程序,该驱动程序标识计算机上使用的文件系统。
adapt-指定用于识别硬件设备(例如键盘,鼠标和磁盘驱动器)的适配器驱动程序。
interact-指定可以与桌面进行交互的服务,以接收用户的输入。交互式服务必须在LocalSystem帐户下运行。此类型必须与type = own或type = shared一起使用(例如,type = interact type = own)。单独使用type = interact将产生错误。
|
start= {boot | system | auto | demand | disabled | delayed-auto}
|
指定服务的启动类型。
boot-指定由引导加载程序加载的设备驱动程序。
system-指定在内核初始化期间启动的设备驱动程序。
auto-指定一种服务,即使没有人登录到计算机,该服务也会在每次重新启动计算机时自动启动并运行。
demand-指定必须手动启动的服务。如果未指定start =,则为默认值。
disabled-指定无法启动的服务。要启动禁用的服务,请将启动类型更改为其他值。
delayed-auto-指定在其他自动服务启动后不久自动启动的服务。
|
error= {normal | severe | critical | ignore}
|
如果服务在启动时无法启动,则指定错误的严重性。
normal-指定记录错误并显示消息框,通知用户服务未能启动。启动将继续。这是默认设置。
severe-指定记录错误(如果可能)。计算机尝试使用最新的正确配置重新启动。这可能导致计算机能够重新启动,但是该服务可能仍然无法运行。
critical-指定记录错误(如果可能)。计算机尝试使用最新的正确配置重新启动。如果最后一次正确的配置失败,则启动也会失败,并且引导过程将因Stop错误而停止。
ignore-指定记录错误并继续启动。除了将错误记录在事件日志中之外,没有通知用户。
|
binpath= <BinaryPathName>
|
指定服务二进制文件的路径。
|
group= <LoadOrderGroup>
|
指定此服务所属的组的名称。组列表存储在注册表的HKLM\System\CurrentControlSet\Control\ServiceGroupOrder子项中。默认值为空。
|
tag= {yes | no}
|
指定是否从CreateService调用中获取TagID。标签仅用于引导启动和系统启动驱动程序。
|
obj= {<AccountName> | <ObjectName>}
|
指定将在其中运行服务的帐户的名称,或指定将在其中运行驱动程序的Windows驱动程序对象的名称。默认设置为LocalSystem。
|
displayname= <DisplayName>
|
指定用于在用户界面程序中标识服务的描述性名称。例如,一个特定服务的子项名称是wuauserv,它具有更友好的显示名称“自动更新”。
|
password= <Password>
|
指定密码。如果使用的不是LocalSystem帐户,则这是必需的。
|