Lista winnt@man.lodz.pl
[Lista archiwów] [Inne Listy]

Re: [WINNT] DCOM - zrobiłem coś bardzo głupiego, pomocy !

To: winnt@man.lodz.pl
Subject: Re: [WINNT] DCOM - zrobiłem coś bardzo głupiego, pomocy !
From: artiun <artiun@spam.wp.pl>
Date: Fri, 06 Jun 2014 09:41:24 +0200
W dniu 2014-06-06 00:27, pueblo pisze:
Witaj m7marek, 05 cze 2014 w news:lmqbem$bn4$1@usenet.news.interia.pl
napisałeś/aś:


po zresetowaniu nie mogę się nawet zalogować. Naprawianie systemu
tez nie pomaga, twierdzi że wszystko OK. Nie mam kopi zapasowej ani
punktów przywracania, czy da się coś z tym zrobić czy tylko trzeba
od nowa postawić system? Czy ktoś pomoże głupcowi?

Kiedyś poradziłem sobie z jakąś straszną kaszaną w taki sposób:
live linux z pendrajwa (może być nawet partedmagic). W katalogu c:
\windows\system32\config i podkatalogu RegBack są pliki rejestru -
aktualne i kopie .bak Może znjadziesz jakieś w miare świeże pliki które
będziesz mógł podmienić. Nie koniecznie wszystkie - SAM, SYSTEM,
SOFTWARE, DEFAULT, SECURITY, ale który konkretnie to ja ci nie powiem.
Najlepiej skopiuj te aktualne gdzieś na bok i eksperymentuj. Ja stawiam
na SYSYTEM i SECURITY.
Pamiętam, że nawet do tego stopnia się bawiłem, że taki rejstr
importowałem do rejestru na innym komputerze, gdzie edytowałem felerny
błąd, a potem spowrotem przenosiłem na popsutą maszynę. Ale szczerze
mówiąc nie pamiętam szczegółów.


Pokażę coś co mam od lat, działa świetnie:

/*

   Skrypt powinien zostać wywołany automatycznie podczas wylogowania
   lub zamykania systemu (w zależnosci od potrzeb).

   * gpedit.msc -> Konfiguracja użytkownika /
   *               Ustawienia systemu Windows /
   *               Skrypty (Logowanie/Wylogowanie)
   *
   * gpedit.msc -> Konfiguracja komputera
   *               Ustawienia systemu Windows
   *               Skrypty (Uruchamianie/Zamykanie)

   Rejestr jest modyfikowany podczas pracy Windows. aby zapewnic bezpieczeństwo
   systemu wykonywana jest kopia rejestru. Z załozenia przechowywanych jest
   nLastSave kopii (2). Kopia zachowywana jest w defaultowym katalogu
   c:\winnt\erdnt. Na dany dzień jest tylko jedna kopia, jest to ostatnia
   kopia z tego dnia (czyli z ostatniego wylogowania/zamkniecia systemu
   w danym dniu).

   Katalogi defaultowo sortowane są po nazwie więc kasuje się wszystkie kopie
prócz ostatnich nLastSave. Ilość kopii jest w tym wypadku uzalezniona od wielkości
   jednego zbiorczego rejesrtu (50MB i wiecej).

   Wywołanie erunt:
   E:\WinsApp\TOOLS\System\ERUNT\ERUNT.EXE
DestinationFolder [sysreg][curuser][otheruser][/noconfirmdelete][/noprogresswindow]

*/

var cEruNT = "C:\\windows.0\\erdnt"; // katalog backupu var cEruNTExe = "E:\\WinsApp\\System\\ERUNT\\ERUNT.EXE"; // exec var cEruNTPar = "sysreg curuser otheruser /noconfirmdelete /noprogresswindow"; // wywolanie var nLastSave = 3; // ilosc kopii
var aFolders   = new Array();
var nInd       = 0;
var nFolders   = 0;

var wsh        = WScript.CreateObject( "WScript.Shell" );
var fso        = WScript.CreateObject( "Scripting.FileSystemObject" );
var oFolders   = fso.GetFolder( cEruNT );
var oSubFolder = new Enumerator( oFolders.SubFolders );

//
// ToTwo
//
function ToTwo( cIn )
{
   cIn = cIn.toString( 10 )
   if( cIn.length < 2 ) cIn = "0" + cIn;
   return( cIn );
}

//
// ExecEruNT
//
function ExecEruNT( cPar )
{
   var myWShell, cComm;

   myWShell = WScript.CreateObject( "WScript.Shell" );

   if( cPar != "" )
      myWShell.Run ( cPar, 0, true );

   return( true );
}

//
// Tu kopia (po dacie), jeśli dodatkowo kopia ma być wg czasu to odremowac resztę
//
var dDate      = new Date();
var cEruNTSDir =  dDate.getFullYear() + "-" +
                  ToTwo( dDate.getMonth() +1 ) + "-" +
                  ToTwo( dDate.getDate()     );
                  // + " " + ToTwo( dat.getHours()    ) + ":" +
                  // ToTwo( dat.getMinutes()  ) + ":" +
                  // ToTwo( dat.getSeconds()  );

//
// wykonanie kopii rejestru
//
ExecEruNT( cEruNTExe + " " + cEruNT + "\\" + cEruNTSDir + " " + cEruNTPar );

// To wszystkie foldery z kopia
for( ; !oSubFolder.atEnd(); oSubFolder.moveNext() )
{
   var oFolder = oSubFolder.item();
   aFolders[nFolders++] = oFolder.name;
}

//
// nFolders to ilość całkowita kopii, kolejne kopie są w aFolders
// Trzeba usunąć wszystko prócz ostatnich nLastSave
//
for( nInd=0; nInd<nFolders-nLastSave; nInd++ )
{
   fso.DeleteFolder( cEruNT + "\\" + aFolders[nInd] );
}

Ci, którzy się znają wiedzą co robi. :)

--
Artur
0 weeks 1 day 21 hours 4 minutes 26 seconds and 322 milliseconds.
"pl.comp.os.ms-windows.winnt"

<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>