Làm cách nào để tìm và mở các phiên bản trước của thư mục theo chương trình (sử dụng PowerShell, WMI, v.v.)?


18

Tôi đang chạy Windows 8 Enterprise x64. Khi tôi mở \\localhost\c$dưới dạng thư mục mạng, sau đó sử dụng menu ngữ cảnh, mở cửa sổ Thuộc tính của thư mục con (ví dụ \\localhost\c$\Deploynhư trong ví dụ bên dưới), có tab Phiên bản trước nơi tôi có thể xem danh sách các phiên bản có sẵn của thư mục, cùng với dấu thời gian tương ứng:

Tab phiên bản trước


Nếu tôi chọn một phiên bản và nhấp vào nút Mở , cửa sổ Explorer mới sẽ được mở để tôi có thể duyệt phiên bản đã chọn trước đó của thư mục:

Vị trí trên Tab Chung


Thanh địa chỉ hiển thị một vị trí nơi dấu thời gian (ở dạng dài có thể đọc được của con người) được thêm vào mỗi tên thư mục. Vị trí này, nếu được sao chép từ đó, không thể được sử dụng trực tiếp làm đường dẫn hợp lệ trong cửa sổ Explorer khác hoặc công cụ dòng lệnh. Nhưng nếu tôi mở cửa sổ Thuộc tính của bộ con, thì nó sẽ hiển thị vị trí của thư mục con dưới dạng \\localhost\c$\@GMT-2013.08.27-04.01.18\Deploy. Hình thức này thực sự có thể được sử dụng cả trong Explorer và dòng lệnh:

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

Và trong PowerShell cũng vậy:

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

Dường như thư mục có tên ma thuật @GMT-2013.08.27-04.01.18(có lẽ đại diện cho dấu thời gian trong múi giờ GMT) hoạt động như thể nó thực sự thoát khỏi đó, ngoại trừ việc bạn không thể phát hiện ra sự tồn tại của nó bằng dirlệnh trừ khi bạn đã biết tên của nó. Tất cả các tệp và thư mục bên dưới thư mục này là chỉ đọc: không có gì có thể được tạo, xóa, đổi tên hoặc thay đổi ở đó (bao gồm các thuộc tính và quyền của tệp / thư mục). Nếu bạn là quản trị viên, nhưng không có quyền xem một số tệp nhất định, bạn không thể thay đổi điều đó, trừ khi trước tiên bạn quản lý để sao chép thư mục chứa sang vị trí không đọc được.

Câu hỏi: Có thể lấy danh sách các phiên bản của một thư mục nhất định, như phiên bản được hiển thị trên ảnh chụp màn hình đầu tiên và mở một trong số chúng trong cửa sổ Explorer mới theo chương trình (sử dụng PowerShell, WMI, WSH, BAT, Win32 API, v.v. )? Có thể lấy danh sách các thư mục tương ứng với các tên ma thuật như @GMT-2013.08.27-04.01.18 lập trình không?

Câu trả lời:


12

Các volresttiện ích, có sẵn từ Windows Server 2003 Resource Kit Công cụ , có thể được sử dụng để liệt kê các phiên bản trước của một thư mục. Nó hoạt động với tôi trên Windows 7 và vẫn hoạt động trên Windows 8. Chỉ cần cẩn thận với các tham số của bạn, vì nó cũng có thể khôi phục các phiên bản trước.

Một ví dụ về việc sử dụng (từ liên kết được trích dẫn bên dưới):

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)

Với đầu ra của chương trình này, có thể được sử dụng với /Btham số cho định dạng trần, bạn sẽ có thể xây dựng một tập lệnh sẽ khám phá một trong các phiên bản được liệt kê.

Để biết thêm thông tin, hãy xem: Windows Server Hacks: Khôi phục bản sao bóng bằng cách sử dụng dòng lệnh .


1

Trả lời muộn, nhưng tôi đã thử volrestvà dường như nó không hoạt động trên Windows 10. Khi OP quan sát, @GMT-yadayadayadathư mục ma thuật sẽ không xuất hiện cho đến khi bạn đưa thư mục lên trong Explorer từ tab Phiên bản trước trong Thuộc tính.

Một cách tiếp cận đã làm việc cho tôi là sử dụng mklink. Là quản trị viên trên máy tính / máy chủ được đề cập, hãy mở Dấu nhắc lệnh và gõ 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

Tìm trường Shadow Copy Volume và sử dụng lệnh sau để ánh xạ thư mục bạn cần vào một thư mục mới (trong trường hợp này là cái cuối cùng trong danh sách):

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

Hãy chắc chắn rằng bạn thêm dấu gạch chéo ngược như tôi đã làm ở trên, nếu không nó sẽ không hoạt động.

Bây giờ bạn sẽ có thư mục ma thuật của riêng mình để truy cập phiên bản trước của nội dung ổ cứng của bạn:

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

Để loại bỏ nó sau khi bạn hoàn thành, sử dụng rmdir.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.