Chiudere le sessioni di cartelle condivise in remoto

Introduzione:

Ho uno script che copia alcuni dati dal server locale (Server A) ad un altro server (Server B) attraverso un path UNC, la condivisione del server B è stata creata per un disco rigido esterno che viene modificato each giorno, dopo l'esterno HDD viene scambiato il nuovo HDD viene montato utilizzando il command mountvol, la lettera assegnata è la stessa, ma come si può già sapere che il nome del volume per each HDD è diverso.

Il problema come ho ottenuto (passo dopo passo):

Se apro l'Explorer nel Server B e vai al path UNC, il che significa che nel Server A esiste una session da Server B per il mio (User X), nel cmd eseguo utilizzando un altro account (Utente Y) ad esempio:

dir \\path" 

e vedo i file, quindi a questo punto ci sono 2 sessioni dallo stesso computer e utenti diversi.

Curiosità: la session per l'utente Y rimarrà fino a che nella row di command non scrivi un altro command, oppure la window cmd perda la messa a fuoco – anziché chiudere la session subito dopo il completamento del command dir.

Con la curiosità di cui sopra, la seconda session per l'utente Y può essere ignorata in questo caso, questo ci lascia una session nel server A per l'utente X

Vado al Server B, smontare l'HDD usando mountvol (può essere fatto anche in Computer Management), scambiare l'HDD e poi montare il nuovo HDD.

Tornando al server A, nella window cmd eseguiamo nuovamente il command DIR con qualsiasi account utente X o Y e ottengo:

 The system cannot find the file specified. 

Se vado alla window di esplorazione aperta e aggiorni la window, i file non vengono visualizzati anche.

  • Ho trovato su Internet che dopo aver riavviato il process di esplorazione in Server B, i file condivisi sono nuovamente visibili, ovvero eliminando le sessioni in Server A (tutte le sessioni?), Un altro trucco era solo per eliminare la session nel server B.

Possibile soluzione -> Voglio qui il tuo aiuto 🙂

Dato che lo script (script batch) è automatico e non voglio controllare se esiste una session di sospensione dal server B nel server A, vorrei forzare la chiusura di tutte le sessioni appese per una data quota nel server A MA Vorrei farlo dal mio script nel server B, la "session netta (ioni)" è per scopi locali.

Se hai qualche altro suggerimento, con questo intendo un'altra ansible soluzione, per favore fathemes sapere. Grazie.

Informazioni tecniche:

 Server A: Windows Server 2008 R2 Enterprise SP1 Server B: Windows Server 2003 Enterprise SP2 

Note: Correggi se sbaglio, ma penso che:

  1. Aggiornamento della vista nella window Explorer per un path UNC non funziona poiché il nome del volume è diverso, smontandolo e montarlo di nuovo (stesso disco rigido), rende il rinfrescamento funziona normalmente. È forse un funzionamento sicuro? o è un bug? O mi sta sfuggendo qualcosa?

  2. Dopo aver eseguito dir per un path unc e recuperando l'elenco dei file dovrebbe chiudere subito la session poiché non c'è più "elaborazione" con esso.

  3. Dopo aver eseguito il dir per un path unc, le sessioni rimangono aperte, ma quando si fa clic su altre windows (la window cmd perde la messa a fuoco) la session scompare.

One Solution collect form web for “Chiudere le sessioni di cartelle condivise in remoto”

Questo è un ottimo esempio di come PowerShell possa essere di gran lunga superiore a uno degli strumenti di script di batch nativi. È ansible utilizzare il cmdlet New-PSDrive per mappare un'unità sul server B. L'unità persiste solo per questa session PowerShell particolare, quindi se si esegue un nuovo script e / o la session di PowerShell, la mapping di unità non verrà più memorizzata nella cache. Potresti anche rimuovere l'unità e ricreare con Remove-PSDrive a seconda del tuo caso d'uso.

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.