Kiểm soát phiên bản cho cấu hình Windows


8

Làm cách nào để đặt cấu hình cá nhân Windows của tôi dưới sự kiểm soát phiên bản ?

Tóm tắt (chi tiết và ví dụ sau):

  • Cấu hình cá nhân (ví dụ: tùy chọn máy tính để bàn), không phải cấu hình hệ thống (ví dụ: trình điều khiển); nên làm việc mà không có quyền quản trị
  • Kiểm soát phiên bản, không sao lưu hoặc hình ảnh đĩa

Dưới đây là một vài điều tôi muốn có thể làm:

  • Cam kết trạng thái hiện tại của cấu hình của tôi với một kho lưu trữ, tốt nhất là với một số mức độ chi tiết (nếu tôi đã thực hiện hai thay đổi, tôi muốn có thể cam kết một mà không cần cam kết khác).
  • Viết một mục thay đổi bất cứ khi nào tôi cam kết và xem danh sách các mục thay đổi cho mỗi tệp cấu hình.
  • Xem sự khác biệt giữa trạng thái hiện tại và phiên bản kho lưu trữ.
  • Kiểm tra từ kho lưu trữ của tôi trên máy Windows mới và tái tạo cấu hình của tôi (ít nhất là nếu máy mới có cùng phiên bản Windows).

<thêm1> Tôi sẽ không cố gắng đưa ra một định nghĩa hoàn toàn chính xác về cấu hình của Cameron ; Tôi đang cố gắng bao gồm tất cả các loại sở thích cá nhân (ví dụ: mọi thứ có thể giải quyết trong bảng điều khiển mà không có quyền quản trị viên, các phím tắt trong menu Chương trình đặc biệt dành cho người dùng của tôi, Thay đổi). Tôi không muốn bao gồm các tài liệu của mình hoặc các ứng dụng đã cài đặt. </ thêm1>

<thêm2> Lưu ý rằng tôi đang nhắm mục tiêu cấu hình cá nhân của tôi, không phải cấu hình hệ thống (điều đó cũng hữu ích, nhưng đó không phải là mục đích của câu hỏi này). Chẳng hạn, tôi mong đợi một giải pháp hoạt động mà không có quyền quản trị. </ thêm1>

Những gì tôi làm trong unix là đặt (một lựa chọn) các tệp chấm của tôi dưới sự kiểm soát phiên bản . Trong Windows, tôi cho rằng tôi nên cam kết đăng ký và một số tệp (trong đó?) Bên dưới Application Data. Tôi muốn một cái gì đó tốt hơn là đặt toàn bộ tệp đăng ký dưới sự kiểm soát phiên bản (điều đó không đủ độ chi tiết và tôi sợ các vấn đề về khóa). <thêm1> Lý tưởng nhất là tôi sẽ sử dụng trình bao bọc hoặc tập lệnh với một số phần mềm kiểm soát phiên bản phổ biến (Bazaar, CVS, Darcs, Git, Mercurial, Subversion, giật), nhưng đó không phải là một yêu cầu tuyệt đối. </ thêm1>

Tôi hiện cần phải làm việc với Windows 2000 và Windows XP. Vì đây là một máy làm việc, phần mềm thanh toán sẽ không hoạt động (nguồn mở sẽ là lý tưởng). Tôi thấy thoải mái với dòng lệnh hơn là với GUI.

<thêm1> Đây là một quy trình làm việc mẫu:

  • Một ngày nọ tôi quyết định tôi muốn nền màn hình của mình có màu hồng. Vì vậy, tôi thực hiện thay đổi thông qua GUI. Điều này sửa đổi một dòng trong khóa tập tin cấu hình trong sổ đăng ký. Sau đó tôi cam kết thay đổi, để theo dõi nó.
  • Sau này tôi tự hỏi tại sao nền desktop của tôi có màu hồng. Vì vậy, tôi tìm kiếm cho màu máy tính để bàn màu đen trong các thay đổi.
  • Một ngày tôi cần sử dụng máy mới. Vì vậy, tôi kiểm tra từ kho lưu trữ cấu hình của mình và voilà, máy tính để bàn màu hồng.

Đây là một số điều tôi không cố gắng thực hiện:

  • Tôi không cố gắng tạo bản sao lưu. Tôi muốn có thể theo dõi các thay đổi (theo ngữ nghĩa hoặc ít nhất là cú pháp, không chỉ theo ngày) và chia sẻ thông tin giữa các máy (một kho lưu trữ, nhiều kiểm tra).

  • Tôi không cố gắng sao chép cài đặt Windows. Tôi không muốn tiếp tục phụ thuộc vào phần cứng, ứng dụng đã cài đặt hoặc tài liệu.

</ thêm1>


4
Mục tiêu cuối cùng của việc này là gì, bạn đang cố gắng thiết kế một ứng dụng? Lý do tôi hỏi là không có báo cáo về những gì khác biệt, giữ trạng thái đông khô sẽ dễ dàng. Ngay cả việc nhìn thấy các thay đổi có thể không quá khó, nhưng không kiểm tra chúng trong kiểm soát phiên bản. Tôi chỉ muốn hiểu thêm về những gì bạn muốn đạt được và có lẽ tôi có thể đề xuất một cách tiếp cận khác.
Scott McClenning

Đồng ý với @Scott, tôi không thấy điều này rất thiết thực (hoặc thậm chí có thể, đối với vấn đề đó). Thêm chi tiết về những gì bạn đang cố gắng thực hiện sẽ là tuyệt vời.
Sasha Chedygov

1
+1 ... bạn gần như chắc chắn sẽ hiểu sai về điều này.
Zac Thompson

@Scott: mục tiêu của tôi là sử dụng kiểm soát phiên bản cho các tùy chỉnh Windows của tôi. Tôi không biết tại sao câu hỏi của tôi đề nghị kỹ thuật đảo ngược cho bạn. @Zac: Tôi không thể hiểu sai về điều này, vì tôi chưa thực hiện bước đầu tiên.
Gilles 'SO- ngừng trở nên xấu xa'

Có vẻ như mục tiêu của bạn là làm một cái gì đó trên một hệ thống và sau đó xem điều gì đã xảy ra, ngược lại thiết lập một cấu hình mà bạn có thể khôi phục lại sau này. Nếu bạn cần khôi phục lại cấu hình sau này, tôi sẽ sử dụng một số phần mềm máy ảo để chụp ảnh nhanh. Điều đó sẽ không cho bạn biết những gì đã xảy ra nhưng nó sẽ đưa bạn đến cùng một chỗ hết lần này đến lần khác. Nếu bạn muốn xem ứng dụng làm gì thì có những chương trình tạo tập tin msi bằng cách thực hiện cài đặt khác của hệ thống trước và sau khi cài đặt. Sau đó, bạn có thể nhìn vào bên trong msi và xem những gì ứng dụng đã chạm / thay đổi. Nhưng không ai trong số này là "kiểm soát phiên bản".
Scott McClenning

Câu trả lời:


9

Theo tôi biết, cấu hình Windows quá phân tán để sao lưu đáng tin cậy, trong số quá nhiều tệp và địa điểm trong sổ đăng ký.

Không thể sao lưu sổ đăng ký trên một máy và khôi phục nó trên máy khác (hoặc thậm chí trên cùng), vì có quá nhiều khóa quá cụ thể đối với máy và vì một số khóa được Windows bảo vệ.

Khôi phục hệ thống nhằm mục đích duy trì trạng thái máy, nhưng với mục đích của bạn, điều đó không đáng tin cậy, vì nó sẽ tự quyết định xóa bản sao lưu nào để tiết kiệm dung lượng và có các vấn đề tiêu cực khác như không có trong Windows 2000.

Giải pháp phổ quát duy nhất tôi có thể thấy là chụp ảnh toàn bộ đĩa hệ thống và khôi phục nó khi cần, sử dụng sản phẩm tạo ảnh đĩa.

Có một số sản phẩm hình ảnh đĩa có chất lượng rất tốt, tôi có thể giới thiệu nếu bạn thấy rằng giải pháp này làm bạn quan tâm. Một số trong số họ giữ một kho hình ảnh với mô tả. Mặc dù những cái tốt nhất là thương mại, những cái miễn phí vẫn rất tốt.

Hình ảnh đĩa hoạt động tốt nhất khi ổ đĩa hệ thống không chứa dữ liệu người dùng.


1
+1 Tôi đồng ý với điều đó. Tôi không thể thấy các tính năng của Chụp ảnh đĩa nhưng tôi sử dụng DriveImage ( runtime.org/driveimage-xml.htm ) cho phép bạn sao lưu đĩa trong khi sử dụng hệ thống bằng các kỹ thuật đáng tin cậy. Nó cũng cho phép bạn duyệt các tập tin
Cristian T

Có thể đơn giản hơn khi sử dụng VM và chụp ảnh nhanh, thay vì sử dụng sản phẩm tạo ảnh đĩa. Việc di chuyển giữa các máy sẽ đơn giản hơn rất nhiều nếu phần cứng không giống nhau.
Velociraptors

@harrymc: Tôi xin lỗi nếu lần đầu tiên công thức của tôi không rõ ràng (tôi nghi ngờ rằng nó mất một nền tảng unix để hiểu ý tôi), nhưng tôi đang cố gắng sao lưu cấu hình người dùng của mình chứ không phải cấu hình hệ thống .
Gilles 'SO- ngừng trở nên xấu xa'

1
Câu trả lời sẽ vẫn như vậy, trừ khi bạn có thể thu hẹp khá mạnh danh sách các yếu tố trong cấu hình người dùng. Không có khu vực "cấu hình người dùng" thực sự trong Windows, không giống như các thư mục dấu chấm của Linux. Một tổ hợp đăng ký người dùng tồn tại, nhưng nhiều thông tin người dùng bị phân tán ở những nơi khác và trên khắp đĩa trong "Tệp chương trình", "Người dùng", v.v. Bạn thậm chí không thể theo dõi các thay đổi đăng ký, vì Windows tự sửa đổi rất nhiều của họ trong khi làm việc. Và mỗi ứng dụng phát minh ra các quy tắc riêng của nó. Có một lý do tại sao Linux hiệu quả hơn ...
harrymc

Là người dùng Windows, tôi cũng muốn có một cơ chế như bạn phác thảo. Than ôi, nó khá là không thể. Bạn sẽ cần theo dõi mọi ứng dụng và loại thay đổi bằng Process Monitor, để tìm nơi lưu trữ dữ liệu. Đây là một dự án khổng lồ đòi hỏi một khoản đầu tư khổng lồ về thời gian.
harrymc

2

Đến từ phía máy chủ của hàng rào, nơi bạn mong đợi chúng tôi sẽ rất hoang tưởng về những thay đổi cấu hình và nơi chúng đến, tôi có thể nói rằng chúng không thực sự tồn tại. Theo dõi cấu hình toàn cầu là một quá trình hoàn toàn thủ công cho hầu hết các phần. Có thể theo dõi (nhưng không ngăn chặn ) các khu vực đăng ký cụ thể để thay đổi, nhưng tôi biết không có gói phần mềm miễn phí / giá rẻ nào cho phép điều đó và một số phần mềm rất đắt tiền (đó là một vấn đề phức tạp hơn nhiều so với theo dõi thông tin tệp và sau đó khác nhau hai tập tin văn bản, do đó, đắt tiền).

Điều này thúc đẩy quản trị viên Unix batty. Kyle Brandt , sysadmin cho StackOverflow Inc, đã nắm bắt được điều này một vài tuần trước khi anh ấy đang dàn dựng một loạt các máy Windows mới cho StackExchange. SysAdmins chéo Linux / Windows đều được tuyên dương với anh ta. Đơn giản là không có Windows tương đương với việc đặt / etc trong VCS. Có một số loại xấu xí ngoài kia, chẳng hạn như chụp ảnh / chụp nhanh hoặc chỉ buộc thay đổi cấu hình thông qua Chính sách nhóm (và theo dõi các thay đổi đối với GPO theo cách thủ công), nhưng không có gì thanh lịch.

Lấy làm tiếc.


2

Cá nhân tôi theo dõi các thay đổi trong sổ đăng ký với Regshot . Bạn chụp ảnh trước khi thay đổi rồi đến ảnh thứ hai sau khi thực hiện. Bạn cũng có thể nhận được một báo cáo HTML tốt đẹp về các thay đổi. Tất nhiên bạn phải đảm bảo chỉ có một vài thay đổi được thực hiện giữa các ảnh chụp nhanh nếu bạn muốn tìm hiểu mọi thay đổi sẽ làm gì. Regshot là một chương trình nguồn mở.

Nếu bạn đang tìm kiếm thay đổi hệ thống tập tin theo dõi / sao lưu gần nhất có lẽ sẽ là DocShield . Bạn có thể theo dõi bất kỳ thư mục nào với nó mặc dù dữ liệu ứng dụng có thể là dự đoán tốt nhất của bạn đối với các thay đổi tùy chọn cá nhân của hầu hết các phần mềm nhận biết hồ sơ người dùng windows. DocShield miễn phí cho người dùng gia đình. Bạn có thể bắt chước những gì nó làm bằng cách sử dụng xcopy /d:{m-d-y}các thư mục bạn cần và sau đó nén / 7z đầu ra.

Sau đó thêm đầu ra từ cả hai bản sao lưu vào bất kỳ kho lưu trữ kiểm soát phiên bản nào với nhận xét của bạn.


Cho rằng tôi không quan tâm đến các báo cáo HTML, Regshot sẽ làm gì mà Microsoft reg.exevà Cygwin regtoolkhông làm gì? Đối với DocShield, phần mềm kiểm soát phiên bản nào sẽ không làm tốt hơn?
Gilles 'SO- ngừng trở nên xấu xa'

Tiền thưởng được trao cho Regshot. Tôi không nghĩ đó thực sự là những gì tôi muốn, nhưng đó là một khởi đầu tốt mà tôi có thể xây dựng được (đặc biệt là với nguồn mở).
Gilles 'SO- ngừng trở nên xấu xa'

Tôi nghĩ của tôi là nhiều hơn những gì bạn đang tìm kiếm ... nhưng không phải vì tôi muốn tiền thưởng chỉ để cho bạn biết.
jer.salamon

1

Sẽ không đơn giản, nhưng bạn có thể sử dụng Sysiternals Process Monitor để xác định các tệp và cài đặt đăng ký nào đã được thay đổi. Sau đó, bạn có thể thêm các chỉnh sửa đăng ký và các tệp cập nhật vào một chương trình lớn hơn để thực hiện các thay đổi cho bạn. Bạn có thể có thể sử dụng Power Shell hoặc một cái gì đó như AutoIt. Sau đó kiểm tra tập lệnh kết quả vào vcs của bạn. Tôi sử dụng một phương pháp tương tự để tự động hóa các cài đặt lạ thành tập lệnh đăng nhập và các mẫu quản trị Chính sách nhóm tùy chỉnh.


Nếu tôi hiểu bạn một cách chính xác, về cơ bản, bạn đề xuất chỉ giữ lại sự khác biệt gây ra bởi những thay đổi của tôi, thay vì toàn bộ sổ đăng ký và Application Datanội dung, phải không? Làm cách nào để phát hiện các thay đổi được thực hiện khi chương trình màn hình không chạy vì một số lý do? Có cách nào hợp lý để mở rộng quy trình làm việc để cho phép các hoạt động cập nhật (nghĩa là tôi đã thực hiện kiểm tra và muốn áp dụng thêm một vài thay đổi được thực hiện trên máy khác)?
Gilles 'SO- ngừng trở nên xấu xa'

1

Tôi không có giải pháp hệ điều hành cho bạn, nhưng có khả năng phải trả tiền. Những gì bạn có thể làm là sao lưu ổ đĩa của mình bằng DriveImage XML

Định dạng sao lưu là XML. Sau đó, bạn có thể lưu tệp xml này (cũng có thể khác) vào Hệ thống kiểm soát phiên bản yêu thích của bạn.

Như HarryMC đã nói, bạn thực sự không thể sử dụng hình ảnh này để thay đổi hệ thống mới, nhưng bạn chắc chắn có thể sử dụng hình ảnh trên một hệ thống mới có cùng phần cứng.


1

Bạn có thể sử dụng phần mềm quản lý hồ sơ của ForensiT để sao chép toàn bộ hồ sơ của bạn khi tắt hộp cửa sổ. Tới đây để kiểm tra xem: Trình quản lý hồ sơ người dùng


Tôi không thấy chương trình này có thể giúp tôi như thế nào: có vẻ như nó đã triển khai các cấu hình cho nhiều máy, đây không phải là mối quan tâm chính của tôi (quản lý lịch sử). Tôi có thể thấy rằng nó có thể là một công cụ có giá trị cho quản trị viên, nhưng tôi là người dùng ở đây.
Gilles 'SO- ngừng trở thành ác quỷ'

Nó cung cấp cho bạn khả năng sao lưu hồ sơ người dùng của bạn và có thể khôi phục nó khi bạn chọn. Không phải đó là những gì bạn đang tìm kiếm?
jer.salamon

-2

Dường như với tôi bạn đang mô tả một ứng dụng cơ sở dữ liệu nơi bạn theo dõi các khóa đăng ký và lập chỉ mục chúng theo một thẻ. Mặc dù tôi không đủ kỹ thuật với các khóa đăng ký để thực hiện việc này, nhưng trong ví dụ của bạn, bạn muốn tìm kiếm cơ sở dữ liệu cho Pink Desk hàng đầu và nhận hướng dẫn sẽ thực hiện thay đổi đó trên một máy tính khác. Đó là, nếu tôi hiểu ý định của bạn

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.