Przydatne narzędzie od Microsoft Sysinternals

Sysinternals Utilities Index

 

https://docs.microsoft.com/pl-pl/sysinternals/downloads/

Przykłady użycia

http://slow7.pl/windows-7/item/48-sysinternals-suite-skrzynia-skarbow-administratora

 

 

 

Sysinternals Suite
Cały zestaw Sysinternals Utilities zrolowany do jednego pobrania.

Sysinternals Suite for Nano Server
Sysinternals Utilities dla serwera Nano w jednym pobraniu.

 

 

AccessChk 
v6.20 (19 listopada 2017 r.)
AccessChk to narzędzie wiersza polecenia służące do wyświetlania skutecznych uprawnień do plików, kluczy rejestru, usług, procesów, obiektów jądra i innych.

AccessEnum 
v1.32 (1 listopada 2006)
To proste, ale potężne narzędzie bezpieczeństwa pokazuje, kto ma dostęp do katalogów, plików i kluczy rejestru w systemach. Użyj go, aby znaleźć dziury w swoich uprawnieniach.

AdExplorer 
v1.44 (15 listopada 2012)
Active Directory Explorer to zaawansowana przeglądarka i przeglądarka Active Directory (AD).

AdInsight 
v1.2 (26 października 2015 r.)
LDAP (Lightweight Weight Directory Access Protocol) narzędzie do monitorowania w czasie rzeczywistym, którego celem jest rozwiązywanie problemów z aplikacjami klienckimi Active Directory.

AdRestore 
v1.1 (1 listopada 2006 r.)
Odzyskaj obiekty Active Directory Server 2003.

Autologon 
v3.10 (29 sierpnia 2016 r.)
Ekran hasła pomijania podczas logowania.

Autoruns 
v13.81 (12 grudnia 2017 r.)
Zobacz, jakie programy są skonfigurowane do automatycznego uruchamiania po uruchomieniu systemu i zalogowaniu. Autoruns pokazuje również pełną listę lokalizacji rejestru i plików, w których aplikacje mogą konfigurować ustawienia automatycznego uruchamiania.

BgInfo 
v4.25 (18 stycznia 2018)
Ten w pełni konfigurowalny program automatycznie generuje tła pulpitu zawierające ważne informacje o systemie, w tym adresy IP, nazwę komputera, karty sieciowe i inne.

BlueScreen 
v3.2 (1 listopada 2006 r.)
Ten wygaszacz ekranu nie tylko dokładnie symuluje niebieskie ekrany, ale także symuluje ponowne uruchamianie (wraz z CHKDSK) i działa w systemach Windows NT 4, Windows 2000, Windows XP, Server 2003 i Windows 95 oraz 98.

CacheSet 
v1.0 (1 listopada 2006)
CacheSet to program, który pozwala kontrolować rozmiar zestawu roboczego menedżera pamięci podręcznej za pomocą funkcji udostępnianych przez system NT. Jest kompatybilny ze wszystkimi wersjami NT.

ClockRes 
v2.1 (4 lipca 2016 r.)
Wyświetl rozdzielczość zegara systemowego, który jest także maksymalną rozdzielczością zegara.

Contig v1.8 
(4 lipca 2016 r.)
Czy chcesz szybko zdefragmentować często używane pliki? Użyj Contig do optymalizacji pojedynczych plików lub do tworzenia nowych plików, które są przyległe.

Coreinfo 
v3.31 (18 sierpnia 2014)
Coreinfo to nowe narzędzie wiersza polecenia, które pokazuje mapowanie między procesorami logicznymi a procesorem fizycznym, węzłem NUMA i gniazdem, na którym się znajdują, a także pamięci podręcznej przypisane do każdego logicznego systemu. edytor.

Ctrl2cap 
v2.0 (1 listopada 2006)
Jest to sterownik trybu jądra, który demonstruje filtrowanie danych z klawiatury bezpośrednio nad sterownikiem klasy klawiatury, aby zamieniać kapitaliki na klawisze sterujące. Filtrowanie na tym poziomie pozwala na konwersję i ukrywanie kluczy, zanim NT nawet je “zobaczy”. Ctrl2cap pokazuje także, jak używać NtDisplayString () do drukowania komunikatów na inicjalizacyjnym niebieskim ekranie.

DebugView 
v4.81 (4 grudnia 2012 r.)
Kolejny pierwszy z Sysinternals: ten program przechwytuje połączenia wykonane do DbgPrint przez sterowniki urządzeń i OutputDebugString wykonane przez programy Win32. Umożliwia przeglądanie i zapisywanie danych wyjściowych sesji debugowania na komputerze lokalnym lub w Internecie bez aktywnego debuggera.

Komputery stacjonarne w wersji 
2.0 (17 października 2012 r.)
To nowe narzędzie umożliwia utworzenie maksymalnie czterech wirtualnych pulpitów i użycie interfejsu podajnika lub klawiszy skrótów do podglądu zawartości każdego pulpitu i łatwego przełączania się między nimi.

Disk2vhd 
v2.01 (21 stycznia 2014)
Disk2vhd upraszcza migrację systemów fizycznych do maszyn wirtualnych (p2v.md).

DiskExt 
v1.2 (4 lipca 2016 r.)
Wyświetlaj odwzorowania woluminów na dysku.

Diskmon 
v2.01 (1 listopada 2006)
To narzędzie przechwytuje całą aktywność dysku twardego lub działa jak lampka aktywności dysku oprogramowania w zasobniku systemowym.

DiskView 
v2.4 (25 marca 2010 .md)
Graficzne narzędzie sektora dysku.

Użycie dysku (DU.md) 
v1.6 (4 lipca 2016 r.)
Wyświetl użycie dysku przez katalog.

EFSDump 
v1.02 (1 listopada 2006)
Wyświetl informacje o zaszyfrowanych plikach.

FindLinks 
v1.1 (4 lipca 2016 r.)
FindLinks zgłasza indeks pliku i wszelkie twarde łącza (alternatywne ścieżki plików na tym samym woluminie.md), które istnieją dla określonego pliku. Dane pliku pozostają przydzielone, o ile zawierają co najmniej jedną nazwę pliku, do którego się odwołują.

Uchwyt 
v4.11 (12 grudnia 2017 r.)
To poręczne narzędzie wiersza poleceń pokaże, jakie pliki są otwarte według poszczególnych procesów i wiele więcej.

Hex2dec 
v1.1 (4 lipca 2016 r.)
Konwertuj liczby szesnastkowe na dziesiętne i na odwrót.

Junction 
v1.07 (4 lipca 2016 r.)
Tworzenie dowiązań symbolicznych Win2K NTFS.

LDMDump 
v1.02 (1 listopada 2006 r.)
Zrzuć zawartość bazy danych na dysku, która opisuje partycjonowanie dysków dynamicznych systemu Windows 2000.

ListDLLs 
v3.2 (4 lipca 2016 r.)
Lista wszystkich bibliotek DLL, które są obecnie ładowane, w tym miejsca ich załadowania i numery wersji.

LiveKd 
v5.62 (16 maja 2017 r.)
Użyj debuggerów jądra firmy Microsoft, aby przetestować system działający na żywo.

LoadOrder 
v1.01 (4 lipca 2016 r.)
Sprawdź kolejność ładowania urządzeń w systemie WinNT / 2K.

LogonSessions 
v1.4 (4 lipca 2016 r.)
Lista aktywnych sesji logowania w systemie.

MoveFile 
v1.01 (24 stycznia 2013 r.)
Pozwala zaplanować przenoszenie i usuwanie poleceń do następnego restartu.

NotMyFault 
v4.01 (18 listopada 2016 r.)
Notmyfault to narzędzie, którego można użyć do zawieszania się, zawieszania i powodowania wycieków pamięci jądra w systemie Windows.

NTFSInfo 
v1.2 (4 lipca 2016 r.)
Użyj NTFSInfo, aby wyświetlić szczegółowe informacje o woluminach NTFS, w tym o rozmiarze i lokalizacji głównej tabeli plików (MFT) i strefy MFT, a także o rozmiarach plików metadanych NTFS .

PendMoves 
v1.2 (5 lutego 2013 r.)
Wylicz listę zmian nazwy pliku i usuń polecenia, które zostaną wykonane podczas następnego rozruchu.

PipeList 
v1.02 (4 lipca 2016 r.)
Wyświetla nazwane potoki w systemie, w tym liczbę maksimum instancji i aktywnych instancji dla każdego potoku.

PortMon 
v3.03 (12 stycznia 2012 r.)
Monitoruj aktywność portu szeregowego i równoległego za pomocą tego zaawansowanego narzędzia do monitorowania. Zna wszystkie standardowe IOCTL szeregowe i równoległe, a nawet pokazuje część danych, które są wysyłane i odbierane. Wersja 3.x zawiera zaawansowane nowe udoskonalenia interfejsu użytkownika i zaawansowane funkcje filtrowania.

ProcDump 
v9.0 (16 maja 2017 r.)
Narzędzie wiersza polecenia służy do przechwytywania zrzutów procesów, które w przeciwnym razie są trudne do wyizolowania i odtworzenia szczytów procesora. Służy także jako narzędzie do generowania ogólnego zrzutu procesu, a także może monitorować i generować zrzuty procesu, gdy proces ma zawieszone okno lub nieobsługiwany wyjątek.

Process Explorer 
v16.21 (16 maja 2017 r.)
Dowiedz się, jakie pliki, klucze rejestru i inne procesy obiektów zostały otwarte, które biblioteki DLL zostały załadowane i nie tylko. To wyjątkowo potężne narzędzie pokaże ci, kto jest właścicielem każdego procesu.

Process Monitor 
v3.40 (11 września 2017 r.)
Monitoruje system plików, rejestr, proces, wątek i aktywność DLL w czasie rzeczywistym.

PsExec 
v2.2 (29 czerwca 2016 r.)
Wykonywanie procesów na systemach zdalnych.

PsFile 
v1.03 (29 czerwca 2016)
Zobacz, które pliki są otwierane zdalnie.

PsGetSid 
v1.45 (29 czerwca 2016 r.)
Wyświetla identyfikator SID komputera lub użytkownika.

PsInfo 
v1.78 (29 czerwca 2016 r.)
Uzyskaj informacje o systemie.

PsKill 
v1.16 (29 czerwca 2016 r.)
Zakończ procesy lokalne lub zdalne.

PsPing 
v2.01 (29 stycznia 2014)
Zmierz wydajność sieci.

PsList 
v1.4 (29 czerwca 2016 r.)
Wyświetla informacje o procesach i wątkach.

PsLoggedOn 
v1.35 (29 czerwca 2016 r.)
Pokaż użytkowników zalogowanych w systemie.

PsLogList 
v2.8 (29 czerwca 2016 r.) Zrzuty rekordów
zdarzeń zdarzeń.

PsPasswd 
v1.24 (29 czerwca 2016 r.)
Zmienia hasła do kont.

PsService 
v.25 (29 czerwca 2016 r.)
Wyświetl i kontroluj usługi.

PsShutdown 
v2.52 (4 grudnia 2006)
Zamyka i opcjonalnie restartuje komputer.

PsSuspend 
v1.07 (29 czerwca 2016 r.)
Zawieszanie i wznawianie procesów.

PsTools 
v2.45 (4 lipca 2016 r.)
Pakiet PsTools zawiera narzędzia wiersza polecenia umożliwiające wyświetlanie procesów działających na komputerach lokalnych lub zdalnych, zdalne uruchamianie procesów, ponowne uruchamianie komputerów, wyrzucanie dzienników zdarzeń i wiele innych.

RAMMap 
v1.5 (2 lutego 2016 r.)
Zaawansowane narzędzie do analizy wykorzystania pamięci fizycznej, które przedstawia różne informacje o użytkowaniu na różnych kartach.

RegDelNull 
v1.11 (4 lipca 2016 r.)
Skanuj i usuwaj klucze rejestru zawierające osadzone znaki null, które w przeciwnym razie są niemożliwe do usunięcia za pomocą standardowych narzędzi do edycji rejestru.

Użycie rejestru (RU.md) 
v1.2 (4 lipca 2016 r.)
Wyświetl użycie przestrzeni rejestru dla określonego klucza rejestru.

RegJump 
v1.1 (20 kwietnia 2015 r.)
Przejdź do ścieżki rejestru określonej w Regedit.

SDelete 
v2.0 (4 lipca 2016 r.)
Bezpiecznie nadpisz swoje poufne pliki i oczyść wolne miejsce z wcześniej usuniętych plików przy użyciu tego bezpiecznego programu kasującego zgodnego z DoD.

ShareEnum 
v1.6 (1 listopada 2006 r.)
Skanuj udziały plików w sieci i przeglądaj ich ustawienia zabezpieczeń, aby zamknąć luki w zabezpieczeniach.

ShellRunas 
v1.01 (28 lutego 2008 r.)
Uruchom programy jako inny użytkownik za pomocą wygodnego wpisu w menu kontekstowym powłoki.

Sigcheck 
v2.60 (19 listopada 2017 r.)
Zrzuć informacje o wersji pliku i sprawdź, czy obrazy w twoim systemie są podpisane cyfrowo.

Strumienie 
v1.6 (4 lipca 2016 r.) Wyświetlenie
alternatywnych strumieni NTFS.

Strings 
v2.52 (20 czerwca 2013 r.)
Wyszukuje ciągi ANSI i UNICODE w obrazach binarnych.

Synchronizacja 
v2.2 (4 lipca 2016 r.)
Opróżnianie danych z pamięci podręcznej na dysk.

Sysmon 
7.01 (5 stycznia 2018)
Monitoruje i raportuje kluczową aktywność systemu poprzez dziennik zdarzeń systemu Windows.

TCPView 
v3.05 (25 lipca 2011 r.)
Aktywna przeglądarka wiersza poleceń.

VMMap 
v3.21 (20 lipca 2015 r.)
VMMap to narzędzie do analizy pamięci wirtualnych i fizycznych procesów.

VolumeId 
v2.1 (4 lipca 2016 r.)
Ustaw identyfikator woluminu dla dysków FAT lub NTFS.

Whois 
v1.20 (19 listopada 2017 r.)
Zobacz, kto jest właścicielem adresu internetowego.

WinObj 
v2.22 (14 lutego 2011 r.)
Największa przeglądarka przestrzeni nazw programu Object Manager znajduje się tutaj.

ZoomIt 
v4.5 (20 czerwca 2013 r.)
Narzędzie do prezentacji służące do powiększania i rysowania na ekranie.

 

 

 

szybka zmiana IP z cmd

zapisz plik jako np: net.bat

zakładając ,ze twoje nazwy połączeń w windows to  dla karty wifi nazwa WIFI

——————————————————-

@echo off
:q
echo Wybierz:
echo.
echo [1] Wpisz IP
echo.
echo [2] 192.168.0.2
echo.
echo [3] 10.10.0.1
echo.
echo [4] DHCP
echo.
:wybor
SET /PC=[1,2,3,4]?
for %%? in (1) do if /I “%C%”==”%%?” goto A
for %%? in (2) do if /I “%C%”==”%%?” goto B
for %%? in (3) do if /I “%C%”==”%%?” goto C
for %%? in (4) do if /I “%C%”==”%%?” goto D
goto wybor
:A
@echo off
echo “Wprowadz IP ”
echo “IP Adres Hosta:”
set /p IP_Addr=

echo “Brama:”
set /p D_Gate=

echo “Maska:”
set /p Sub_Mask=

echo “Statyczne IP Informacje ”
netsh interface ip set address “wifi” static %IP_Addr% %Sub_Mask% %D_Gate% 1
netsh int ip show config
#pause
goto q

:B
echo “ustawienia dla 192.168.0.2”
netsh interface ip set address “wifi” static 192.168.0.2 255.255.255.0 192.168.0.1 1
netsh int ip show config
#pause
goto q

:C
echo “ustawienia dla 10.10.0.2”
netsh interface ip set address “wifi” static 10.10.0.2 255.255.255.0 10.10.0.1 1
netsh int ip show config
#pause
goto q

😀
@ECHO OFF
ECHO Ustawienia DHCP
netsh int ip set address name = “wifi” source = dhcp

ipconfig /renew

ECHO ustawwienia dla %computername%:
netsh int ip show config

#pause
goto q
:end

 

—————————————————-

VBA Excel Pobieranie danych z różnych plików

autor: http://www.hackwars.pl/vba-excel-pobieranie-danych-roznych-plikow/

ThisWorkbook.Path – Właściwość Path skoroszytu Excela określa pełną ścieżkę katalogu, w którym znajduje się dany plik – dzięki czemu możemy sobie odpuścić ścieżkę F:\Problem_solving, i dzięki czemu gdzie byśmy nie przenieśli katalogu głównego (Problem_solving) makro nadal będzie działać.
Workbooks.Open(Filename:=plik) – metoda odpowiedzialna za otwarcie konkretnego pliku
wb.Saved = True – zapisywanie otwartych plików – dzięki czemu przed zamknięciem nie będzie excel wyświetlał powiadomień z zapytaniem czy zapisać.
wb.Close – metoda Close – zamyka plik

 

KOD DLA POTOMNOŚCI 

Sub problem_solving()
Application.ShowWindowsInTaskbar = False ‘ wyłaczamy aktualizacje taskbara
Application.ScreenUpdating = False ‘ wylaczamy aktualizacje tego co sie dzieje na ekranie podczas pracy makra
Dim kom1 As Range ‘ zestawienie
Dim kom2 As Range ‘ filestocheck
Dim newkom1 As Range ‘ arkusz1 – dla plików z których pobieramy dane

For Each kom1 In Sheets(“zestawienie”).Range(“a4:a15”) ‘ zakres w arkuszu zestawienie w ktorym znajduja sie nazwy dzialow

‘tworzymy i zerujemy sobie zmienne dla kazdego miesiaca
styczen = 0
luty = 0
marzec = 0
kwiecien = 0
maj = 0
czerwiec = 0
lipiec = 0
sierpien = 0
wrzesien = 0
pazdziernik = 0
listopad = 0
grudzien = 0
starsze = 0
rest = 0

For Each kom2 In Sheets(“FilesToCheck”).Range(“A4:a15”) ‘ zakres w arkuszu FilesToCheck w ktorym znajduja się nazwy dzialow
brak_pliku = False
If (kom1.Value = kom2.Value) Then ‘jesli dzial z zestawienia bedzie sie rownal dzialowi z filestochec to wykonaj to:
lokalizacja = kom2.Offset(0, 1).Value
nazwa_pliku = kom2.Offset(0, 2).Value
kol = kom2.Offset(0, 3).Value ‘ kolumna która należy przeszukiwac w plikach do sprawdzenia
wier = kom2.Offset(0, 4).Value ‘ wiersz od ktorego należy rozpocząć przeszukiwania w plikach do sprawdzenia
plik = ThisWorkbook.Path & “\” & lokalizacja & “\” & nazwa_pliku ‘ sciezka do konkretnego pliku

If Dir(plik) <> “” Then ‘ sprawdzamy czy plik jest pusty / jesli nie jest to wchodzimy do środka
Set wb = Workbooks.Open(Filename:=plik) ‘ ustawiamy zmienna wb na dany skoroszyt

wb.Worksheets(“Arkusz1”).Range(kol & wier).End(xlDown).Select ‘ szukamy ostatniego wiersza do przeszukiwania
ostatni_wier = ActiveCell.Row + 1 ‘ ustawiamy ostatni wolny wiersz

For Each newkom1 In wb.Worksheets(“Arkusz1”).Range(kol & wier & “:” & kol & ostatni_wier) ‘ sprawdzamy zakres danych w plikach z których chcemy zebrać dane

If (newkom1.Value = “S”) Then
rok = Year(newkom1.Offset(0, -2).Value)
miesiac = Month(newkom1.Offset(0, -2).Value)

If (rok < Year(Now)) Then

starsze = starsze + 1

Else ‘(rok < Year(Now))

Select Case miesiac ‘ instrukcja warunkowa case dzięki której mozemy podliczyć otwarte projekty w zależności od miesiąca
Case 1: styczen = styczen + 1
Case 2: luty = luty + 1
Case 3: marzec = marzec + 1
Case 4: kwiecien = kwiecien + 1
Case 5: maj = maj + 1
Case 6: czerwiec = czerwiec + 1
Case 7: lipiec = lipiec + 1
Case 8: sierpien = sierpien + 1
Case 9: wrzesien = wrzesien + 1
Case 10: pazdziernik = pazdziernik + 1
Case 11: listopad = listopad + 1
Case 12: grudzien = grudzien + 1
Case Else: rest = rest + 1
End Select

End If ‘ else (rok < Year(Now))

End If ‘(newkom1.Value = “S”)

Next ‘ end newkom1

wb.Saved = True ‘ zapisujemy plik
wb.Close ‘ zamykamy

Else
brak_pliku = True
Exit For

End If ‘ Dir(plik) <> “”

End If ‘(kom1.Value = kom2.Value)

Next
‘ zapisujemy dane w arkuszu zestawienie w odpowiednich komórkach (offset – przypisuje do odpowiedniego miesiaca – jest to przesunięcie względem komórki która przeszukujemy)
kom1.Offset(0, 1).Value = styczen
kom1.Offset(0, 2).Value = luty
kom1.Offset(0, 3).Value = marzec
kom1.Offset(0, 4).Value = kwiecien
kom1.Offset(0, 5).Value = maj
kom1.Offset(0, 6).Value = czerwiec
kom1.Offset(0, 7).Value = lipiec
kom1.Offset(0, 8).Value = sierpien
kom1.Offset(0, 9).Value = wrzesien
kom1.Offset(0, 10).Value = pazdziernik
kom1.Offset(0, 11).Value = listopad
kom1.Offset(0, 12).Value = grudzien
kom1.Offset(0, 13).Value = starsze
kom1.Offset(0, 15).Value = rest

kom1.Offset(0, 14).Value = brak_pliku
Next

Application.ScreenUpdating = True
Application.ShowWindowsInTaskbar = ShwWndsTask

End Sub

VBA Opisy post poleceń

autor http://www.hackwars.pl/vba-excel-automatyczne-tworzenie-arkuszy-o-okreslonej-nazwie/

 

Worksheets.Count – zwraca liczbę arkuszy w skoroszycie
Sheets.Add(After:=Sheets(Worksheets.Count)) – dodaje nowy arkusz po bieżącym
WS.Name = MonthName(i, True) – zmienia nazwę ustawionego skoroszytu na skrót nazwy kolejnego miesiąca (gdybyśmy chcieli użyć nazwy całego miesiąca zmieniamy wartość True na False)

 

Opis

tym wpisie przedstawiam jak automatycznie utworzyć 12 arkuszy, których nazwa jest skrótem każdego miesiąca.

Na początku utwórzmy nowy plik Excela z obsługą makr.
Jeśli w pliku znajduje się więcej niż jeden arkusz należy usunąć nadwyżkę:)

 

Public Sub DodajArkusze()
‘deklarowanie zmiennych
Dim i As Integer
Dim WS As Worksheet

i = 1

‘rozpoczęcie pętli
For i = 1 To 12

If i > Worksheets.Count Then
‘jeśli i jest większa od liczby arkuszy w skoroszycie (pliku) to
‘ustawia zmienną WS na nowo dodany arkusz
Set WS = Sheets.Add(After:=Sheets(Worksheets.Count))

Else
‘ustawia zmienna WS na pierwszy arkusz z pętli
‘tu pętla zagląda tylko za pierwszym razem
Set WS = Sheets(Worksheets.Count)

End If
‘zmienia nazwę aktualnie ustawionego arkusza na skrót nazwy miesiąca
WS.Name = MonthName(i, True)

‘zwiększa wartość zmiennej i o 1
Next i
End Sub

Przenoszenie domyślnych katalogów w SQL Server (!!!nie testowane !!!)

Originale TUTAJ Moze  się kiedyś przyda!!!

Instalacja SQL Server do domyślnych katalogach mogą być trudne do maintan przede wszystkim dlatego, Microsoft zmienia domyślną ścieżkę do katalogu danych w każdej wersji głównej. Na przykład domyślne ścieżki do plików bazy danych dla instancji domyślnej w SQL 2005-2008 R2 są:

SQL 2005 -% Program Files% \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ Data
SQL 2008 -% Program Files% \ Microsoft SQL Server \ MSSQL10.MSSQLSERVER \ MSSQL \ Data
SQL 2008 R2 -% Program Files% \ DATA Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \

Wykonywanie przywracania bazy danych z jednego serwera na inny z różnymi wersjami może dodać złożoności z poleceniem restore ponieważ ścieżka docelowa nie jest spójna. Również po aktualizacji w miejscu SQL Server pliki bazy danych nie zostały przeniesione z poprzedniej domyślnej ścieżce do nowego więc serwer może mieć MDF i LDF pliki w katalogu z łudząco nazwie ścieżki.

Korzystanie z katalogu Standardowy
Mam standaryzowane moje instalacje użyć tej samej ścieżki dla wszystkich lokalizacjach MDF i LDF plików. Upraszcza to odbudowała skryptów i zmniejsza złożoność podczas migracji, ponieważ wszystkie pliki danych na wszystkich serwerach są w tej samej ścieżce. I zawsze moje pliki dziennika na osobnym dysku z plików danych są więc w tych samych ścieżek na różnych dyskach, na przykład:

Logs – y:\mssql\%instanceName%\data
Data – z:\mssql\%instanceName%\data

 

Po zainstalowaniu i wszystkich plikach mdf i ldf znajdują się w nowych, ulepszonych lokalizacjach standardowych, znalazłem trzy dodatkowe katalogi, które chciałem ujednolicić i przejść do domyślnej ścieżki:

database engine default backup directory
%SQL Install Directory%\MSSQL10_50.MSSQLSERVER\MSSQL\BACKUP
sql agent working directory
%SQL Install Directory%\MSSQL10_50.MSSQLSERVER\MSSQL\JOBS
sql agent log directory
%SQL Install Directory%\MSSQL10_50.MSSQLSERVER\MSSQL\LOG

Konfiguracja nie jest dostępna za pośrednictwem interfejsu GUI SSMS lub podczas instalacji. Jedynym sposobem ich zmiany są bezpośrednio w rejestrze lub za pomocą skryptu t-sql, który zmienia rejestr.
Oto skrypt, który zmieni je na dowolną ścieżkę wybranej ścieżki i ma świadomość, że poprawny klucz rejestru jest aktualizowany dla dowolnej instancji. Uwaga – ten skrypt używa procedury rozszerzonej xp_instance _regwrite,

w przyszłości może nie działać .

 

USE [msdb]
GO
 
-- change the @instancename to whatever named instance this is for, the rest will sort itself out ----------------------
DECLARE @instancename nvarchar(255) = N'mssqlserver' -- use 'mssqlserver' for the default instance
 
DECLARE @mssqlpath nvarchar(255) = N'z:\mssql\' + @instancename
DECLARE @dbengine_defaultbackup_path nvarchar(255) = @mssqlpath + N'\backup'
DECLARE @sqlagent_errorlogfile nvarchar(255) = @mssqlpath + N'\log\SQLAGENT.OUT'
DECLARE @sqlagent_workingdirectory_path nvarchar(255) = @mssqlpath + N'\jobs'
 
--SELECT @dbengine_defaultbackup_path, @sqlagent_workingdirectory_path, @sqlagent_errorlogfile
 
-- update the database engine's default backup directory path ---------------------------------------------------------
EXECUTE [master].dbo.xp_instance_regwrite
 N'HKEY_LOCAL_MACHINE'
 , N'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer'
 , N'BackupDirectory'
 , N'REG_SZ'
 , @dbengine_defaultbackup_path
 
-- update the SQL Agent working directory -----------------------------------------------------------------------------
EXECUTE [master].dbo.xp_instance_regwrite
 N'HKEY_LOCAL_MACHINE'
 , N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent'
 , N'WorkingDirectory'
 , N'REG_SZ'
 , @sqlagent_workingdirectory_path
 
-- update the SQL Agent log file location -----------------------------------------------------------------------------
EXECUTE msdb.dbo.sp_set_sqlagent_properties @errorlog_file = @sqlagent_errorlogfile
 
-- update the setup's SQL Data Root path ------------------------------------------------------------------------------
EXECUTE [master].dbo.xp_instance_regwrite 
 N'HKEY_LOCAL_MACHINE'
 , N'SOFTWARE\Microsoft\MSSQLServer\Setup'
 , N'SQLDataRoot'
 , N'REG_SZ'
 , @mssqlpath

Zmodyfikuj skrypt, aby używać dowolnej ścieżki domyślnej. Usługi SQL Server i SQL Agent będą musiały zostać ponownie uruchomione, aby rozpocząć korzystanie z nowych lokalizacji plików. Gdy nowe lokalizacje są w użyciu, możesz usunąć stare katalogi.

Aktualizacja

Po próbie uaktualnienia jednego z moich serwerów do programu SQL Server 2012 stwierdziłem, że instalator miałby błąd podczas instalowania silnika bazy danych. Bałagan był:

“The Database Engine system data directory in the registry is not valid.”

Znalazłem klucz HKLM\software\microsoft\microsoft sql server\%instance_name%\setup\SQLDataRoot  .Odszukuje  ścieżkę dostępu do baz danych systemu. Ten klucz został utworzony podczas instalacji 2008 R2 i pliki zostały następnie przeniesione, więc to, co zostało utworzone w czasie instalacji, nie jest poprawne.

Jeśli zmodyfikujesz ten klucz na ścieżce skonfigurowanej w pliku @mssqlpath ze skryptu powyżej instalatora 2012, działa prawidłowo. Zmieniłem również skrypt, ostatnia sekcja wprowadza odpowiednią zmianę w celu uniknięcia tego wyjątku w przyszłości.

PDF oryginału

 

WordPress Themes