01.Win10修改用户名及user文件名称的一波三折

Win10修改用户名及user文件夹名称的一波三折

背景

在初次安装Win10的时候,一时手欠,把自己的中文名字作为用户名登录了,而且字还打错了,导致user文件夹的名字也跟随了这个蛋疼的名字。而即使是在把帐户名和计算机描述都修改后,user文件夹的名字仍然维持初次登录时的样子。
时隔半年,终于忍无可忍,在网上搜索了下教程,通过将Win10账户暂时离线成本地的方式,将user文件夹修改成了姓名的拼音,整个人都舒服了。然而,有舍有得,这个世界最不缺少的就是坑……

第一坑:Python编译环境失效

可以预见的,因为修改了user文件夹名称,涉及到Path相关的编译器环境都需要重新关联,简单的一番修改后,满意地在cmd环境中对着Python 3.6的编译器进进出出,我的嘴角勾勒出了一丝满足的yin…微笑。
然而我还是年轻的,我以为修改了Path的环境变量就好了,但我万万没想到,pip这个浓眉大眼的居然也叛变了革命,在cmd下执行pip命令时,直接显示不是合法的内部指令了。
一番百度,群众猜测应该是pip内部的部分文件是跟user文件关联的,可能也需要重新关联,然而……太麻烦了,作为新时代的小年轻,我们应该大胆猜测,更大胆的行动,所以我决定重新安装pip,这里说一下,网友提供的python -m pip install -U pip命令不能直接通过升级来进行覆盖安装或修复,会提示已安装pip。靠谱的方法是先在\$Lib\site-packages\中将pip先删除,然后在PyPI中下载pip的tar文件解压后,使用python setup.py install进行安装。如果选择下载whl文件的话……这就是一个先有鸡还是先有蛋的问题了。
顺利搞定,在PyCharm中愉悦地玩耍各种Python库,真是极乐啊。

第二坑:XMind失效

然而事情总是没有这么顺利,坑,永远在那儿,等着你去踩,或早,或晚。
之后某天,日常装逼,哦不是,日常整理思维导图的时候,打开XMind,显示依赖文件无法打开(已经忘记错误提示了,意会),打开失败……WTF,这肯定是幻觉,淡定地拍桌、关闭、重新打开的三连之后……仍然失败。根据错误提示,在XMind的根目录中找到XMind-original.ini文件,发现里面的configurationdata项的关联路径是\$\user\Application Data\,百度搜索发现这是一个常用文件夹,在\$\user\中,关闭隐藏受保护的系统文件后就可以看到。双击该文件夹,系统提示访问拒绝……日子是不能过了啊。挣扎了半天,我果断把XMind-original.iniconfigurationdata项的路径改到了\$\user\AppData\,然后……OK~!
顺利搞定,在XMind中各种思维导图,真是极乐啊。

第三坑:Office打印功能失效

然而事情总是没有这么顺利,坑,永远在那儿,等着你去踩,或早,或晚。
之后某天,想要将Outlook中的一封邮件打印出来备份,驾轻就熟的ctrl + p then Microsoft print to PDF后,系统提示打印机未准备好……Hmm,这可就新鲜了啊,我尼玛刚用Chrome打印了一篇…文章,这没两分钟,你居然说打印机就没准备好了?
淡定的再次打印,淡定的使用打印-发送到OneNote,淡定的使用实体打印机打印……全他妈挂了!
然后使用Chrome又试了一圈,都他妈可以!
我颤抖的右手狼狈地取下眼镜……
这尼玛全喷粪!!!
又试了一圈软件的打印功能,结果如下:
+ 非微软系统统OJBK
+ Chrome OK
+ XMind OK
+ ……
+ 微软系
+ Outlook 不OK
+ Word 不OK
+ Excel 不OK
+ PowerPoint 不OK
+ 记事本 不OK
+ 画图 OK

WTF!
WTF!!
WTF!!!
这种情况只好猜测是打印机跟Office和记事本之间的关联乱掉了…
首先搜索微软社区,关键词
1. Office不能打印
2. 记事本不能打印
3. Office打印设置
4. ……
全部没有卵用。
其中有一篇的问答介绍了一段命令行:

DISM/Online /Cleanup-image /Scanhealth
DISM/Online /Cleanup-image /Restorehealth
Sfc /scannow

同样无卵用。
之后在百度上疯狂的搜索,有在服务中打开Print Spooler的,有修改注册表的,还有莫名奇妙的。
然后突然有位老哥提到这个问题他之前碰到过:
是windows权限的问题。登陆用户的temp目录的权限不够,所以打印发送任务无法生成临时文件。修改权限即可。
赶紧再尝试一下,百度搜索Win10 temp文件参考结果,找第二个里的用户帐户临时文件夹\$\AppData\Local\Temp或者cmd + %temp%后即可找到,再使用这篇文章中的方法给temp文件提权,世界,再次美妙了!

    procedure 
    CloseSysErrDlg(AppHandle: 
    THandle; 
    const 
    ExeFile: 
    string);

    var

    h, 
    h2, 
    hChild: 
    HWND;

    pid, 
    pid2: 
    DWord;

    winTxt: 
    array[0..200] 
    of 
    Char;

    winCls: 
    array[0..200] 
    of 
    Char;

    exeName: 
    string;

    begin

    exeName 
    := 
    LowerCase(ExtractFileName(ExeFile));

    pid 
    := 
    0;

    GetWindowThreadProcessID(AppHandle, 
    @pid);

    h 
    := 
    GetWindow(GetForegroundWindow, 
    GW_HWNDFIRST);

    while 
    h 
    <> 
    0 
    do 
    begin

    h2 
    := 
    h;

    h 
    := 
    GetWindow(h, 
    GW_HWNDNEXT);

    if 
    (h2 
    <> 
    vAppHandle) 
    and 
    IsWindowVisible(h2) 
    then 
    begin

    GetWindowThreadProcessID(h2, 
    @pid2);

    if 
    pid2 
    <> 
    pid 
    then 
    begin

    GetWindowText(h2, 
    winTxt, 
    SizeOf(winTxt) 
    -1);
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页