2012-01-11 13 views
8

Tôi có ứng dụng VB6 liên kết với một số thiết bị đầu cuối POS từ máy tính Windows 32 32 bit. Các thiết bị đầu cuối POS được ánh xạ tới máy tính Windows 7 và tôi có thể truy cập các thiết bị đầu cuối POS từ máy tính Windows 7 từ Explorer hoặc thông qua cmdline/shell.Ứng dụng VB6 trên Windows 7 không thể truy cập Ổ đĩa được ánh xạ

Ứng dụng đã được cập nhật lên ADO 2.8 và tất cả các điều khiển và thành phần khác mà tôi không còn có mã nguồn đã được viết lại. Sau một vài trục trặc gây phiền nhiễu, tôi đã nhận được ứng dụng để biên dịch lại trên máy tính Windows 7 mà không có lỗi.

Hiện tại đã xảy ra sự cố. Ứng dụng VB6 không thể nhìn thấy hoặc điều hướng đến bất kỳ ổ đĩa được ánh xạ nào! Tôi đã thử cài đặt UAC twiddling; Tôi đã đặt ứng dụng chạy trong chế độ Windows XP SP3; Tôi đã thử chạy với tư cách Quản trị viên. Không có thứ nào trong số này (và nhiều hoán vị trong số này) hoạt động.

Bất kỳ đề xuất nào về cách thực hiện công việc này?

+0

Làm thế nào để bạn thiết lập nó để chạy trong chế độ Windows XP SP3? Điều gì xảy ra khi nó * không * chạy trong chế độ đó? – Gabe

+0

Bạn thiết lập nó để chạy trong chế độ tương thích, thiết lập nó để sử dụng Windows XP SP3 là chế độ tương thích. Điều này được thực hiện bằng cách kích chuột phải vào liên kết và sử dụng Properties. Trong thực tế, không có sự khác biệt khi tôi chạy nó bằng cách sử dụng chế độ tương thích này. –

+1

Điều gì sẽ xảy ra khi bạn cố điều hướng đến một ổ đĩa được ánh xạ? Điều gì về một con đường UNC? – Gabe

Trả lời

4

Tôi tin rằng bạn đang gặp sự cố vì ánh xạ ổ đĩa thông thường là cho mỗi người dùng và trên người dùng nhóm Quản trị viên UAC có hai ngữ cảnh riêng biệt (một cho mỗi mã thông báo: SU & được nâng cao).

Có một điều như một ánh xạ ổ đĩa cấp hệ thống, được thực hiện dưới quyền người dùng Hệ thống (NT Authority \ System). Khi bạn ánh xạ một ổ đĩa trong tài khoản này và ánh xạ liên tục, tất cả người dùng có thể xem và sử dụng ánh xạ (tùy thuộc vào quyền truy cập thông thường đối với tệp ở đó).

Cách thông thường bạn thực hiện điều này là thông qua GPO cấp tên miền (Đối tượng chính sách nhóm), có nghĩa là hối lộ jockeys hộp địa phương của bạn nếu trong môi trường mạng LAN được quản lý của công ty.

Một cách để làm điều này trong một máy Workgroup là để lập bản đồ bức thư như hệ thống thông qua các lệnh AT, từ một dấu nhắc nâng lệnh:

at 8:53 am "net use m: \\MediaShare\MyLibrary 
    ThePW /user:MediaShare\TheUser /persistent:yes > nul" 

Có máy chủ từ xa là MediaShare, người dùng theuser, mật khẩu ThePW, và 8:53 AM là một hoặc hai phút trong tương lai để tránh vô tình lập kế hoạch này cho ngày mai.

Nhưng điều này không thành công trên Vista và sau đó do Phiên 0 cô lập!

Vì vậy, ... sử dụng giải pháp thay thế thứ 3 tại Run CMD.exe as Local System Account cũng giống như điều được đề cập bởi câu trả lời của ForcePush cho How to map a network drive to be used by a service.

Tôi tin rằng đó là những gì bạn đang ở đây.

+0

Cảm ơn bạn đã nhập. Trong trường hợp này ánh xạ ổ đĩa ban đầu được thiết lập dưới dạng ánh xạ cục bộ của người dùng đã đăng nhập. Tôi giả định rằng có thể gây ra vấn đề và sau đó đã có những người hỗ trợ mạng thiết lập người dùng lên để cấu hình ánh xạ được thiết lập bởi một trong hai GPO như bạn đề nghị hoặc thông qua kịch bản đăng nhập. Trong cả hai trường hợp, kết quả là như nhau.Người dùng đã đăng nhập có thể xem và điều hướng đến các ổ đĩa được ánh xạ và có quyền truy cập vào tất cả các tệp bằng cách sử dụng Explorer hoặc thông qua dòng lệnh. Tuy nhiên, ứng dụng VB6 không thể "nhìn thấy" hoặc truy cập vào các cổ phiếu khi chạy. –

+0

Thông thường, tập lệnh đăng nhập chỉ đặt ánh xạ cho người dùng chưa đăng ký đang đăng nhập. Chính xác những gì các thông tin không chương trình VB6 chạy với? Cùng một người dùng đó? Người dùng nâng cao? Một số người dùng khác? – Bob77

+0

Ứng dụng chạy với thông tin đăng nhập của người dùng đã đăng nhập. Đây là tất cả những gì được yêu cầu từ quan điểm của ứng dụng. –

8

Việc thêm cài đặt đăng ký này đã giải quyết được sự cố cho tôi: http://technet.microsoft.com/en-us/library/ee844140%28v=ws.10%29.aspx.

Để khắc phục sự cố này, hãy định cấu hình giá trị đăng ký EnableLinkedConnections . Giá trị này cho phép Windows Vista và Windows 7 đến chia sẻ kết nối mạng giữa mã thông báo truy cập đã lọc và mã thông báo truy cập quản trị viên đầy đủ cho thành viên của nhóm Quản trị viên . Sau khi bạn định cấu hình giá trị đăng ký này, LSA kiểm tra xem có một mã thông báo truy cập khác được liên kết với phiên hiện tại của người dùng nếu tài nguyên mạng được ánh xạ tới mã thông báo truy cập hay không. Nếu LSA xác định rằng có mã thông báo truy cập được liên kết, nó sẽ thêm mạng chia sẻ với vị trí được liên kết.Để cấu hình các giá trị EnableLinkedConnections registry

  1. Bấm Start, gõ regedit trong các chương trình và các tập tin Bắt đầu hộp, và sau đó nhấn ENTER.

  2. Xác định vị trí và sau đó nhấp chuột phải vào khóa con đăng ký HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System.

  3. Điểm đến mới, sau đó bấm Giá trị DWORD.

  4. Loại EnableLinkedConnections, sau đó nhấn ENTER.

  5. Bấm chuột phải vào EnableLinkedConnections, sau đó bấm Sửa đổi.

  6. Trong ô Dữ liệu giá trị, nhập 1, sau đó bấm OK.

  7. Thoát khỏi Trình chỉnh sửa sổ đăng ký, sau đó khởi động lại máy tính.

+0

Điều này phù hợp với tôi, đặc biệt đối với Trình cài đặt USB phổ quát http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3. –

0

không biết nếu bạn đã bao giờ figured này ra nhưng đối với tôi đó là lệnh ChDir (ngay cả với registry sửa chữa ở trên).

tôi đã có trong mã của tôi

ChDir "P:\Temp\VidCap\Cam1\" 'I almost never use ChDir Open "list.txt" For Output As #1

và tất cả các VB6 lệnh tập tin sẵn có nhìn thẳng mặc dù bất kỳ hoạt động, không có lỗi, không có gì cả. Tôi giải quyết nó bằng cách rõ ràng có đường dẫn, (trong mã của tôi nó đã được trong một chuỗi nhưng bạn có thể có nó một cách rõ ràng):

dd = "P:\Temp\VidCap\Cam1\" Open dd & "list.txt" For Output As #1 hoạt động như mong đợi.

hy vọng điều này giúp

H