Windows

在 Windows 服務中訪問網路共享的正確方法

  • October 31, 2017

我有一個需要按需訪問遠端 CIFS 共享的 Windows 服務。每當它需要訪問共享時,它首先會嘗試使用提供的憑據“掛載”它,

NET USE \\host\share password /USER:user

使用共享的內容,然後刪除共享。

NET USE \\host\share /DELETE

目前,該服務僅在第一次使用共享時有效。在隨後的嘗試中,它不起作用,我收到以下錯誤:

NET 失敗,退出程式碼為 2

但是,當從命令行手動執行時,同樣的邏輯都可以正常工作;它只會在服務的上下文中失敗。

我的問題是:是否有更好、更正確的方法來處理 Windows 服務中的網路共享?根據這篇文章NET USE不建議在服務中使用,即使不使用驅動器號。NET USE我應該使用一些替代方法,還是該服務只需要以預設LocalSystem使用者以外的使用者身份執行?

理想情況下,共享應該只在直接需要時才可以訪問;因此,如果可能,我想保留每次刪除共享的邏輯。

您應該以特定使用者帳戶的身份執行該服務,並且該使用者帳戶應該具有訪問共享的權限。

像這樣輸入使用者名和密碼是一種非常糟糕的工作方式。不僅是為了安全,也是為了便攜和管理。

引用自:https://serverfault.com/questions/881268