首页 > 解决方案 > Cmdkey 密码为空

问题描述

我正在尝试使用 Powershell 启动与没有密码的用户的计算机的远程桌面连接。cmdkey 命令似乎不接受空密码,而是通过提示询问我输入密码。

我需要从 Powershell 脚本启动远程桌面,因为它需要随意连接到多台计算机中的任何一台,因此不能将凭据保存到远程桌面。我尝试过使用诸如“”、$null、“”“”、“^”、` 之类的东西,但这些都不起作用,它们要么根本不是密码,要么是错误的密码,要么只是冻结了 Powershell 脚本。对于在同一台机器上具有密码的帐户,相同的确切代码可以正常工作。

$username=
$IPAddress=
cmdkey /generic:$IPAddress /user:$username
mstsc /v:$IPAddress /admin
Start-Sleep -Seconds 1
cmdkey /delete:"LegacyGeneric:target=$IPAddress"

该脚本要么要求输入密码,要么远程桌面提示输入密码,但随后接受只按“确定”并输入空密码,或者在某些情况下整个脚本冻结。它应该只是连接,因为空密码是正确的。

标签: powershellcmdpasswords

解决方案


Windows 将不允许使用空白密码通过网络登录。但是,您可以在目标计算机上执行一个注册表设置来禁用此行为:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"LimitBlankPasswordUse"=dword:00000000

一种“更简洁”的设置方法是在目标计算机上使用组策略编辑器 (gpedit.msc)。
导航到计算机配置 -> Windows 设置 -> 安全设置 -> 本地策略 -> 安全选项并搜索选项Accounts: Limit local account use of blank passwords to console logon only

双击此选项并选中Disabled.

从那时起,您应该能够使用空白密码远程登录该计算机。


注意:此设置当然会带来安全风险。
阅读帐户:将使用空白密码的本地帐户限制为仅限控制台登录



推荐阅读