A fost a face un pic de sus ordonat și de evaluare a performanțelor recent pe un număr de servere mele Exchange în muncă, și în timp ce face acest lucru am observat că am (peste ani) a făcut un număr de câteva modificări în registry Windows, în legătură cu serviciile de schimb.
În timp ce revizuirea acestor schimbări, îmi amintesc că au existat o serie de motive de ce i-am făcut - de exemplu de performanță, și probleme de transport pe care am întâlnit cu furnizorii.
Cu toate acestea, faptul că am găsit aceste schimbări din nou și având în vedere că motivele pentru care le face nu este punctul central al acestui articol, ai putea fi iertat pentru întreabă "de ce l-am ridicat?"
Ei bine, două lucruri mi-a venit în timp ce am fost revizuirea aceste setări:
- Dacă aș fi avut pentru a restaura de la spate și nu cu ajutorul "statului System" Aș pierdut tot de pe ei și le este foarte greu să dau seama ce schimbări să facă din nou într-o situație de restaurare
- Mergând prin intermediul Serviciilor de schimb în registru este greu întâmplă folosind Regedit
Deci, având în vedere cele de mai sus am inceput sa ma gandesc la o modalitate de a exporta toate Exchange Bursa de setările de registry centrate pe un server într-un fișier - care pot fi utilizate pentru restaurarea sau în scopuri de referință mai târziu.
Am trecut printr-o serie de metode, de exemplu, creând o cerere puțin în C # folosind clasa de registru, și VBScript - toate acestea, în final, am stabilit pe un amestec de PowerShell și Registrul aplicarea liniei de comandă (Regedit.exe).
Următoarele este scenariul pe care am venit cu:
$ Exch = Get-ChildItem-Path HKLM: \ SYSTEM \ CurrentControlSet \ Services | unde {$ _.Name-cum ar fi "* Schimb *"} $ RegSeed = $ Exch.Count $ SeedIndex = 0 $ DirectoryPath = "C: \ ExchRegDirectory"
if (! (Test-Path-cale $ DirectoryPath)) { Nou-Articol $ DirectoryPath de tip director
} Else { Scoateți-Articol $ DirectoryPath-recurse Nou-Articol $ DirectoryPath de tip director }
În timp ce ($ SeedIndex-NE $ RegSeed) { Exe $ = "Regedit.exe" $ Fname = "$ DirectoryPath \ ExchangeReg [$ SeedIndex]. Txt" & $ Exe / e $ fname $ Exch [$ SeedIndex]. Denumire $ SeedIndex + + } $ MergeApp = "cmd" $ MergerFile = "ExchangeServices.dat" $ ExchName = "ExchangeServices.txt"
& $ MergeApp / C "Copy $ DirectoryPath \ *. Txt $ DirectoryPath \ $ MergerFile" & $ MergeApp / C "Del $ DirectoryPath \ *. Txt" & $ MergeApp / C "Ren $ DirectoryPath \ $ $ MergerFile ExchName"
Scrie-gazdă "Script a completat" Puteți descărca script-ul de mai sus de la următorul link:
ExportExchangeRegistrySettings.ps1
În vederea utilizării script-ul de mai sus - se descarca la unul dintre serverele Exchange (se va lucra cu orice Exchange 2007 și 2010 Server, fie cu toate rolurile instalate sau separate roluri (vin să se gândească la ea, pentru că, dacă ați instalat PowerShell pe Exchange 2003 servere ar trebui să funcționeze, de asemenea) si executa-l de la o fereastră de comandă PowerShell (nu trebuie să utilizeze Exchange Management Shell pentru ca aceasta să funcționeze, deoarece nu utilizează nici un cmdlet-uri specifice de schimb).
De exemplu, dacă descărcați script-ul la C: \ unitatea pe care ar putea rula prin următoarea metodă:
[START-> Run]
Apoi, de tip "PowerShell"
Din PowerShell comandă de tip fereastră în următoarele comenzi:
Set-ExecutionPolicy "RemoteSigned" CD \ C: \ . \ ExportExchangeRegistrySettings.ps1 Următorul este un ecran de ieșire exemplu din script:
Director: Microsoft.PowerShell.Core \ FileSystem :: C: \ Modul LastWriteTime lungimea denumirii --------------------------- d ---- 13/09/2009 23:17 ExchRegDirectory c:. \ ExchRegDirectory \ ExchangeReg [0] txt c:. \ ExchRegDirectory \ ExchangeReg [10] txt c:. \ ExchRegDirectory \ ExchangeReg [11] txt c:. \ ExchRegDirectory \ ExchangeReg [12] txt c:. \ ExchRegDirectory \ ExchangeReg [13] txt c:. \ ExchRegDirectory \ ExchangeReg [14] txt c:. \ ExchRegDirectory \ ExchangeReg [15] txt c:. \ ExchRegDirectory \ ExchangeReg [16] txt 1 file (s) copiat. Script-a finalizat
La script-ul finalizarea, veți găsi că pe serverul Exchange este un nou director situat în C: \ ExchRegDirectory, acolo veți găsi un fișier numit "ExchangeServices.txt" - dacă ai deschide fișierul în Notepad ar trebui să vedeți conținut similar la următoarele: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ SERVICII \ MSExchange ActiveSync] @ = "Gestionate automat de schimb de"
[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ MSExchange ActiveSync \ Diagnostics] "1 Cereri" = dword: 00000000 "2 Configurare" = dword: 00000000
[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ SERVICII \ MSExchange ActiveSync \ HTTP Controale Antet] [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ MSExchange ActiveSync \ HTTP Controale antet \ 12.0] "X-Powered-By" = dword: 00000001 "X-ASPNET-Version" = dword: 00000001 "Connection" = dword: 00000001 "Vary" = dword: 00000001
[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ MSExchange ActiveSync \ HTTP Controale antet \ 12.1] "X-Powered-By" = dword: 00000001 "X-ASPNET-Version" = dword: 00000001 "Connection" = dword: 00000001 "Data" = dword: 00000001 "Server" = dword: 00000001 "Cache-Control" = dword: 00000001 "MS-Server-ActiveSync" = dword: 00000001 "Vary" = dword: 00000001
[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ MSExchange ActiveSync \ HTTP Controale antet \ 2.0] "X-Powered-By" = dword: 00000001 "X-ASPNET-Version" = dword: 00000001 "Vary" = dword: 00000001
Dimensiunea și conținutul acestui dosar va depinde de rolurile instalate pe serverul Exchange pe care le-ați executat script-ul împotriva, rezultatul final este un fișier care conține toate setările de registry care sunt relevante pentru Exchange de pe serverul pe care au ales să interogare.
Sper că acest lucru ajută cineva de-a lungul drum.


























comments… add one now } {0 comentarii ... adăuga unul acum }