如何在網路使用中「忽略」使用者名稱和密碼提示

如何在網路使用中「忽略」使用者名稱和密碼提示

我目前有一個 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

我始終無法找到問題的有限解。但是一個可用的(但非常hacky和不乾淨的)解決方法是使用這個命令:

::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

似乎有效,但在最近更新後失敗了。

如果存在 \BOB\helpdesk net use t: \BOB\helpdesk /PERSISTENT:NO

是一個對我來說一直有效的解決方案。如果使用者沒有足夠的存取權限(適用於網路共用),則會跳過。

相關內容