Marco Nie - Windows 2024-08-10T11:06:00+08:00 Typecho https://blog.niekun.net/feed/atom/category/Windows/ <![CDATA[将路径加入系统 path]]> https://blog.niekun.net/archives/path.html 2024-08-10T11:06:00+08:00 2024-08-10T11:06:00+08:00 admin https://niekun.net 将路径加入系统 path 可以方便的在终端调用目录中的可执行文件或脚本。windows 和 macOS 设置方法不同,下面分别介绍。

windows

参考之前的文章:https://blog.niekun.net/archives/413.html

macos

确定您的 shell 类型。打开终端,运行以下命令:

echo $SHELL

这通常会返回 /bin/zsh/bin/bash

根据您的 shell 类型,编辑相应的配置文件:

对于 Zsh(最新的 macOS 默认使用):编辑 ~/.zshrc
对于 Bash:编辑 ~/.bash_profile~/.bashrc

使用文本编辑器打开相应的文件。例如,对于 zsh:

vim ~/.zshrc

在文件末尾添加以下行(替换为您的实际脚本目录路径):

export PATH="/path/script:$PATH"

保存并关闭文件。使更改生效,可以重新加载配置文件或重启终端。要重新加载,运行:

source ~/.zshrc  # 如果使用 Zsh
source ~/.bash_profile  # 如果使用 Bash

验证 PATH 更新:

echo $PATH

您应该能看到您的脚本目录已被添加。现在,您应该能够直接运行脚本,而不需要指定完整路径:

test.sh

注意事项:

  • 确保您的脚本有正确的执行权限(chmod +x script_name.sh)。
  • 如果脚本名称与系统命令冲突,考虑重命名脚本或使用唯一前缀
]]>
<![CDATA[解决在 intel 12代以后的 CPU 上 vmwre 虚拟机性能低下问题]]> https://blog.niekun.net/archives/intel-12-CPU-vmwre.html 2024-04-18T13:01:52+08:00 2024-04-18T13:01:52+08:00 admin https://niekun.net 最近更换了新的电脑,是 i7 12700H 的 CPU,按理说比以前的电脑性能好一些,但是导入之前的 vmware 虚拟机后发现运行起来优点卡顿,但是观察主机资源占用很低,cpu 占用也很低,研究了下才发现是由于新款 cpu 采用了大小核设计导致这个问题。

我的这一款是 6 大核 8 小核 20 线程设计。默认情况下启动虚拟机资源分配是交给 windows 主机自己协调的,很可能会分配给小核运行虚拟机导致运行卡顿,资源管理器可以看到 cpu 负载都在后面的小核上:
image.png

解决方法就是以管理员权限运行 vmware,这样 VMware 会自己调度资源使用,优先级大概是大核>小核>超线程。实际效果很明显,基本都运行在了大核上:
image.png

]]>
<![CDATA[windows 相对路径快捷方式]]> https://blog.niekun.net/archives/windows.html 2024-03-18T10:09:15+08:00 2024-03-18T10:09:15+08:00 admin https://niekun.net 一般系统默认创建的都是指向某个文件绝对路径的快捷方式,如果移动原始文件位置后,快捷方式就失效了。

可以自己修改快捷方式的属性来建立一个以快捷方式所在地址为准的指向一个相对路径的文件。这样适用于需要同时移动原始文件与快捷方式的情况。

首先右键创建一个文件的快捷方式,然后右键选择快捷方式的属性,将目标位置地址改为:explorer.exe path/to/file.exe。注意 explorer.exe 后面的空格:
image.png

后面的路径就是相对于快捷方式地址的相对路径。

确认后默认快捷方式图标会变成资源管理器的图标,可以在属性里修改为其他图标。

]]>
<![CDATA[WSA (Windows Subsystem for Android) 的安装及使用]]> https://blog.niekun.net/archives/WSA-Windows-Subsystem-for-Android.html 2024-02-20T15:47:00+08:00 2024-02-20T15:47:00+08:00 admin https://niekun.net 之前介绍过 Windows10 安装 wsl 的教程,可以方便的在 Windows 下使用 Ubuntu 系统。今天介绍安装 wsa 用来在 Windows 下使用 Android 系统及安装第三方 apk。

安装

wsa 没有在官方的 store 中提供,这里使用开源的 WSA-Script 很方便的一键安装。

GitHub 主页:https://github.com/YT-Advanced/WSA-Script

在 release 页面下载最新打包的版本:https://github.com/YT-Advanced/WSA-Script/releases/latest

我需要使用 google play 框架及 root 权限,所以下载的是框出来的版本:
image.png

下载好解压到一个特定的目录,运行 Run.bat,期间会提示需要管理员权限以及提示收集信息的对话框,点击确认即可。

安装完成后会自动运行 Windows Subsystem For Android™ 应用。

设置代理

如果需要使用 play 商店,就需要配置代理服务。如果本机有代理工具的话,可以让 wsa 直接调用本机代理。这里需要使用 adb 工具,下载链接:https://dl.google.com/android/repository/platform-tools-latest-windows.zip

解压压缩包,可以看到其中有一个 adb.exe,可以将目录添加到系统 path 以方便在 terminal 调用。

首先需要设置 wsa 打开开发者模式,进入设置打开选项:
image.png

默认 wsa 是运行在本地的 58526 端口的。

建立一个 powershell 脚本,如:wsaproxy.ps1,内容如下:

$WinNetIP=$(Get-NetIPAddress -InterfaceAlias 'vEthernet (WSLCore)' -AddressFamily IPV4) # get android network gateway addr
adb connect 127.0.0.1:58526 # android port
adb shell settings put global http_proxy "$($WinNetIP.IPAddress):1082" # local proxy port

第一次执行会弹出对话框是否信任外部访问,点击允许即可。

以上脚本会获取到 wsa 所在网卡的网关地址,然后用 adb 连接到 wsa,最后配置代理,注意脚本里的本地代理端口修改为实际值即可。

运行脚本即可让 wsa 配置好代理服务。以后只需要执行这个脚本就可以自动设置代理。

如果需要取消代理运行下面命令即可:

adb shell settings put global http_proxy :0

安装 apk

推荐直接在 play 商店安装应用程序,如果需要安装自己下载的第三方 apk,直接使用 adb 工具即可。

安装命令:

adb connect 127.0.0.1:58526
adb install xxx.apk

文件共享

可以配置一个 Windows 主机的路径作为同 wsa 共享目录,这样两边就可以互传文件了。

打开 Windows Subsystem For Android™ 进入 advanced settings - experimental feature,启用 share user folders 功能并选择一个本地目录作为共享目录:
image.png

通过 system - turnoff 关闭 wsa,然后点击 files 会重新运行 wsa:
image.png

可以看到有一个 windows 文件夹:
image.png

这个文件夹就是对应的 windows 共享目录。

系统设置

默认情况下只有在第一次安装成功后会自动启动 Android 设置界面,并且找不到设置的启动图标在哪里,我们可以在浏览器里直接访问 android settings 地址的方式启动。

浏览器中输入以下地址并访问:wsa://com.android.settings,会提示是否需要跳转到设置,点击确认即可进入设置:
image.png

参考链接

Windows Android 子系统 WSA 代理设置方法教程
WSA (Windows Subsystem for Android) 使用 Windows 上的代理

]]>
<![CDATA[Windows 下虚拟机安装 MacOS]]> https://blog.niekun.net/archives/2860.html 2023-11-03T09:08:00+08:00 2023-11-03T09:08:00+08:00 admin https://niekun.net 经过测试,我的电脑安装好后可以启动,但是每次输入管理员口令就会四国。可能和我的电脑 cpu 不能完美支持 macos 内核有关,下面介绍安装方法。

工具:

环境准备

首先需要主板支持虚拟化 VT,需要在 bios 中打开对应选项。注意此项必须配置,否则安装会不成功。

VMware workstation 默认不支持安装 macos,需要使用第三方工具 unlocker 来开启支持,直接在上方提供的 github 主页下载最新版本即可,运行 windows 文件夹下的 unlock.exe 即可。

然后下载 macos iso 镜像文件,在我上面提供的网站中下载即可。

配置虚拟机

按照正常的新建虚拟机的方式新建,添加下载好的系统镜像用来安装,配置好确认后先不要启动虚拟机,先修改对应虚拟机文件夹下的 vmx 文件。

文本编辑器打开 vmx 文件后,在最后一行添加一句:

smc.version = 0

保存后即可启动虚拟机,进入 recovery 工具后,先格式化硬盘,然后安装系统,提示一步步安装即可。

参考链接

How To Install macOS Monterey On Vmware On Windows Pc
Windows用VM虚拟机安装MacOS Ventura 13.6系统全流程教程

]]>
<![CDATA[命令行激活 Windows 密钥]]> https://blog.niekun.net/archives/2770.html 2022-09-19T09:22:00+08:00 2022-09-19T09:22:00+08:00 admin https://niekun.net 注意:安装新密钥及激活时需要在管理员权限下运行终端。

安装新密钥,会自动替换当前密钥:

slmgr /ipk xxxx-xxxx-xxxx-xxxx-xxxx

激活 Windows:

slmgr /ato

显示当前授权信息:

slmgr /dli

显示详细授权信息:

slmgr /dlv

显示授权剩余日期:

slmgr /xpr

密钥可用性在线检测:https://dbmer.com/checkkey/

]]>
<![CDATA[Windows 配置 FTP 服务器]]> https://blog.niekun.net/archives/2757.html 2022-09-15T15:04:00+08:00 2022-09-15T15:04:00+08:00 admin https://niekun.net Windows 10 以上系统自带 FTP server,可以简单的搭建一个局域网内应用的 FTP 服务器。下面介绍具体操作流程。

搜索 windows feature 打开功能开关配置界面:
2022-09-15T06:50:53.png

开启如下 ftp 相关选项,确认后等待安装完成:
2022-09-15T06:51:58.png

搜索 Administrative Tools:
2022-09-15T06:53:05.png

双击 Internet Information Services (IIS) Manager:
2022-09-15T06:53:58.png

sites 上右键点击 add ftp site:
2022-09-15T06:55:25.png

设置名称及共享路径:
2022-09-15T06:56:18.png

选择无 ssl:
2022-09-15T06:56:43.png

选择 basic 验证以及指定可登录 FTP 的用户,设置读写权限:
2022-09-15T06:57:40.png

可以单独建立一个用户用来登录 ftp,建立账户可以参考我的教程:https://blog.niekun.net/archives/2103.html#title-4

设置完成后,点击完成即可。

然后配置防火墙例外,搜索 allow an app through windows firewall:
2022-09-15T06:59:18.png

在列表中找到 ftp server 并打勾即可:
2022-09-15T07:00:53.png

以上就完成了 Windows 端 ftp 服务器的搭建,可以使用 ftp 客户端登录此 ftp 服务器了。

参考链接:
How to set up and manage an FTP server on Windows 10

]]>
<![CDATA[解除 Windows 11 TPM 或 CPU 限制]]> https://blog.niekun.net/archives/2340.html 2021-10-08T11:58:00+08:00 2021-10-08T11:58:00+08:00 admin https://niekun.net 最近微软发布了 Windows 11 正式版。但是对设备硬件有一些限制,可以通过修改注册表的方式解除限制。

首先打开注册表,快捷键 win + R,输入 regedit:
2021-10-08T03:51:00.png

通过左侧层级菜单找到:Computer\HKEY_LOCAL_MACHINE\SYSTEM\Setup\MoSetup:
2021-10-08T03:52:28.png

选中 Mosetup,菜单栏选择 edit - New - DWORD 添加新键,重命名为:AllowUpgradesWithUnsupportedTPMOrCPU
2021-10-08T03:54:27.png

双击此键设置值为 1,然后确认:
2021-10-08T03:55:45.png

然后就可以下载镜像安装了,期间会提示硬件不符合要求,但多了个接受选项安装 Windows 11:
2021-10-08T03:57:47.png

升级故障

在实际升级中,我遇到了一个困扰几个星期的问题,当显示升级进度到 31% 的时候就停留不动了,尝试了无数次都无法解决。最后在今天翻看台湾 Windows 社群的时候找到了一篇帖子,受到启发才找到了问题点。

一般这种问题都是因为当前系统内安装的某个硬件的驱动有问题导致升级无法进行,我们需要做的就是找到这个驱动是什么然后卸载它。

我们需要从 C:\$WINDOWS.~BT\Sources\Panther 目录内的 CompatData_ 开头的 xml 文件中找到 DriverPackages 标签的内容,找到 BlockMigration="True" 后面的 inf="XXX.inf" 记住这里的 inf 文件名称,在 C:\Windows\INF 目录中找到对应的 inf 文件,用记事本打开文件,查看这到底是什么驱动,根据驱动名称和驱动版本等信息,在设备管理器中找到对应驱动并卸载它。

如果 xml 文件中没有找到相关信息,则需要在 C:\$WINDOWS.~BT\Sources\Panther 目录内 setupact.log 文件中找相关信息,一般我们直接翻到日志最后一部分,查找相关信息,同样是找到 XXX.inf 文件。

正确的找到并卸载驱动后,需要删除 C:\$WINDOWS.~BT\Sources\Panther 中的 compatscancache.datCompatData_ 开头的 xml 文件。然后就可以测试再次启动升级。

参考链接

windows 11更新卡在35%

]]>
<![CDATA[Windows 主机使用 VMware 虚拟机在共享文件夹调试 node.js 时 npm install 报错问题的处理]]> https://blog.niekun.net/archives/2139.html 2021-02-07T11:07:10+08:00 2021-02-07T11:07:10+08:00 admin https://niekun.net 由于 node.js 在 Windows 下会有各种问题,最好的开发环境还是 Linux,所以我通过 VMware 内安装 Ubuntu 虚拟机的方式学习 node.js。

我的流程是:

  • VMware 安装 Ubuntu
  • 共享 Windows 下的文件夹给 Ubuntu 作为开发目录
  • Windows 下使用 vs code 通过 ssh 方式远程连接 Ubuntu

通过远程连接的方式在 Windows 下做 node.js 开发实际体验很好。但是在通过 npm 安装某些包时常常会有报错出现,错误日志大概意思就是说无法给 node_modules 文件夹内安装的库文件添加软连接到系统路径。

网上查询后发现了问题原因,我的开发目录实际是在 Windows 下的,Windows 和 Linux 有着不一样的文件系统和路径格式,所以 npm 在安装某些包含 bin 可执行文件的第三方库时,会默认自动创建相关文件的软链接到 Linux 系统路径,这样就就报错了。

如果要坚持使用共享目录的形式做开发,那么需要设置在 npm 安装新库时使用参数 --no-bin-links 告诉系统不要自动创建软连接,语法如下:

npm install cowsay --no-bin-links

这样就会跳过相关步骤。

也可以设置到 npm 配置中,这样以后安装的包都会默认不创建 bin 的软连接了:

npm config set bin-links false

当然最理想的方式就是将开发路径放置在 Linux 系统中,而不是通过共享目录的形式。这样就是一个纯原生的环境。

参考链接:https://github.com/npm/npm/issues/2221

]]>
<![CDATA[Windows 配置安全的 smb 共享]]> https://blog.niekun.net/archives/2103.html 2021-02-03T10:28:00+08:00 2021-02-03T10:28:00+08:00 admin https://niekun.net 最近研究了下 Windows 的共享设置,目的是在同一局域网下共享文件夹给其他设备读写。下面从原理和实际操作上介绍下共享过程。

SMB

Windows 共享使用 Server Message Block (SMB) 协议,它可以让应用程序访问本机网络下的其他设备的文件及服务。

SMB 是 IBM 在 1980 年代创造的协议,目前已经有了很多的升级及分支。

SMB 协议允许应用程序访问远程主机的文件和资源如打印机等,也可以同远程主机上设置了接收 SMB 协议的应用程序通信。它运行在网络的 layer 7 层,也就是 application 应用层,使用 TCP/IP 的 445 端口传输数据。

从 Windows 95 开始,微软将引入了 SMB 协议的支持。Linux 端,samba 作为一个开源软件提供 SMB 的支持。

SMB 协议也是在不断发展的,下面是一个简单的版本更新过程:

  • SMB 1.0 (1984): IBM 为 DOS 下的文件共享创造了 SMB
  • CIFS (1996): 微软开发了 SMB 的分支版本并集成在 Windows 95,添加了大文件的支持,直接在 TCP/IP 传输
  • SMB 2.0 (2006): 在 Windows Vista 和 Windows Server 2008 中发布. 提升了性能
  • SMB 2.1 (2010): 在 Windows Server 2008 R2 和 Windows 7 中发布
  • SMB 3.0 (2012): 在 Windows 8 和 Windows Server 2012 中发布. 提升了性能,增加备份,安全和管理功能
  • SMB 3.02 (2014): 在 Windows 8.1 和 Windows Server 2012 R2 中发布. 提升性能并完全停止支持 CIFS/SMB 1.0
  • SMB 3.1.1 (2015): 在 Windows 10 和 Windows Server 2016 中发布

在 2017 年,利用 SMB 1.0 的漏洞,WannaCry 勒索软件在互联网中大规模传播,微软虽然立刻发布了补丁,但专家还是建议立刻停止运行 SMB 1.0 协议。

下面介绍在 Windows 10 中配置共享文件夹。

关闭 smb1.0

由于 smb1.0 过于久远且不安全,所以我们最好将其关闭,默认情况下系统中他也是关闭的。

系统搜索并打开 打开或关闭 Windows 功能 turn windows features on or off
2022-01-29T00:10:24.png

在其中找到 smb1.0 并将其关闭,可能会提示需要重启系统:
2022-01-29T00:12:10.png

Windows 设置共享

下面配置共享, 步骤如下:

  • 新建一个用户专门用于共享文件的授权,并合理设置此用户的权限;
  • 合理设置网络共享和系统安全的相关设置;
  • 开启共享,授权指定用户;

创建专用用户

搜索并打开计算机管理 computer management
2022-01-29T00:17:14.png

找到本地用户和组,点击用户文件夹:
2022-01-29T00:19:28.png

右键点击 new user 创建新用户,设置用户名和密码,下面选中用户不可修改密码和密码永不过期:
2022-01-29T00:22:07.png

配置用户权限

首先禁用启用不安全的来宾登录,win + r 搜索 gpedit.msc 本地组策略编辑器:
2022-01-29T00:26:11.png

如下路径找到选项:
2022-01-29T00:27:25.png

双击进入设置,关闭此选项并确认:
2022-01-29T00:28:10.png

然后 win + r 搜索 secpol.msc 打开本地安全策略,配置本地用户权限分配:
2022-01-29T00:30:48.png

首先配置可以从网络访问本机的用户:
2022-01-29T00:32:43.png

双击进入后点击 add user 添加我们刚刚创建的用户:
2022-01-29T00:34:16.png

在下方输入我们创建的用户名,然后点击右侧的 check names 自动匹配用户名:
2022-01-29T00:35:16.png
2022-01-29T00:35:39.png

确认后再列表中就出现了对应用户,注意如果列表中有 everyone 等其他用户时,为了安全起见可以将它们从列表中删除。完成后点击 ok 确认修改。

然后配置这个用户拒绝本地登录拒绝远程桌面登录,因为我们创建这个用户只是为了 smb 共享登录使用。也是在本地用户权限分配页面找到对应选项并配置此用户到列表:
2022-01-29T00:41:31.png

开启有保护的共享

首先打开控制面板,进入 network and Internet:
1.jpg

点击 network and sharing center:
2.jpg

点击 change advanced sharing settings:
3.jpg

在 current profile 中打开网络发现和文件共享:
4.jpg

然后在 all network 中打开密码保护:
2022-01-29T01:15:57.png

控制面板配置完成后,我们开始配置需要共享的文件夹。

文件夹共享

在需要共享的文件夹上点击右键,选择属性:
6.jpg

在 share 选项卡中点击 advanced share:
11.jpg

选中 share this folder:
12.jpg

点击 permission:
13.jpg

如果有先将 everyone 用户删掉,然后点击 add 添加 marco 用户,点击 check names 自动补全:
2022-01-29T01:22:28.png

然后配置用户权限,根据需要设置读写权限,这里直接选中 full control:
2022-01-29T01:23:50.png

然后还有一步很重要,设置 marco 用户对此共享文件夹具有访问权限,否则也会提示无法访问文件夹,点击 security:
2022-07-01T03:36:45.png

如果用户列表里没有 marco 用户,则需要添加进去,点击 edit 添加用户,方法和上面的方法类似,最后 marco 用户在列表里面即可,可以配置用户权限:
2022-07-01T03:38:40.png

点击 ok 保存设置。

确认后共享文件夹就配置完成了。

访问共享文件

下面介绍在其他局域网设备访问主机的共享文件夹。

Windows

在 Windows 上,打开 file explorer,点击 network:
15.jpg

在右侧就是本地网络下启用了网络发现的设备列表,点击进入设置了共享文件夹的设备名称,根据提示输入配置好的用户名和密码就可以访问了:
16.jpg

也可以在地址栏直接输入共享路径地址,以双反斜线\\开头后面是设备 IP 或名称,如:\\DESKTOP-BS3C55D

关于设备的名称,可以在终端通过 whoami 命令查询:
17.jpg

iPhone

在支持 SMB 协议的设备或应用程序中都可以打开 Windows 共享的文件,下面介绍通过 iPhone 的 files app 来连接到 Windows 共享目录。

打开 files app,点击右上角的 ... 选择 connect to server:
IMG_3227.jpg

在 server 中输入共享主机的地址,这里直接输入 IP 地址:
IMG_3229.PNG

输入用户名和密码,完成后就可以访问到共享目录了:
IMG_3232.PNG

如果文件夹设置的是可读写权限,就可以在手机上传输文件到共享目录了。

参考链接:
Server Message Block Protocol (SMB protocol)
Windows 10/ 11 下安全并正确地使用 SMB 共享

]]>