Puncte:0

Preveniți temporar blocarea fișierului SMB în timpul utilizării - Windows

drapel cn

Am un dosar \server\share\myApp\app.exe că o mână de oameni fug direct din cotă. Trebuie să actualizez acel fișier ocazional, dar de obicei este blocat din cauza sesiunilor SMB deschise.

Procedura mea normală pentru fișierele similare blocate SMB este să închid fișierele și sesiunile de blocare ca:

$openAppFiles = Get-SmbOpenFile | Unde Cale - cum ar fi „D:\Shares\myApp\*” 
$appSessions = $openAppFiles | Selectați SessionID -Unique

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

Extras-Arhivă $newZip -Destinație „D:\Shares\myApp\” -Force

Dar în ultimul timp, am întâmpinat probleme în care un client poate să se reconecteze și să blocheze unul sau mai multe dintre fișierele pe care le actualizez în acea fereastră mică. Pot testa încercând să redenumesc un fișier, de exemplu:

Redenumiți-element .\app.exe .\app.exe.bak

[Eroare] Redenumiți-Item: Procesul nu poate accesa fișierul deoarece este utilizat de un alt proces.

Există vreo modalitate de a bloca temporar accesul clienților la aceste fișiere?

M-am gândit să dezactivez temporar distribuirea, dar ar trebui să o fac după program. De asemenea, pot să-l repet până când funcționează, dar nici asta nu rezolvă neapărat problema. Ce alte opțiuni pot încerca?

drapel in
Este ceva executabil pe care îl puteți schimba, de ex. de a lăsa dezvoltatorul să-l schimbe într-un anumit fel? Dacă da, schimbați-l într-un mod în care este pornit de la SMB, mai întâi se copiază pe calea temporară locală și apoi pornește versiunea copiată. Primul proces se poate termina și lăsa executabilul deblocat.
Cpt.Whale avatar
drapel cn
@Robert, din păcate, nu de la niciun capăt. Nu pot schimba `aplicația` în sine și există un alt software implicat care execută `aplicația` pe care nici eu nu o pot modifica. Sesiunile smb nici măcar nu sunt necesare după lansarea aplicației, dar se pare că clienții Windows le vor restabili oricum atâta timp cât procesul rulează...
Puncte:1
drapel us

Ai putea încerca să adaugi Negați pe toți intrare la ACL-ul partajării:

Block-SmbShareAccess -Name AppShare -AccountName Toată lumea -Force

Apoi, continuați cu deconectarea utilizatorilor conectați, așa cum faceți în scriptul dvs.

După ce aplicația este actualizată, eliminați Negați pe toți intrare din ACL:

Unblock-SmbShareAccess -Name AppShare -AccountName Everyone -Force

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.