Як знайти та відкрити попередні версії папки програмно (за допомогою PowerShell, WMI тощо)?


18

Я працюю під управлінням Windows 8 Enterprise x64. Коли я відкриваюсь \\localhost\c$як мережна папка, а потім за допомогою контекстного меню відкриваю вікно Властивості підпапки (наприклад, \\localhost\c$\Deployяк у наведеному нижче прикладі), є вкладка Попередні версії , де я бачу список наявних попередніх версій папки, разом із відповідними часовими позначками:

Tab попередніх версій


Якщо я вибираю версію і натискаю кнопку « Відкрити », відкриється нове вікно провідника, де я можу переглянути вибрану попередню версію папки:

Розташування на вкладці General


В адресному рядку відображається місце, де до кожної назви папки додається часова марка (у тривалій для людини формі). Якщо це місце скопійоване звідти, не можна безпосередньо використовувати як дійсний шлях до іншого вікна Провідника чи інструменту командного рядка. Але якщо я відкрию вікно Властивості підпапки, то воно відобразить розташування підпапки у такій формі \\localhost\c$\@GMT-2013.08.27-04.01.18\Deploy. Ця форма фактично може бути використана як у Провіднику, так і в командному рядку:

C:\>dir \\localhost\c$\@GMT-2013.08.27-04.01.18\Deploy /s
 Volume in drive \\localhost\c$ is OSDisk
 Volume Serial Number is ▨▨▨▨-▨▨▨▨

 Directory of \\localhost\c$\@GMT-2013.08.27-04.01.18\Deploy

04/11/2013  10:53 AM    <DIR>          .
04/11/2013  10:53 AM    <DIR>          ..
04/11/2013  10:53 AM    <DIR>          Tools
               0 File(s)              0 bytes

 Directory of \\localhost\c$\@GMT-2013.08.27-04.01.18\Deploy\Tools

04/11/2013  10:53 AM    <DIR>          .
04/11/2013  10:53 AM    <DIR>          ..
04/11/2013  10:53 AM    <DIR>          x64
               0 File(s)              0 bytes

 Directory of \\localhost\c$\@GMT-2013.08.27-04.01.18\Deploy\Tools\x64

04/11/2013  10:53 AM    <DIR>          .
04/11/2013  10:53 AM    <DIR>          ..
08/30/2012  06:10 PM           325,272 ▨▨▨▨▨▨▨▨.dll
               1 File(s)        325,272 bytes

     Total Files Listed:
               1 File(s)        325,272 bytes
               8 Dir(s)  70,546,321,408 bytes free

І в PowerShell теж:

PS C:\> pushd \\localhost\c$\@GMT-2013.08.27-04.01.18\Deploy
PS Microsoft.PowerShell.Core\FileSystem::\\localhost\c$\@GMT-2013.08.27-04.01.18\Deploy> ls -r


    Directory: \\localhost\c$\@GMT-2013.08.27-04.01.18\Deploy


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         4/11/2013  10:53 AM            Tools


    Directory: \\localhost\c$\@GMT-2013.08.27-04.01.18\Deploy\Tools


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         4/11/2013  10:53 AM            x64


    Directory: \\localhost\c$\@GMT-2013.08.27-04.01.18\Deploy\Tools\x64


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---         8/30/2012   6:10 PM     325272 ▨▨▨▨▨▨▨▨.dll

Схоже, папка з магічним іменем @GMT-2013.08.27-04.01.18(імовірно, представляє часову позначку в часовому поясі GMT) поводиться так, ніби вона фактично там вийшла, за винятком того, що ви не можете виявити її існування за допомогою dirкоманди, якщо ви вже не знаєте її імені. Усі файли та папки, розташовані нижче цієї папки, доступні лише для читання: там нічого не можна створювати, видаляти, перейменовувати чи змінювати (включаючи атрибути та дозволи файлу / папки). Якщо ви адміністратор, але у вас немає дозволів на перегляд певних файлів, ви не можете це змінити, якщо спочатку не вдасться скопіювати папку, що містить вміст, у невідкрите місце.

Запитання: Чи можливо отримати список версій певної папки, наприклад тієї, що показана на першому скріншоті, та відкрити одну з них у новому вікні Провідника програмно (використовуючи PowerShell, WMI, WSH, BAT, Win32 API тощо) )? Чи можливо отримати список відповідних папок з такими магічними іменами, як @GMT-2013.08.27-04.01.18 програмно?

Відповіді:


12

volrestУтиліта, доступна з Windows Server 2003 Resource Kit Tools , може бути використана для відображення попередніх версій папки. Він працював для мене в Windows 7 і все ще повинен працювати в Windows 8. Просто будьте уважні до своїх параметрів, оскільки він також може відновити попередні версії.

Приклад використання (за посиланням, наведеним нижче):

C:\>volrest "\\test220\reports\Annual Reports 2004\doc.4.rtf"

VOLREST 1.1 - Previous Version command-line tool
(C) Copyright 2003 Microsoft Corp.

 Searching previous versions on \\test220\reports\annual report 2004\doc.4.rtf

07/01/2004  01:28 PM    37,786 \\test220\reports\@GMT-2004.07.01-18.34.35\annual 
                           report 2004\doc.4.rtf
07/01/2004  01:27 PM    37,740 \\test220\reports\@GMT-2004.07.01-18.28.02\annual 
                           report 2004\doc.4.rtf
07/01/2004  11:47 AM    37,690 \\test220\reports\@GMT-2004.07.01-18.24.41\annual 
                           report 2004\doc.4.rtf

            3 File(s)  113,216 bytes
            0 Dir(s)

Виходячи з цієї програми, можливо, використовується з /Bпараметром для голого формату, ви повинні мати можливість побудувати сценарій, який вивчить одну з перелічених версій.

Для отримання додаткової інформації див: Хаки Windows Server: Відновлення тіньових копій за допомогою командного рядка .


1

Пізня відповідь, але я спробував, але, volrestсхоже, це не працює в ОС Windows 10. Як зазначав ОП, @GMT-yadayadayadaчарівна папка не з’являється, доки ви не вкажете папку в Провіднику на вкладці «попередні версії» в «Властивості».

Підхід, який працював для мене, - це використовувати mklink. Як адміністратор на відповідному комп'ютері / сервері, відкрийте командний рядок і введіть vssadmin list shadows:

C:\WINDOWS\system32>vssadmin list shadows
vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool
(C) Copyright 2001-2013 Microsoft Corp.

Contents of shadow copy set ID: {5a052a28-96de-4924-b669-9e671b5ce069}
   Contained 1 shadow copies at creation time: 4/07/2019 4:31:12 PM
      Shadow Copy ID: {aaeab260-fef9-4ddc-9190-78d226de07a7}
         Original Volume: (C:)\\?\Volume{010e4355-9f97-4911-99f7-4ef45974b946}\
         Shadow Copy Volume: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
         Originating Machine: DESKTOPPC.domain.local
         Service Machine: DESKTOPPC.domain.local
         Provider: 'Microsoft Software Shadow Copy provider 1.0'
         Type: ClientAccessibleWriters
         Attributes: Persistent, Client-accessible, No auto release, Differential, Auto recovered

Contents of shadow copy set ID: {f2494e05-cb0c-4161-aa67-a545fe562b50}
   Contained 1 shadow copies at creation time: 11/07/2019 3:00:16 AM
      Shadow Copy ID: {c3e0566b-0b39-4080-b5ae-ca6e2a2c56c4}
         Original Volume: (C:)\\?\Volume{010e4355-9f97-4911-99f7-4ef45974b946}\
         Shadow Copy Volume: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2
         Originating Machine: DESKTOPPC.domain.local
         Service Machine: DESKTOPPC.domain.local
         Provider: 'Microsoft Software Shadow Copy provider 1.0'
         Type: ClientAccessibleWriters
         Attributes: Persistent, Client-accessible, No auto release, Differential, Auto recovered

Contents of shadow copy set ID: {aa9f8acb-0a06-4584-9f9e-dee2269b88f3}
   Contained 1 shadow copies at creation time: 19/07/2019 3:45:20 AM
      Shadow Copy ID: {9e3044a8-19e9-4fa8-82ea-b97a836a71d2}
         Original Volume: (C:)\\?\Volume{010e4355-9f97-4911-99f7-4ef45974b946}\
         Shadow Copy Volume: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3
         Originating Machine: DESKTOPPC.domain.local
         Service Machine: DESKTOPPC.domain.local
         Provider: 'Microsoft Software Shadow Copy provider 1.0'
         Type: ClientAccessibleWriters
         Attributes: Persistent, Client-accessible, No auto release, Differential, Auto recovered

Знайдіть поле " Тінь копіювання тіней" і скористайтеся наступною командою для відображення потрібної вам нової папки (у цьому випадку останньої у списку):

C:\>mklink /d C:\vsstest \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\
symbolic link created for vsstest <<===>> \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\

Переконайтесь, що ви додали зворотний нахил, як я робив вище, інакше він не працюватиме.

Тепер у вас буде власна магічна папка для доступу до попередньої версії вмісту вашого жорсткого диска:

C:\>dir vsstest
 Volume in drive C is Local Disk
 Volume Serial Number is DEAD-BEEF

 Directory of C:\vsstest

26/06/2018  12:49 PM             1,024 .rnd
01/07/2019  01:01 PM    <DIR>          apps
20/12/2018  10:51 AM    <DIR>          ESD
29/05/2019  09:16 PM    <DIR>          inetpub
29/01/2018  12:33 PM    <DIR>          Intel
19/03/2019  02:52 PM    <DIR>          PerfLogs
04/07/2019  04:32 PM    <DIR>          Program Files
16/07/2019  12:40 PM    <DIR>          Program Files (x86)
30/05/2019  11:26 AM    <DIR>          Scripts
14/06/2019  10:46 AM    <DIR>          temp
16/10/2018  01:12 PM    <DIR>          Tools
28/05/2019  09:19 AM    <DIR>          Users
18/06/2019  09:22 AM    <DIR>          VMs
11/07/2019  03:39 AM    <DIR>          Windows
               1 File(s)          1,024 bytes
              14 Dir(s)  107,573,796,864 bytes free

Щоб видалити його після завершення, використовуйте rmdir.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.