如何在网络使用中“忽略”用户名和密码提示

如何在网络使用中“忽略”用户名和密码提示

我目前有一个 logon.cmd 脚本,用于将网络驱动器映射到用户配置文件。它看起来像这样:

::Onboarding
net use m: /delete
net use m: \\BOB\onboarding 
::Bookings
net use n: /delete
net use n: \\BOB\bookings 

::Accounts
net use j: /delete
net use j: \\BOB\accounts 

它运行正常,直到到达当前用户无法访问的文件夹,它会要求输入用户名和密码,而不是出错并继续。

注意:这个脚本曾经在另一个 Samba PDC 网络上运行,但我已将其移至另一台服务器(仍然是 Samba PDC),现在它已经停止工作。

有没有什么办法可以让它忽略用户名/密码提示并继续?

答案1

我一直没能找到这个问题的有限解。但一个可用的(但非常粗糙和不干净的)解决方法是使用以下命令:

::Helpdesk
copy /Y NUL "\\BOB\helpdesk\.writable"
IF %ERRORLEVEL%==0 ( 
    del \\BOB\helpdesk\.writable
    GOTO:ALLOWEDHELPDESK
 ) 

GOTO:SECT2
:ALLOWEDHELPDESK
net use k: /delete
net use k: \\BOB\helpdesk 
:SECT2

::Onboarding
copy /Y NUL "\\BOB\onboarding\.writable" 
IF %ERRORLEVEL%==0 ( 
    del \\BOB\onboarding\.writable
    GOTO:ALLOWEDONBOARDING
 ) 

GOTO:SECT3
:ALLOWEDONBOARDING
net use m: /delete
net use m: \\BOB\onboarding 
:SECT3

::Etc,etc,etc

基本解释:它首先通过复制一个空白文件 .writable 来检查文件夹是否可写,如果成功则执行命令,如果失败则跳过命令并继续。

这纯粹是一种解决方法....

答案2

扩展 Mattisdada 的答案,此脚本将使修改任何驱动器映射变得更容易一些,只需添加、删除或更改函数mapDrive调用即可。此外,此函数通过调用(而不是写入临时文件)并进行相应映射来检查读取访问权限DIR

@ECHO off

setlocal
set SHARE=BOB
CALL:mapDrive K: helpdesk
CALL:mapDrive M: onboarding
CALL:mapDrive Z: watercooler
endlocal

net use
ECHO Mapping Complete. Thank You.
PAUSE&GOTO:EOF

:mapDrive
DIR \\%SHARE%\%~2 > nul 2>&1
IF %ERRORLEVEL%==0 ( 
    net use %~1 /DELETE > nul 2>&1
    net use %~1 \\%SHARE%\%~2
)
GOTO:eof

答案3

我似乎已经解决了这个问题,我只需在要映射的文件夹后输入密码作为网络使用的参数,如下所示:

.. net use t:\BOB\helpdesk 密码/PERSISTENT:NO

不完全确定它为什么会起作用,因为它不是用户的正确密码,但如果用户有访问权限,它似乎会映射它,如果没有访问权限,则抛出访问被拒绝并继续前进:)

答案4

解决方案:

net use t:\BOB\helpdesk 密码 /PERSISTENT:NO

似乎已经起作用但是在最近的更新后失败了。

如果 EXIST \BOB\helpdesk 则使用 t:\BOB\helpdesk /PERSISTENT:NO

对我来说这是一个一直有效的解决方案。如果用户没有足够的访问权限(适用于网络共享),它会跳过。

相关内容