W dniu 2014-08-22 o 19:21, ACMM-033 pisze:
Użytkownik "1634Racine" <1634Racine@1634Racine.pl> napisał w wiadomości
news:53f6aea4$0$2232$65785112@news.neostrada.pl...
....
to i tak watson robi swoje - tworzac nowy dmp kasuje poprzedni.
Przyznam, że się trochę zagwoździłem... Pomyślałem o założeniu jakiejś łapy
na plik i jego "zbackupowanie" tam, gdzie nikt i nic mu kuku nie zrobi.
Albo, gdyby była możliwość albo uruchamiać dany program za pośrednictwem
skryptu, co skąd inąd jest głupawe, skrypt właśnie backupował by dumpa i
doktor może sobie nadpisywać.
Nie wiem dlaczego, ale tak bym zrobił zamiast walczyć :)
Mam np. coś takiego (proste, moje i skuteczne):
/*
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] );
}
Albo może doktor ma możliwość uruchomienia
jakiegoś skryptu, toby przy zadziałaniu zrobił dumpa i zrzucił go dodatkowo
gdzieś na bok z dopiskiem... Może przekierowanie strumienia w stylu echo
dupa >> dupa, z dwoma dziobkami (no bo jeden właśnie nadpisuje)... Nie
miałem takiej zagwozdki, to pozostało mi pogdybać...
Ostatecznie, przy starcie systemu prostym skryptem robić zwałkę dumpów, i
niech sobie Pan Doktor je nadpisuje...?
Dobra, więcej nie wymodzę, odpadam delikatnie, może mnie wena najdzie
(rzadkość...) i coś podpowiem? :)
--
Artur
2 weeks 1 day 12 hours 54 minutes 48 seconds and 220 milliseconds.
"pl.comp.os.ms-windows.winnt"
|