AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 477071
Accepted
kettch
kettch
Asked: 2013-02-09 15:23:02 +0800 CST2013-02-09 15:23:02 +0800 CST 2013-02-09 15:23:02 +0800 CST

网络使用密码限制

  • 772

我正在尝试使用 net use 在脚本中安装网络文件夹,但我一直收到密码错误错误。我正在使用以下语法:

use \\server\share password /User:serviceaccount

这样做会返回错误的密码错误。如果我把 * 作为密码,并在提示符下输入它,它就可以正常工作。

我也试过用双引号“”将密码括起来,但没有效果。这个特定的密码是随机生成的,由 14 个字符组成,包括大写字母、小写字母、数字和特殊字符(在本例中唯一的特殊字符是 $)。

该脚本正在 Windows Server 2008 R2 上运行,并且正在连接到 Server 2003。

可以通过命令行参数传递给 net use 的密码种类是否有任何限制?

编辑:这是在 PowerShell 中运行的。

windows
  • 2 2 个回答
  • 8995 Views

2 个回答

  • Voted
  1. Best Answer
    kettch
    2013-02-12T12:12:10+08:002013-02-12T12:12:10+08:00

    结果表明,旧的 net use 文档表明您需要使用双引号,而在 PowerShell 中,您应该在密码周围使用单引号。

    • 5
  2. frr
    2018-11-10T03:52:57+08:002018-11-10T03:52:57+08:00

    在“工作组环境”(没有适当的 NT 域)中从 Win2012R2 连接到 Samba 3.6.6 时,我偶然发现了这种不当行为。

    以下两个版本都不能可靠地工作:

    NET USE X: \\server\share password /User:username
    
    NET USE X: \\server\share /User:username password
    

    奇怪的是,它可能有 10% 的几率会起作用!而且,如果我尝试从 cmdline args 中跳过密码,并让“NET USE”提示我,那么成功的可能性大约为 95%。

    我在另一台服务器(具有不同升级历史和配置的 Linux)上有另一个共享,工作得很好。

    最初我怀疑是“特殊字符”,因为我的新密码“更强”。我在密码周围尝试了单引号或双引号,但无济于事。我尝试制作一个非常简单(且弱)的密码 - 但无济于事。

    然后我发现建议首先使用 cmdkey 在本地保存正确的登录凭据。以前从未需要这样做,但我还是尝试了:

    cmdkey /add:<machine> /user:<username> /pass:<password>
    

    通过这种方式,我确实在客户端机器上保存了登录用户的凭据,但它并没有解决 NET USE 神秘的登录失败问题。

    然后我开始摸索 Samba 配置和日志。

    调试 Samba 身份验证时,以下 smb.conf 选项可能会派上用场:

    log level = 3 passdb:10 auth:10
    

    默认值可能是log level = 2,它甚至不记录失败的登录尝试。

    Samba 在 /var/log/samba/ 中创建有用的日志文件。对于每台传入的客户端计算机,它都会创建两个文件:

    log.<ip_address>
    log.<netbios_name>
    

    使用提升的日志级别,可以清楚地看到基于 IP 的日志在 smbd 了解机器的 NetBios 名称的点结束 - 并在第二个文件中继续。

    而且还可以清楚地看到,“密码验证”实际上是一个相当复杂的过程:-) CIFS 网络握手都有多次数据交换,并且部分 Samba 服务器上的凭据处理也不是很简单. 在成功和失败的尝试中,在前面提到的log level 10(针对 auth 和 passdb 的选择性)中,您会得到两页密集的日志列表,其中 Samba 提示它如何尝试添加域以及它如何尝试通过 映射用户username map,最后尝试检查凭据(至少两次)。奇怪的是,对于客户端的两种不同使用方式,该过程略有不同NET USE:在 cmdline 上使用密码(语法没有区别)与使用密码提示。精确的过程可能还取决于auth backend您在 Samba 服务器上选择的。我的是简单的旧 passdb (/etc/samba/smbpasswd)。

    对我来说,罪魁祸首可能是username map功能。Samba 服务器上的 smb.conf 不是我自己的宝贝,我一路了解这个特性。我发现其他人警告说它会咬人。它甚至可以用于将多个 Windows 用户映射到单个本地 UNIX 用户,或者只是 1:1 - 无论哪种方式,请注意 Samba 将尝试使用“重新映射”的用户名而不是原始 Windows 用户名(您也可以在 smbpasswd 中输入)。这可能是我的问题。一旦我从 /etc/samba/smusers 中删除了“罪魁祸首的用户名”,我的NET USE线路就开始工作了,在两种格式中的任何一种中,在 cmdline 中都有密码。

    不确定为什么 Samba 有时会尝试 Windows 用户名,而在其他时候它会尝试重新映射的用户名。它可能是特定历史版本的 smbd 和 passdb 的“功能”。或者针对客户端和服务器上不同 CIFS 实现的特定交互。

    然后我遇到了一个后续问题(在 auth 之后),其中security = user结合组可访问的底层目录和 /etc/passwd(和 /etc/group)中配置错误的组意味着我的客户登录,但被拒绝访问此类CIFS 目录...请注意,在某些发行版或配置样式中,所有 UNIX 用户共享一个“用户”默认组,而在其他发行版中,他们被分配了一个单独的默认组,为每个新用户新创建...

    对于服务器是 Windows 2003 机器的场景,这个答案有什么用?可能用处不大,除了一般背景之外,CIFS 背后有悠久的历史/演变,并且各种 Windows CIFS 世代可能具有与开源 Samba 实现类似的“交叉兼容性怪癖”。从允许或拒绝旧版本身份验证协议的策略开始:LanMan 和 NTLM1,出于安全原因(旧协议的主要缺陷),它们通常可以在更现代的客户端或服务器上被管理禁止。我特别记得 Windows 7(或者是 Windows 8?)开始在默认配置中坚持使用 NTLMv2 的情况。

    • 0

相关问题

  • 知道任何适用于 Windows 的快速可编写脚本的 ftp 客户端吗?[关闭]

  • 如果 Windows 服务崩溃,如何自动重新启动它?

  • 无法安排任务(访问被拒绝)

  • 物理机重启时自动重启虚拟机(VMWare)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve