簡體   English   中英

目錄名稱無效,映射的驅動器和用戶名

[英]The Directory Name is Invalid, mapped drives & username

我有一個應用程序,它首先使用用戶輸入的credentials映射網絡驅動器。 驅動器成功映射,但是嘗試從Process.Start()運行程序時。 我得到目錄名稱無效。

從我的研究中,我讀到在StartInfo使用username/password時放置工作目錄。 但是,這不起作用。 工作目錄是一個映射的驅動器。 在開始之前,我先做一個if (File.exists(w:\\folder\\filename) ..Process.start ....

我試圖將工作目錄硬編碼為C:\\但是由於它找不到文件,它仍然失敗。

因此,當以其他用戶身份運行Process.Start時,即使該路徑是由同一帳戶映射的,也無法使用網絡路徑? 我是否被迫在本地下載該應用程序,以便Process.Start可以正常工作?

任何幫助將不勝感激。

沒錯,網絡共享是每個用戶的令牌。 以另一個用戶(或處於提升狀態的同一用戶)的身份運行進程會導致創建新的用戶令牌,因此從新進程的角度來看,所有活動共享都“未映射”。

您有幾種選擇。 我要嘗試使用的第一件事是使用完整的UNC路徑,而不是映射的網絡驅動器號。 如果您嘗試這樣做可能會起作用(正在運行的新用戶將需要權限才能連接到共享)

如果您被迫使用驅動器號而不是UNC路徑,則編寫一個以新用戶身份啟動的小型加載程序,在新用戶令牌的上下文中映射網絡驅動器 ,然后啟動依賴於該程序的程序。在驅動器上。


PS)使用C:\\不能直接工作,因為C:\\是一個只有管理員才能寫入文件的受保護文件夾。 如果您創建了一個子文件夾C:\\MyTestFolder\\並對其設置了適當的權限,我敢打賭它會起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM