连接共享打印机提示 Operation could not be completed (error 0x00000709)

连接共享打印机时出现的问题

最近需要使用其他电脑连接的打印机打印内容。通过网络成功查找到对应的机器及相关打印机,但双击连接一直提示“Operation could not be completed (error0x00000709)
Double check the printer name and make sure that the printer is connected to the network.
”,通过不断搜索,最终在微软社区找到了解决办法。

如图提示 Operation could not be completed (error0x00000709)

当 Windows 11 尝试连接共享打印机时会出现错误消息 0x00000709,出现此错误是因为默认连接方法在 22H2 发生了更改。更改组策略编辑器中的设置可以解决该问题。

全新打印机策略是导致报错的罪魁祸首:RPC 连接设置。需要将其切换到命名管道,它才能再次工作。

解决办法

非 Windows 11 家庭版

请注意,在继续之前,您应该以管理员身份登录

在 Windows 搜索中键入“组策略”(Group Policy),然后按下 Enter 键。

导航到以下位置:
1. 管理模板 > 打印机
2. 双击打开右侧的配置“RPC 连接设置”。
3. 确保它是“已启用”。
4. 在下面的选项下,从下拉菜单中选择“通过命名管道进行 RPC” 。
5. 关闭该策略,然后打开“打印机浏览”。
6. 确保该选项已启用。

以上是翻译过的内容,原文如下:

This method helped most users to resolve the error. Note that you should be logged in as an administrator before proceeding.

  • Type Group Policy in Windows search and press Enter.
  • Navigate to the following location:
    Administrative Templates > Printers
  • Double-click to open Configure RPC connection settings on the right.
  • Make sure it is enabled.
  • Under Options below, pick RPC over named pipes from the drop-down menu.
  • Close down the policy and then open Printer Browsing.
  • Ensure the option is enabled.
Configure RPC connection settings

Windows 11 家庭版

对于 Windows 11 家庭版,请尝试注册表编辑(相当于组策略设置):

[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers\RPC]

RpcUseNamedPipeProtocol 有 2 个值可以配置:

0:RpcOverTcp(默认)
1:RpcOverNamedPipes
将 0 更改为 1

通过上述操作,我的电脑已经自动安装好打印机驱动并可以正常使用共享打印机了。

以上是我遇到的相关问题解决方案,可能与你所遇到的问题相似或不同,解决方案可能有用或者无法解决,无法解决建议尝试搜索其他相关解决办法。

引用

Windows 11 Error message 0x00000709 while connecting to shared printer

How to fix printing error 0x00000709 (Operation could not be completed) in Windows?

Windows 相关知识操作及部分快捷键

之前机缘巧合,搜索了一下 Windows 相关知识,发现有一些知识和快捷键确实不了解,也从没注意到过,在此记录一下作为整理,如果你有其他关于 Windows 的相关知识和快捷键可以与我一同分享。

Windows 相关知识

1. 命令行访问带空格的目录时,必需要加引号,不然访问不到:

e.g. C:\>cd "Program Files\Java"

另最新版的 Windows 系统已经帮你处理了这块,按下 Tab 联想自动会加的,有时候就是用代码执行 bat 的时候需要注意这里。

2. Windows 中一些特殊单词不能作为文件名,例如 auxcom1com2prnconnul,如果你发现有软件用用户文件名作为配置文件夹名称,你可以把自己用户名改成上面那些单词,软件可能就会崩溃。

3. Windows 路径长度最多为 260 个字符。

4. Windows 创建一个没后缀名的文件需要在文件名称后面紧跟一个点,比如 .ignore. 系统会自动识别成 .ignore

5. 文件删除不掉提示被占用,可以通过资源监视器CPU关联句柄里搜索文件,然后结束进程。

6. 使用 PROGRA~1 代替 Program Files 。cmd 访问文件最快的办法是把文件用鼠标拖入 cmd 中。

7. Windows 软件闪退想找错误日志?运行里打开 eventvwr.exe

8. Windows 文件历史记录可以备份文件十分好用,Windows 自带的搜索可以设置搜索文件的内容(包括 TXT、Word、Excel 等文件内容)。

9. 按住 ctrl + shift + alt 再打开任务管理器,任务管理器会进入精简模式,便于在系统资源不足时使用任务管理器。任务管理器卡死崩溃,按 ctrl + shift + esc 可以让崩溃的任务管理器在 10 秒内重新启动。

10. 在开始菜单点关机重启时,按住 shift 键可以修改系统启动模式或进入高级恢复选项。

11. Windows 可以设置在重要操作时要求输入密码:组策略编辑器,Windows 组件,凭据用户界面—要求输入凭据的受信任路径,点击启用。系统 UAC 需要开最高。这样安装软件,修改系统重要设置都需要验证密码。

12. 电脑配置不高,你使用软件比较卡顿时,可以在任务管理器修改进程优先级。正常改为:高于正常。

13. 资源管理器中按住 Shift 键,再按鼠标右键会弹出带有“在此处打开 CMD/PowerShell 窗口”的菜单。

14. 选中文件上按住 Shift 点鼠标右键,菜单里会多出一项复制为路径。

15. Windows 下按住 alt 键双击文件夹会打开该文件夹的属性窗口。

16. 按住 Ctrl+Shift,再单击打开可执行程序,就会通过管理员模式打开。

17. 修改 hosts 文件时,可以按 Win + R 打开“运行”窗口,在输入框中输入 drivers 直接打开 C:\Windows\System32\drivers 目录,之后再自行打开 .\etc\hosts,比一层层目录点进去要省不少事。

18. Windows 系统盘下的 User 目录可以迁移到其他盘符中,具体操作可以看我之前发过的文章《改变 Windows 用户文件夹默认路径 C:/Users》。

Windows 快捷键

win + q (query) 搜索
win + w (write) 手写笔
win + e (explorer) 资源管理器
win + r (run) 运行
win + a (alert) 通知中心
win + s (search) 也是搜索
win + d (disappear) 老板键
win + f (feedback) 系统反馈
win + x 等同于右键点击开始菜单
win + c (cortana) 微软小娜
win + v 剪切板
win + h 语言输入
win + m (minimal) 最小化窗口
win + . emoji
win + ; emoji
win + i 设置
win + p (project) 投影
win + + 放大镜
win + d (desktop) 显示桌面
win + l (lock) 锁屏
win + t (taskbar) 任务栏上固定的应用
win + tab 虚拟桌面切换
win + ctrl + 左右键 切换虚拟桌面
win + shift + s 截图
ctrl + shift + Esc 任务管理器
ctrl + shift + Enter 以管理员权限启动
ctrl + l 激活地址栏,在地址栏中键入 PowerShell 即可自动打开已当前目录路径的 PowerShell
ctrl + w 关闭窗口

引用

Windows 下有哪些程序员平时不太了解,却很重要的知识?

改变 Windows 用户文件夹默认路径 C:/Users

Windows 默认的总用户文件夹总是会在系统盘下,如果你的系统盘为 C 盘,则为: C:\Users ,许多默认文件夹也都会放在这里:

  • 文档、桌面、下载、图片、视频等文件夹都默认在这里,这些文件夹倒是可以改变位置
  • AppData 文件夹默认在用户根目录下,存储了大部分软件的数据、配置,无法被改变位置
  • .config / .ssh / .config / scoop 等配置目录也在用户根目录下,无法改变位置
  • 许多软件的默认数据位置

系统盘符:\Users\用户名\AppData 里面一般有三个文件夹,分别是 Local / LocalLow / Roaming ,简单地来说,都是用来存放软件的配置文件和临时文件的,里面有很多以软件名称或软件公司命名的文件夹,还有用户帐户的配置文件。随着系统使用时间的增加和安装软件的增多, AppData 占用的空间会越来越大。

上面这些目录会导致系统盘占用很大,即使其中有部分可以手动指派其它路径,但是每次指定都很麻烦,重装系统时候备份也不方便(用户目录里有许多细碎的小文件,备份非常慢),还不如将用户目录迁出系统盘,所有软件都用默认路径,多省事。

另外,修改了用户路径后,当安装软件只为用户安装时,默认的安装路径也会到你的用户目录所在盘,大大节省了系统盘空间。

安装 Windows 的时候修改默认用户路径(推荐)

正常安装 Windows

当 Windows 连接到网络的时候有时 Sysprep 会失败,所以建议全程关闭网络连接安装系统。安装系统的方法不多做介绍。安装系统重启后停留在选择地区的配置界面。

进入 Audit Mode(审计模式)

在系统配置选择地区的界面,按下 Ctrl + Shift + F3 ,这时 Windows 会重启,进入 Audit Mode ,然后显示一个 System Preparation Tool(系统准备工具) ,点击取消,将它关闭。

新建 relocate.xml

现在你可以将电脑连接到网络了。

接下来我们要使用 System Preparation Tool (Sysprep) 工具来设置用户路径。这个工具会执行一个 xml 文件中的配置(也就是 relocate.xml)。我们现在只需要一个非常简单的 xml配置文件,只需包含以下内容:

  • Windows 的版本(32 或 64 位)
  • 用户文件夹的新路径(例如 D:/Users

新建 relocate.xml ,并使用记事本打开拷贝以下代码:

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
	<settings pass="oobeSystem">
		<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
			<FolderLocations>
				<ProfilesDirectory>D:\Users</ProfilesDirectory>
			</FolderLocations>
		</component>
	</settings>
</unattend>
警告,在操作之前,请先读一下这个:
1. Windows 以字母来标识盘符,但是当安装了 Windows 重启之后,本来你想把用户目录安装到 d 盘,但这个盘符可能会发生改变,比如变成了 e 盘,这个时候就会失败,所以一定要确定好盘符。
2. xml 文件保存到磁盘根目录(不能是 C 盘),例如我把它保存到了 D:\relocate.xml
3. 部分计算机在 Audit Mode 下因为缺少驱动,键盘无法使用,可以借助其他计算机编写,并拷贝,也可以完全用鼠标操作完成,看个人能力。

运行 Sysprep

以管理员身份运行 cmd,首先确保已停止 WMP Network Sharing Service 服务:

net stop wmpnetworksvc

然后运行以下命令:

%windir%\system32\sysprep\sysprep.exe /oobe /reboot /unattend:d:\relocate.xml

上述命令告诉系统从 Windows\System32\Sysprep 运行 Sysprep,执行 D:/relocate.xml 中的指令,为 OOBE (the firlst boot of newly installed Windows) 重启准备系统,最后重启。

完成

完成上述操作后,自动重启进入系统,检查 User 目录已经移动到了 D 盘。

在已经安装好的 Windows 系统上迁移用户目录

警告:操作之前,一定要先创建一个系统映像,做好备份。
对一个 OEM 预先安装的 Windows 使用 Sysprep 是非常危险的。电脑厂商可能有他们自己的 unattended answer file,这样可能就会忽略掉你的 unattended file。在这个过程中可能会出各种错误,所以不建议操作。
如果中途出错了,你的备份文件可以帮助你恢复。
这个操作非常有可能导致你的电脑恢复出厂设置。
警告****1703 或者更高版本,请不要禁用已存在的用户!!!
在 Win10 1703 或更高版本上,千万不要禁用现有用户,因为禁用现有用户可能会让你无法登录 Windows,进而需要重装。

新建 relocate.xml

按照上面说过的步骤新建一个 relocate.xml 文件。

运行 Sysprep

按照上面说过的步骤运行 Sysprep

OOBE

虽然你已经安装了 Windows,但是在 Sysprep 运行之后 OOBE 仍然会运行,这意味着你的电脑会经历初始化程序。

这里有两点需要注意:

  • Windows 要求你输入产品密钥,但是不需要去输入,单击跳过就可以了;
  • 之前的账户还会存在,但是 OOBE 会要求新建一个用户,如果新建的这个用户和已存在的用户名字相同,那就会发生错误。只需要新建一个随意的账户,之后,再把它删掉就可以了;

引用

Scoop 包管理工具

安装步骤

打开 PowerShell远程权限

Set-ExecutionPolicy RemoteSigned -scope CurrentUser;

若出现提示是否要更改执行策略?,输入 Y 回车

自定义 Scoop 包安装路径

$env:SCOOP='自定义路径'
[environment]::setEnvironmentVariable('SCOOP',$env:SCOOP,'User')
iwr -useb get.scoop.sh | iex

如果跳过该步骤,Scoop 将默认把所有用户安装的 App 和 Scoop 本身置于 C:\Users\\scoop

安装 Scoop

iwr -useb get.scoop.sh | iex
scoop update

或者使用国内镜像:

iwr -useb https://gitee.com/glsnames/scoop-installer/raw/master/bin/install.ps1 | iex
scoop config SCOOP_REPO 'https://gitee.com/glsnames/Scoop-Core'
scoop update

如果提示错误,说明 PowerShell 需要调整进行一些配置。这时按照提示,输入:

Set-ExecutionPolicy RemoteSigned -scope CurrentUser

然后重新运行第一条指令即可。

如果发现安装速度极慢,导致安装错误,但再次安装仍提示 scoop 已安装,那么可以输入下面这一行指令来强制删除,然后再重新安装:

del .\scoop -Force

安装 Scoop 的 bucket

安装完毕,但是我们还要再安装一个 scoop 的 bucket。scoop 默认自带的 bucket 是 main,包含大量的没有 GUI 的程序,比如 Node.js,Aria2,Git,FFmpeg 等。如果想要安装带有 GUI 的程序,可以安装名为 extras 的 bucket。

安装 extras 很简单,只需要一行指令:

scoop bucket add extras

如果出现问题,或者不想用这个 bucket 了,那么可以用下面这条语句来删除:

scoop bucket rm extras

操作命令

帮助语法

scoop help

安装操作

scoop install 软件名

安装指定Bucket中的应用

scoop install extras/sumatrapdf

安装指定版本

scoop install python@3.7.9

版本切换

scoop reset python
scoop reset python27

更新指定应用

scoop update python

禁止更新指定应用

scoop hold python

解除禁止更新指定应用

scoop unhold python

更新所有已安装应用

scoop update *

更新 bucket 库

scoop update

清理所有旧版本

scoop cleanup *

卸载操作

scoop uninstall 软件名

全局卸载(包括persist)

scoop uninstall 软件名 -p

常用软件表

01.aria2:scoop install aria2
02.everything:scoop install everything
03.cmder:scoop install cmder
04.notepad2:scoop install echo/notepad2
05.q-dir:scoop install q-dir
06.vim:scoop install vim
07.keepass:scoop install keepass
08.chrome:scoop install googlechrome
09.firefox:scoop install firefox
10.vivaldi:scoop install vivaldi
11.opera:scoop install opera
12.python:scoop install python
13.nodejs:scoop install nodejs
14.go:scoop install go
15.trafficmonitor:scoop install trafficmonitor
16.notepadplusplus:scoop install notepadplusplus
17.sublime-text:scoop install sublime-text
18.vscode:scoop install vscode
19.pycharm:scoop install pycharm
20.intellij-idea:scoop install intellij-idea
21.goland:scoop install goland
22.fscapture:scoop install echo/fscapture
23.snipaste:scoop install snipaste
24.synctrayzor:scoop install synctrayzor
25.telegram:scoop install telegram
26.notion:scoop install notion
27typora:scoop install typora

MySQL 5.7 安装

MySQL logo

配置环境变量

变量名为:MYSQL_HOME,添加你的 MySQL 文件夹所在位置

编辑 Path,复制 ;%MYSQL_HOME%\bin 到原有值的后面

配置 my.ini 文件

在 MySQL 目录下新建 my.ini 文件,my.ini 文件的内容为:

[mysqld]
#端口号
port = 3306
#mysql-5.7.27-winx64的路径
basedir=D:\Program Files\mysql-5.7.36-winx64
#mysql-5.7.27-winx64的路径+\data
datadir=D:\Program Files\mysql-5.7.36-winx64\data 
#最大连接数
max_connections=200
#编码
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]

#编码
default-character-set=utf8 

安装 MySQL

以管理员身份运行命令提示符,一定要以管理员的身份运行,否则在安装过程中会出现因为管理权限不够而导致的 Install/Remove of the Service Denied!(安装/卸载服务被拒绝)

在命令提示符中进入到 D:\Program Files\mysql-5.7.36-winx64\bin 目录

输入安装命令:mysqld -install

若出现 Service successfully installed,证明安装成功;如出现 Install of the Service Denied,则说明没有以管理员权限来运行命令提示符

然后继续输入命令:mysqld --initialize,此时不会有任何提示

再输入启动命令:net start mysql,出现提示证明 MySQL 启动成功

D:\Program Files\mysql-5.7.36-winx64\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。

设置 MySQL 密码

在这里设置密码主要是为了解决 ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO) 的问题

首先停止 MySQL 服务,输入命令行 net stop mysql

D:\Program Files\mysql-5.7.36-winx64\bin>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。

在 D:\Program Files\mysql-5.7.36-winx64 目录下找到 my.ini,在 [mysqld] 字段下任意一行添加 skip-grant-tables ,保存即可

重启 MySQL,输入启动命令:net start mysql,出现提示证明 MySQL 启动成功

D:\Program Files\mysql-5.7.36-winx64\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。

在输入命令 mysql -u root -p,不需要输入密码,直接回车

D:\Program Files\mysql-5.7.36-winx64\bin>mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

输入命令行 use mysql,进入数据库

mysql> use mysql
Database changed

输入命令行 update user set authentication_string=password("××××××") where user="root"; ××××××是你设置的新密码,敲击回车后若出现信息,证明修改成功

mysql> update user set authentication_string=password("123456") where user="root";
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

启动任务管理器,在“服务”中找到 MySQL,点击右键,然后点击停止即可

然后在刚刚的 my.ini 文件中删除 skip-grant-tables 这一行并保存关闭

再次以管理员身份运行命令提示符,输入启动命令:net start mysql,再输入 mysql -u root -p,再输入刚刚设置的密码,出现以下信息证明设置成功

D:\Program Files\mysql-5.7.36-winx64\bin>mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

输入命令行 use mysql 验证一下,结果报错

mysql> use mysql
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql>

既然没有重置密码,那就重置密码,键入命令行 alter user user() identified by "××××××";

mysql> alter user user() identified by "123456";
Query OK, 0 rows affected (0.00 sec)

再次输入命令行 use mysql 验证,成功

mysql> use mysql
Database changed

至此,MySQL 5.7 安装及配置完成