Windows Power Shell - 改 $PROFILE - 实现用户名伪装

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

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计