Thay vì sử dụng không gian trên ổ cứng thì tôi sử dụng OneDrive như một network drive.

Tôi mua một tài khoản Microsoft 365 để có không gian lưu trữ trên cloud, quả là đáng đồng tiền bát gạo.

Vì sao nên map OneDrive thành ổ đĩa mạng?

Phần mềm OneDrive trên Windows 10 hỗ trợ tính năng “Save space and download files as you use them“, nghĩa là chỉ tải file về máy tính khi xem hoặc chỉnh sửa, vì vậy cũng tiết kiệm dung lượng ổ cứng. Tuy nhiên tôi vẫn chưa thích kiểu này lắm vì:

  • Luôn cần phần mềm OneDrive chạy nền để đồng bộ.
  • Sau khi file được mở trên máy thì nó cứ ở đó mãi thôi, tức là vẫn mất dung lượng ổ cứng.

Sau khi tìm hiểu, tôi phát hiện ra cách khác hay hơn đó là OneDrive hỗ trợ giao thức WebDAV và vì thế có thể map thành một ổ đĩa mạng (Network drive). Sẽ rất tuyệt nếu bạn có một đường truyền mạng thật tốt, nhất là qua ethernet.

Để sử dụng được tính năng này, đầu tiên ta đăng nhập vào OneDrive trên trình duyệt tại địa chỉ www.onedrive.com.

Sau khi đăng nhập thành công, giao diện File Manager của OneDrive hiển thị thì hãy để ý cái địa chỉ URL. Copy phần thông tin CID phía sau đoạn &cid=.

Mở Windows Explorer, chuột phải lên This PC rồi chọn “Map network drive…

Trong trường Folder, nhập địa chỉ https://d.docs.live.net/XXXXX với XXXXX là mã CID đã lấy phía trên.

Check vào ô “Connect using different credentials” để đăng nhập tài khoản OneDrive chứ không phải dùng tài khoản trên máy.

Sau khi ấn Finish, giao diện đăng nhập hiển thị, hãy điền địa chỉ email và mật khẩu của tài khoản OneDrive. Ấn OK là xong.

Cách map OneDrive bằng dòng lệnh

Một trong những vấn đề khi map OneDrive thành ổ đĩa mạng trên Windows 10 đó là vấn đề ghi nhớ credentials.

Nếu bạn chọn “Reconnect at sign-in”, Windows luôn tự thêm prefix MicrosoftAccount\ vào trước địa chỉ email trong ô User name và vì thế lần nào cũng lỗi đăng nhập mỗi khi Log on. Thế là mình lại phải vào sửa user name bằng tay rất chi là mất thời gian. Tôi đi tìm khắp nơi mà vẫn không ra giải pháp triệt để.

Cuối cùng, chỉ còn cách là map ổ đĩa bằng dòng lệnh net use, dù cách này vô cùng là kém bảo mật vì ta phải điền mật khẩu một cách lộ liễu. Cú pháp như sau:

net use <ký tự ổ đĩa>: https://d.docs.live.net/<mã CID> /user:<Tài khoản OneDrive> [Password]

Ngoài ra nếu ta muốn đặt nhãn đĩa (Disk label) cho ổ đĩa mạng này thì cách làm không đơn giản, cụ thể chúng ta phải sửa registry cho mỗi lần ổ đĩa này được map.

Ta cần ghi nhãn (label) ổ đĩa vào String value _LabelFromReg trong key HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Explorer\ MountPoints2##d.docs.live.net@SSL#XXXXX với XXXXX là mã CID.

Túm lại, để one-click tôi làm file BATCH sau để map ổ đĩa. Hãy thay thế các biến trong khai báo set theo tài khoản của bạn rồi tạo shortcut cho script này vào thư mục Startup nhé.

onedrive.bat

@echo off

set USERNAME=MyAccount
set PASSWORD=MyPassword
set CID=XXXXX
set DRIVE=O
set LABEL=OneDrive

set REGKEY1=HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##d.docs.live.net@SSL#%CID%
set REGKEY2=HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##d.docs.live.net@SSL#DavWWWRoot#%CID%
set REGKEY3=HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\https://d.docs.live.net/%CID%

:: Change the drive label
reg add "%REGKEY1%" /f /v "_LabelFromReg" /t REG_SZ /d "%LABEL%"
reg add "%REGKEY2%" /f /v "_LabelFromReg" /t REG_SZ /d "%LABEL%"
reg add "%REGKEY3%" /f /v "_LabelFromReg" /t REG_SZ /d "%LABEL%"

:: Map OneDrive (WebDAV) as a network drive
net use %DRIVE%: https://d.docs.live.net/%CID% /user:%USERNAME% %PASSWORD% /persistent:No

Cần nhắc lại lần nữa là cách này rất chi là kém bảo mật nên nếu bạn thích làm như thế này hãy cất file này vào chỗ nào các tài khoản khác không tìm thấy được.