Điểm:0

Tạm thời ngăn tệp SMB bị khóa khi sử dụng - Windows

lá cờ cn

tôi có một tập tin \server\share\myApp\app.exe rằng một số ít người chạy trực tiếp từ chia sẻ. Thỉnh thoảng tôi cần cập nhật tệp đó, nhưng nó thường bị khóa do các phiên SMB đang mở.

Quy trình thông thường của tôi đối với các tệp SMB bị khóa tương tự là đóng các tệp và phiên khóa chúng như sau:

$openAppFiles = Get-SmbOpenFile | Trường hợp Đường dẫn giống như 'D:\Shares\myApp\*' 
$appSessions = $openAppFiles | Chọn SessionID -Duy nhất

Close-SmbOpenFile -FileID $openAppFiles.FileID -Force
Close-SmbSession -SessionID $appSessions.SessionID -Force

Giải nén-Lưu trữ $newZip -Destination 'D:\Shares\myApp\' -Force

Nhưng gần đây, tôi gặp sự cố trong đó khách hàng có thể kết nối lại và khóa một hoặc nhiều tệp mà tôi đang cập nhật trong cửa sổ nhỏ đó. Tôi có thể kiểm tra thử đổi tên một tệp chẳng hạn:

Đổi tên mục .\app.exe .\app.exe.bak

[Lỗi] Đổi tên mục: Quá trình không thể truy cập tệp vì nó đang được sử dụng bởi một quy trình khác.

Có cách nào để tôi tạm thời chặn khách hàng truy cập các tệp này không?

Tôi đã cân nhắc việc tắt tính năng chia sẻ tạm thời, nhưng tôi sẽ phải thực hiện việc đó sau giờ làm việc. Tôi cũng có thể tiếp tục chạy lại cho đến khi nó hoạt động, nhưng điều đó cũng không nhất thiết giải quyết được vấn đề. Tôi có thể thử những lựa chọn nào khác?

lá cờ in
Bạn có thể thay đổi t!the tệp thực thi được không, ví dụ:. bằng cách để nhà phát triển thay đổi nó theo một cách nào đó? Nếu có, hãy thay đổi nó theo cách nó được bắt đầu từ SMB trước tiên tự sao chép vào đường dẫn tạm thời cục bộ và sau đó bắt đầu phiên bản đã sao chép. Sau đó, quá trình đầu tiên có thể kết thúc và mở khóa tệp thực thi.
Cpt.Whale avatar
lá cờ cn
@Robert tiếc là không phải từ một trong hai đầu. Tôi không thể tự thay đổi `app` và có một phần mềm khác liên quan thực thi `app` mà tôi cũng không thể sửa đổi. Các phiên smb thậm chí không cần thiết sau khi ứng dụng được khởi chạy, nhưng có vẻ như các máy khách windows sẽ thiết lập lại chúng miễn là quá trình này đang chạy...
Điểm:1
lá cờ us

Bạn có thể thử thêm từ chối mọi người mục để chia sẻ của ACL:

Block-SmbShareAccess -Name AppShare -AccountName Mọi người -Force

Tiếp theo, hãy tiến hành ngắt kết nối những người dùng được kết nối giống như cách bạn thực hiện trong tập lệnh của mình.

Sau khi ứng dụng được cập nhật, hãy xóa từ chối mọi người mục nhập từ ACL:

Bỏ chặn-SmbShareAccess -Tên AppShare -Tên tài khoản Mọi người -Force

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.