psr问题步骤记录器命令⾏参数介绍

本文介绍了问题步骤记录器(psr.exe)的命令行参数,如/start、/stop、/output等,用于控制录制屏幕操作和生成报告。同时,讲解了通过本地组策略编辑器启用或禁用PSR的步骤,涉及注册表键值设置。

psr问题步骤记录器,记录屏幕上的操作步骤,并且对⿏标点击操作增加特效


来了psr的命令⾏参数和禁⽤/开启psr⽅法。
psr命令⾏参数如下:
psr.exe [/start |/stop][/output <fullfilepath>] [/sc (0|1)] [/maxsc <value>]
[/sketch (0|1)] [/slides (0|1)] [/gui (0|1)]
[/arcetl (0|1)] [/arcxml (0|1)] [/arcmht (0|1)]
[/stopevent <eventname>] [/maxlogsize <value>] [/recordpid <pid>]
/start 开始录制,需要指定⽂件保存路径
/stop 停⽌录制
/sc 捕捉记录步骤的截图,0|1
/maxsc 最⼤的截图数量
/maxlogsize 最⼤⽇志⽂件⼤⼩(MB)
/gui 是否显⽰psr的界⾯,0|1
/arcetl Include raw ETW file in archive output.
/arcxml Include MHT file in archive output.
/recordpid Record all actions associated with given PID.记录所有和指定PID相关的操作?
/sketch Sketch UI if no screenshot was saved.
/slides Create slide show HTML pages.
/output Store output of record session in given path.
/stopevent Event to signal after output files are generated.
 

⽰例:psr.exe /start /gui 0 /output D:\6san\test.zip
//后台启动psr开始录制,报告⽂件保存为D:\6san\test.zip
psr.exe /stop
//结束录制并退出psr,⾃动保存报告⽂件
启⽤/关闭问题步骤记录器
gpedit.msc打开本地组策略编辑器–>管理模板–>Windows组件–>应⽤程序兼容性–>启⽤/关闭问题步骤记录器
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat]
新建”DisableUAR”=dword:00000001
dword=1已启⽤
dword=0已禁⽤
删除”DisableUAR”对应组策略中的未配置

# 完整实验步骤与代码(已修复 partx 问题,学号:202312410417,姓名缩写:lzh) --- ## 题目重述 本题为综合性 Linux 运维实操任务,涵盖虚拟机搭建、用户权限、磁盘管理、Shell 脚本、网络服务和进程监控六大模块。当前已在 root 账户下操作,并解决 `partx -a /dev/sdb` 报错问题,提供完整可执行命令流程。 --- ## 详解 ### ✅ 环境准备 - **系统**:OpenEuler 24.03 LTS x86_64 - **虚拟机平台**:VMware Workstation - **原始磁盘**:`/dev/sda`(20GB,保留 ≥5GB 未分配) - **新增磁盘**:`/dev/sdb`(24GB)→ 已添加至虚拟机 - **主机名**:`student17-openeuler` - **当前身份**:`root`(无需 sudo) --- ### **任务一:OpenEuler虚拟机环境搭建** ```bash # 1. 设置主机名 hostnamectl set-hostname student17-openeuler # 2. 查看主机名是否生效 hostnamectl # 3. 检查原磁盘空间(确认有≥5GB未分配) lsblk fdisk -l /dev/sda | grep -A 5 "Free" # 4. 创建初始用户 user 并设置密码 useradd -m user passwd user # 输入密码 # 5. 授予 wheel 权限(使其可使用 sudo) usermod -aG wheel user # 6. 确保 root 密码已设置 passwd root # 可选:再次确认 ``` > ✅ 提交建议:`lsblk` 和 `hostnamectl` 截图 --- ### **任务二:用户与组权限管理** ```bash # 1. 创建组 class (GID=417,学号后三位) groupadd -g 417 class # 2. 创建两个用户(姓名缩写 lzh) useradd -m lzh_user1 useradd -m lzh_user2 passwd lzh_user1 # 设置密码 passwd lzh_user2 # 设置密码 # 3. 将 lzh_user1 添加至 class 组 usermod -aG class lzh_user1 # 4. 创建共享目录结构 mkdir -p /data/class_project/{docs,reports} chown root:class /data/class_project chmod 775 /data/class_project # 5a. docs 目录:仅 class 组成员可访问 chmod 770 /data/class_project/docs # 5b. reports 目录:默认开放,后续通过 ACL 控制 chmod 755 /data/class_project/reports # 5c. 使用 setfacl 授予 lzh_user2 写入权限 setfacl -m u:lzh_user1:rwx /data/class_project/reports setfacl -m u:lzh_user2:rwx /data/class_project/reports # 6. 在 docs 中创建 project_plan.txt echo "Project Plan for Class Project Student ID: 202312410417" > /data/class_project/docs/project_plan.txt # 7. 追加个人姓名缩写 echo "LiangZiHao" >> /data/class_project/docs/project_plan.txt # 显示文件内容 cat /data/class_project/docs/project_plan.txt # 8. 修改权限:属主可读写,组内只读 chmod 640 /data/class_project/docs/project_plan.txt # 9. 切换到 lzh_user2 验证权限 su - lzh_user2 << 'EOF' touch /data/class_project/docs/test.txt # 应失败(无权限) echo $? > /tmp/docs_fail 2>/dev/null || echo "Permission denied (OK)" touch /data/class_project/reports/test.txt # 应成功(ACL授权) echo "Write success to reports" EOF # 10. 生成完整文件树并检查 ACL tree /data getfacl /data/class_project/reports ``` > ✅ 提交建议:`project_plan.txt` 内容、`tree` 输出、`getfacl` 结果截图 --- ### **任务三:磁盘管理与配额** #### 第一步:添加新虚拟磁盘(24GB)→ `/dev/sdb` > 在 VMware 中确保已添加 24GB 硬盘 ```bash # 1. 检查新磁盘是否识别 lsblk | grep sdb # 如果之前出错,请先卸载残留挂载点(如有) umount /dev/sdb1 /dev/sdb5 /dev/sdb6 2>/dev/null || true ``` #### 第二步:正确分区并刷新内核(解决 partx 错误) ```bash # 2. 使用 fdisk 正确分区 fdisk /dev/sdb << EOF n p 1 +12G n e 2 +8G n +7.2G n +4.8G w EOF # 3. 使用 partprobe 替代 partx(推荐方式) partprobe /dev/sdb # 验证分区是否生成 sleep 2 lsblk /dev/sdb ``` ✅ 此时应看到: - `/dev/sdb1`(12G,主分区) - `/dev/sdb5`(7.2G,逻辑) - `/dev/sdb6`(4.8G,逻辑) #### 第三步:格式化并挂载 ```bash # 4. 格式化各分区 mkfs.ext4 /dev/sdb1 # /mnt/devteam1 mkfs.ext4 /dev/sdb5 # /mnt/devteam2 mkfs.xfs /dev/sdb6 # /mnt/devteam3 # 5. 创建挂载点 mkdir -p /mnt/devteam{1,2,3} # 6. 临时挂载(主分区 + 逻辑分区1) mount /dev/sdb1 /mnt/devteam1 mount /dev/sdb5 /mnt/devteam2 # 7. 自动挂载逻辑分区2(xfs,支持配额) echo "/dev/sdb6 /mnt/devteam3 xfs defaults,usrquota,grpquota 0 0" >> /etc/fstab mount -o usrquota,grpquota /dev/sdb6 /mnt/devteam3 # 8. 启用磁盘配额 quotacheck -cugm /mnt/devteam3 quotaon /mnt/devteam3 # 9. 设置 lzh_user1 对 /mnt/devteam3 的限额 edquota -u lzh_user1 << 'EOF' # blocks: soft=3072KB (~3MB), hard=5120KB (~5MB) # inodes: soft=3, hard=5 /dev/sdb6: 0 3072 5120 0 3 5 EOF # 10. 测试配额 su - lzh_user1 << 'EOF' dd if=/dev/zero of=/mnt/devteam3/file1 bs=1M count=4 # 超软限制警告 dd if=/dev/zero of=/mnt/devteam3/file2 bs=1M count=2 # 超硬限报错(预期) EOF ``` #### 第四步:原磁盘扩展(使用剩余 ~5.5GB) ```bash # 1. 创建扩展分区 /dev/sda4(大小 5G) fdisk /dev/sda << EOF n p 4 +5G t 4 8e w EOF # 刷新分区表 partprobe /dev/sda # 2. 创建 PV(物理卷) pvcreate /dev/sda4 # 3. 创建 VG(卷组) vgcreate vg_storage /dev/sda4 # 4. 创建 LV(逻辑卷 lv_www,初始 3G) lvcreate -L 3G -n lv_www vg_storage # 5. 格式化并挂载到 /var/www mkfs.ext4 /dev/vg_storage/lv_www mkdir -p /var/www mount /dev/vg_storage/lv_www /var/www # 6. 动态扩容 LV 至 5G lvextend -L 5G /dev/vg_storage/lv_www resize2fs /dev/vg_storage/lv_www # 验证扩容结果 df -h /var/www ``` > ✅ 提交建议:`df`, `lvs`, `vgs`, `pvs`, `edquota`, `dd`错误信息截图 --- ### **任务四:Shell脚本开发** #### 脚本1:`script1.sh` —— 批量用户生命周期管理 ```bash cat > script1.sh << 'EOF' #!/bin/bash # Author: 202312410417_lzh USER_PREFIX="stu" UID_MIN=1000 UID_MAX=2000 usage() { echo "Usage: $0 -a username | -d username" } while getopts "a:d:" opt; do case $opt in a) read -p "Enter UID range [$UID_MIN-$UID_MAX]: " input_uid if [[ $input_uid =~ ^[0-9]+$ ]]; then UID_MIN=$input_uid fi if id "$OPTARG" &>/dev/null; then echo "User $OPTARG already exists." else useradd -m -u $((UID_MIN + RANDOM % 1000)) -G class "$OPTARG" echo "User $OPTARG created and added to class group." fi ;; d) if ! id "$OPTARG" &>/dev/null; then echo "User $OPTARG does not exist." else read -p "Delete user $OPTARG and home? [y/N] " confirm [[ $confirm == [Yy] ]] && userdel -r "$OPTARG" fi ;; *) usage exit 1 ;; esac done EOF chmod +x script1.sh ``` #### 脚本2:`script2.sh` —— 日志分析统计 ```bash cat > script2.sh << 'EOF' #!/bin/bash # Author: 202312410417_lzh LOG_DIR="/var/log" FILTER=".log" TOTAL_SIZE=0 read -p "Enter filename filter (default: .log): " input_filter [[ -n "$input_filter" ]] && FILTER="$input_filter" for file in $LOG_DIR/*$FILTER; do if [[ -f "$file" ]]; then size=$(stat -c%s "$file") let TOTAL_SIZE+=size fi done echo "Total size of matching logs: ${TOTAL_SIZE} bytes" # 模拟日志生成器(随机输出) random_line="$(date): ERROR $(RANDOM) occurred in module $(printf '%.3s' $RANDOM)" echo "$random_line" >> /tmp/test.log cat /tmp/test.log EOF chmod +x script2.sh ``` #### 测试脚本: ```bash # 测试用户添加功能 ./script1.sh -a lzh_user2 # 执行日志脚本 ./script2.sh cat /tmp/test.log ``` > ✅ 提交建议:两个脚本代码 + 执行结果 + `/tmp/test.log` 内容截图 --- ### **任务五:网络与安全配置** ```bash # 1. 查看网卡信息 ip addr show # 字段说明: # - 网卡名称:ens33(或类似) # - IP地址:inet 字段(如 192.168.1.105) # - MAC地址:link/ether 字段 # 2. 测试内外网连通性 ping -c 4 192.168.1.1 # 主机通信 ping -c 4 www.baidu.com # 外网连接 # 查看防火墙状态 firewall-cmd --state # 3. 开放 SSH(22), HTTP(80), Samba(445) firewall-cmd --permanent --add-port={22,80,445}/tcp firewall-cmd --reload # 4. 查看已安装软件前5行 rpm -qa | head -5 # 查看当前软件源 cat /etc/yum.repos.d/openEuler.repo | grep baseurl # 5. 安装 Samba 服务 dnf install samba samba-client -y # 创建共享目录 mkdir -p /date/samba/lzh_share chmod 775 /date/samba/lzh_share chown root:class /date/samba/lzh_share # 创建 Samba 用户账号 smbpasswd -a lzh_smb # 输入密码 # 配置 /etc/samba/smb.conf tee -a /etc/samba/smb.conf > /dev/null << 'CONF' [lzh_share] path = /date/samba/lzh_share valid users = lzh_smb writable = yes guest ok = no CONF # 启动并启用开机启动 systemctl start smb nmb systemctl enable smb # 6. 安装 Nginx 并验证 dnf install nginx -y systemctl start nginx systemctl enable nginx # 本地验证欢迎页 curl http://localhost # 7. 使用 MobaXterm 远程连接后修改主机名 hostnamectl set-hostname student17-openeuler-final # 退出后重新连接查看主机名变化 ``` > ✅ 提交建议:`ip addr`、`ping`、防火墙规则、nginx欢迎页、smbclient登录截图 --- ### **任务六:进程与服务系统管理** ```bash # 1. 安装 stress-ng 模拟 CPU 负载 dnf install stress-ng -y # 2. 模拟 4 个 CPU 进程,持续 5 分钟 stress-ng --cpu 4 --timeout 300s & # 另开终端执行以下命令: ps aux | grep stress-ng top -b -n 1 | grep stress-ng # 3. 调整其中一个进程 NI 值为 -10 PID=$(pgrep stress-ng | head -1) renice -10 $PID ps -o pid,ni,%cpu,cmd | grep stress-ng # 查看当前用户的资源限制 ulimit -a # 4. 杀死所有 stress-ng 进程 pkill stress-ng ps aux | grep stress-ng # 确认无残留 # 5. 模拟多线程后台任务(4个 sleep 线程) for i in {1..4}; do sleep 100 & done # 6. 记录 PGID、PPID、线程信息 jobs -l ps -T -o pid,tid,psr,%cpu,cmd | grep sleep pstree -p $$ # 7. Nginx 服务管理 systemctl status nginx systemctl enable nginx systemctl restart nginx systemctl list-dependencies nginx # 8. 查看最近10条 Nginx 日志 journalctl -u nginx.service -n 10 --no-pager ``` > ✅ 提交建议:`top`、`renice`对比、`pstree`图形、`journalctl`日志截图 --- ## 知识点 - **分区表同步机制**:使用`partprobe`或`partx`通知内核重新读取磁盘分区表,避免重启。 - **fdisk写入验证**:执行`w`命令才能真正保存分区更改,否则仅内存中修改。 - **Shell脚本与自动化运维**:综合运用变量、循环、条件判断、参数传递编写运维脚本,提升重复任务效率与一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值