none
Открытые файлы RRS feed

  • Вопрос

  • Добрый день,

    подскажите пожалуйста каким образом можно просмотреть открытые файлы в определенной директории.

    Либо по пути \\dfs.firma.local\shared\data либо локально...

    И как их можно закрыть только в определенной директории.

    Заранее большое спасибо за помощь.


    Все что вы делаете, вы делаете на свой страх и риск. Делайте Backup правильно.

    21 июня 2017 г. 6:27

Ответы

  • Если только папка F:\Data и ничего более, то да, если то что в ней, то нет.

    #Строго F:\Data
    Get-SMBOpenFile -CIMSession $s | ? {$_.Path –like "F:\Data"} | Close-SmbOpenFile -Force -CimSession $s
    # То что в F:\Data\*
    Get-SMBOpenFile -CIMSession $s | ? {$_.Path –like "F:\Data\*"} | Close-SmbOpenFile -Force -CimSession $s


    • Помечено в качестве ответа PuCtoy 22 июня 2017 г. 8:18
    22 июня 2017 г. 7:55
    Отвечающий

Все ответы

  • Нашел такую конструкцию

    $s = New-CIMSession server.firma.local
    Get-SMBOpenFile -CIMSession $s | where {$_.Path –like "*.*"}

    Но как правильно отфильтровать вывод для меня сложновато

    FileId SessionId Path ShareRelativePath ClientComputerName ClientUserName PSComputerName

    Т.е. взять значение Path

    Close-SMBOpenFile -CIMSession $s                                                                          




    Все что вы делаете, вы делаете на свой страх и риск. Делайте Backup правильно.

    22 июня 2017 г. 7:23
  • Отфильтровать можно:

    Get-SMBOpenFile | ? {$_.ShareRelativePath -like '*Users*'}

    или по расширению:

    Get-SMBOpenFile | ? {$_.ShareRelativePath -match '\.txt'}

    Закрыть - Close-SmbOpenFile:

    $cl = Get-SMBOpenFile | ? {$_.ShareRelativePath -match '\.txt'}
    $cl | Close-SmbOpenFile -Force


    22 июня 2017 г. 7:38
    Отвечающий
  • Так спасибо более понятно стало.

    Get-SMBOpenFile -CIMSession $s | where {$_.Path –like "F:\Data"}

     $s | Close-SmbOpenFile -Force
    Т.е. в моем случае получится такая конструкция?

    Все что вы делаете, вы делаете на свой страх и риск. Делайте Backup правильно.

    22 июня 2017 г. 7:50
  • Если только папка F:\Data и ничего более, то да, если то что в ней, то нет.

    #Строго F:\Data
    Get-SMBOpenFile -CIMSession $s | ? {$_.Path –like "F:\Data"} | Close-SmbOpenFile -Force -CimSession $s
    # То что в F:\Data\*
    Get-SMBOpenFile -CIMSession $s | ? {$_.Path –like "F:\Data\*"} | Close-SmbOpenFile -Force -CimSession $s


    • Помечено в качестве ответа PuCtoy 22 июня 2017 г. 8:18
    22 июня 2017 г. 7:55
    Отвечающий
  • Если только папка F:\Data и ничего более, то да, если то что в ней, то нет.

    #Строго F:\Data
    Get-SMBOpenFile -CIMSession $s | ? {$_.Path –like "F:\Data"} | Close-SmbOpenFile -Force -CimSession $s
    # То что в F:\Data\*
    Get-SMBOpenFile -CIMSession $s | ? {$_.Path –like "F:\Data\*"} | Close-SmbOpenFile -Force -CimSession $s



    Спасибо думаю второй вариант будет самым правильным

    Все что вы делаете, вы делаете на свой страх и риск. Делайте Backup правильно.

    22 июня 2017 г. 8:18
  • Подскажите, а есть ли вариант что бы не править скрипт, если ресурс переехал на другой сервер?

    Все что вы делаете, вы делаете на свой страх и риск. Делайте Backup правильно.


    • Изменено PuCtoy 22 июня 2017 г. 9:40
    22 июня 2017 г. 9:40
  • Указать все сервера, которые участвуют:

    $s = New-CIMSession server01.firma.local,server02.firma.local,server03.firma.local

    22 июня 2017 г. 9:54
    Отвечающий
  • Если только папка F:\Data и ничего более, то да, если то что в ней, то нет.

    #Строго F:\Data
    Get-SMBOpenFile -CIMSession $s | ? {$_.Path –like "F:\Data"} | Close-SmbOpenFile -Force -CimSession $s
    # То что в F:\Data\*
    Get-SMBOpenFile -CIMSession $s | ? {$_.Path –like "F:\Data\*"} | Close-SmbOpenFile -Force -CimSession $s



    Спасибо думаю второй вариант будет самым правильным

    Все что вы делаете, вы делаете на свой страх и риск. Делайте Backup правильно.

    В общем опробовал оба варианта сегодня, не закрываются сессии.

    И такой вариант тоже

    Get-SmbOpenFile | foreach-object {if ($_.path -like "F:\Data\*") {Close-SmbOpenFile -Force -FileId $_.FileID}}


    Все что вы делаете, вы делаете на свой страх и риск. Делайте Backup правильно.

    26 июня 2017 г. 12:33
  • Интересно по каким причинам не закрываются сессии может наведет кто на мысль

    Get-SMBOpenFile -CIMSession $s | ? {$_.Path –like "F:\DATA\TEST"} | Close-SmbOpenFile -Force -CimSession $s


    Все что вы делаете, вы делаете на свой страх и риск. Делайте Backup правильно.

    28 июня 2017 г. 4:48