Windows Power Shell - 改 $PROFILE - 实现用户名伪装
电脑一开始设置的用户名是自己的名字首字母缩写,也就是C 盘 Users 下的文件夹名字。
后来因为经常要把终端截图分享出去,又不想暴露隐私,但是改这个路径名影响很大,会导致很多注册表记录失效,引起程序和系统的不稳定。
所以决定通过修改 PowerShell 提示符 $PROFILE 来满足视觉上的伪装,并且每次分享都可以随时切换新名字。

输入 notepad $PROFILE 回车会打开记事本,然后在里面粘贴以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
function prompt {
# ==============================
# 你想把 PengYuYan 改成什么?在这里改
$fakeName = "WuYanZu"
# ==============================
# 1. 获取当前真实的完整路径
$currPath = (Get-Location).Path
# 2. 这里的逻辑是:把 "C:\Users\PengYuYan" 替换成 "C:\Users\WuYanZu"
# $HOME 就是系统自带的变量,代表 C:\Users\PengYuYan
# 我们先算出 C:\Users
$usersDir = Split-Path -Parent $HOME
# 再拼接出假的 C:\Users\WuYanZu
$fakeHome = Join-Path $usersDir $fakeName
# 3. 开始替换:如果路径里包含你的家目录,就换头
if ($currPath.StartsWith($HOME)) {
# 这里的 Replace 就是把 PengYuYan 换成 WuYanZu
$displayPath = $currPath.Replace($HOME, $fakeHome)
} else {
# 如果你跑到了 D盘 或者 C盘根目录,就不动它
$displayPath = $currPath
}
# 4. 输出:保持原汁原味的 "PS " + 路径 + "> "
return "PS $displayPath> "
}
|
输入 notepad $PROFILE 提示系统找不到指定路径
遇到这个问题是因为 PowerShell 的配置文件($PROFILE)默认是不存在的,甚至连存放它的文件夹可能都还没建立。
只需要在 PowerShell 里运行下面这行命令,它会自动帮你把文件夹和文件都建好,然后打开:
1
|
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force }; notepad $PROFILE
|
虚拟地址链接
假如只是伪装,那么如果有时候需要在终端复制链接粘贴到某些软件里,就会导致找不到真实位置。以及我们输入地址访问的时候也需要输入真实地址,所以我们可以利用 Windows 的 NTFS 文件系统特性,用 mklink(传送门) 在 C:\Users 下面创建一个叫 WuYanZu 的联接点(Junction),把它指向 PengYuYan。
1
|
cmd /c mklink /J "C:\Users\WuYanZu" "C:\Users\PengYuYan"
|
如果提示拒绝访问,请以管理员身份运行 Power Shell