Exchange 2010 SP2 RU3
Rollup dupa rollup …
http://www.microsoft.com/en-us/download/details.aspx?id=29899
Automating Exchange Best Practices Analyzer (ExBPA)
ExBPA poate avertiza asupra unor probleme pe care nu toata lumea le sesizeaza. De asta e si bine ca din cand in cand sa mai rulam un ExBPA si sa analizam output-ul. Asta nu inseamna ca trebuie sa ne incredem orbeste in output-ul de acolo si sa incercam sa “reparam” fiecare eroare sesizata. Informatiile de acolo trebuie analizate iar in unele cazuri erorile trebuiesc dovedite pentru ca si ExBPA-ul mai spune cateodata si prostii. Dar sa revenim; e totusi util pentru ca scaneaza environmentul mult mai rapid ca o fiinta umana si poate detecta anumite probleme.
Insa convenabil ar fi sa putem primi raportul generat via email in fiecare luni dimineata, nu? Se poate, cu ExBPACMD.EXE (e parte din Exchange 2010) iar sintaxa o aveti mai jos:
C:\Users\andrei>exbpacmd /?
Usage: C:\Program Files\Microsoft\Exchange Server\V14\bin\ExBPACmd.exe [<options
>]
Options:
-cfg <file> Read the settings and rules from configuration <file>.
The default is ExBPA.Config.xml in \program files\exbpa\<lang>.
-dat <file> Write the output data to <file>. The default is
output.<label>.<timestamp>.xml in the exbpa output directory.
-in <file> Load the data in <file> prior to the new run. This can be
used to collect data from additional scopes in the same file,
or to reanalyze previous data. If <file> is "$",
it will use the output.<label>.<ts>.xml with the most recent
timestamp.
-d <server> Access the directory using the global catalog server <server>.
If not given, it will bind to the nearest one.
-l <label> Specify a <label> in the output.
-u <context> [<domain>\]<user> (<password>|*) …
Provides separate credentials per context.
-r <option>[=<value>][,…]
Restrict the collection/analysis to include the specified
restriction. The default is "Health Check".
-th <#> Run a maximum of <#> threads at once (default 500).
-to <#> Timeout on data access after <#> seconds (default 300).
-c Collect data specified in the config file. If no other
operation steps are specified, this is enabled by default
-a Analyze the data using the rules from config XML file.
-e Strip off the values of any settings marked NotForExport.
-s Use the parameters stored in the registry by the GUI for
scheduled runs.
-? Display this information.
Example: ExBPACmd.exe -dat output.xml -u ADLOGON food\administrator P@ssw0rd EXL
OGON food\administrator P@ssw0rd -r "General,Level 3,Server=FOO-01|FOO-02" -c -a
Valid restrictions options:
Scope: Server,AdminGroup,Organization,Domain,ADC Server,_
Role: Mailbox,Gateway,Bridgehead,ClientAccess,UnifiedMessaging,Global,AdminTo
ols,LanguagePacks,UmLanguagePack
Task: Health,Perf,Permissions,UserPermissions,ConnectivityTask,BaselineTask,P
recheckInstall,PrecheckUninstall,PrecheckUpgrade,PrecheckDR,Postcheck
Level: 1,2,3,4,5
Category: General,Performance,Security,EndUserPermissions,Connectivity,Baseli
ne,CustomBaseline,Prereqs
Valid security contexts: ADLOGON,EXLOGON
This tool gathers configuration information from a system and analyzes it agains
t best practices. It then reports on best practice mismatches.
Problema e ca output-ul e generat in XML si e aproape imposibil de descifrat intr-un email. Dar pentru asta am gasit un parser facut in Powershell special pentru ExBPA. Il gasiti in link-ul de mai jos:
http://gallery.technet.microsoft.com/scriptcenter/680b3a66-2b7b-4baa-b178-0c1c1323be8d
Parser-ul poate filtra chiar si dupa tipul informatiilor din raport (gen Error, Warning). Tot ce mai trebuie sa faceti este sa folositi informatiile prezentate aici pentru a face un script care genereaza raportul, parseaza output-ul asa cum doriti si sa trimita un email cu informatiile obtinute.
Debugging shutdown issues on Windows 2003 with Winlogon tracing
Una din marile probleme cu Windows 2003 atunci cand faci administrare remote e ca nu stii niciodata daca atunci cand dai reboot sistemul tau reuseste sa se restarteze sau nu.
Windows 2008 e ceva mai avansat, dar nu pentru ca nu ar exista astfel de probleme ci pentru ca exista ceva procedee si tool-uri pentru a afla cauza problemei.
In schimb pe Windows 2003, tot ce stiam pana de curand era faza cu generearea unui crash dump in momentul in care sistemul “intepenea” in fereastra de shutdown.
Dar am aflat ca se mai poate face ceva ce poate ajuta in debugging. Si anume tracing pe Winlogon. Faza e ca nu merge activat in versiunea normala de Windows (free/retail build) ci numai in “checked/debug build”. Dar merge inlocuit si doar Winlogon.exe cu versiunea checked pe durata troubleshooting-ului. In caz ca nu aveti access la MSDN sa downloadati checked build, puteti downloada Service Pack 2 pentru Windows 2003 versiunea checked. Mai jos aveti link-ul pentru versiunea x86:
http://www.microsoft.com/en-us/download/confirmation.aspx?id=3685
Pasul urmator este sa setati urmatoarele variabile in registry:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DebugFlags (REG_SZ)
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\LogFile (REG_SZ)
Pentru a capta toate evenimentele va recomand sa setati DebugFlags cu urmatoarea valoare: Error, Warning, Trace, Init, Timeout, Sas, State, MPR, CoolSwitch, Profile, DebugLsa, DebugSpm, DebugMpr, DebugGo, Migrate, DebugServices, Setup, SC, Notify, Job
Si iata si cum arata log-ul:
14:52:06.936: 360.1956> Winlogon-Trace: Doing remote-initiated (W2K3\Administrator) Reboot=true, Force=true
14:52:06.951: 360.1956> Winlogon-Trace: Starting user thread for Logoff, flags = 3807
14:52:06.951: 360.2616> Winlogon-Trace: Doing immediate shutdown, LastGinaRet = b, Flags = 3804
14:52:06.951: 360.2616> Winlogon-Trace: Calling ExitWindowsEx(0x3804, 0)
14:52:07.842: 360.364> Winlogon-Trace-SAS: LOGONNOTIFY message 0
14:52:07.842: 360.364> Winlogon-Trace-SAS: WINLOGON : True
14:52:07.842: 360.364> Winlogon-Trace-SAS: SYSTEM : False
14:52:07.842: 360.364> Winlogon-Trace-SAS: SHUTDOWN : False
14:52:07.842: 360.364> Winlogon-Trace-SAS: REBOOT : False
14:52:07.842: 360.364> Winlogon-Trace-SAS: POWEROFF : False
14:52:07.842: 360.364> Winlogon-Trace-SAS: FORCE : True
14:52:07.842: 360.364> Winlogon-Trace-SAS: OLD_SYSTEM : False
14:52:07.842: 360.364> Winlogon-Trace-SAS: OLD_SHUTDOWN : True
14:52:07.842: 360.364> Winlogon-Trace-SAS: OLD_REBOOT : True
14:52:07.842: 360.364> Winlogon-Trace-SAS: OLD_POWEROFF : False
14:52:07.842: 360.364> Winlogon-Trace: Received SAS from winsrv, code 4 (User Logoff)
14:52:07.842: 360.364> Winlogon-Trace: In state LoggedOnUser, sending kill message to window
14:52:07.842: 360.364> Winlogon-Trace: Sending SAS code 4 (User Logoff) to window 50020 (Winlogon generic control dialog)
14:52:07.842: 360.364> Winlogon-Trace: ChangeStateForSAS: Went from 6 (LoggedOnUser) to 7 (LoggedOn_SAS)
14:52:07.842: 360.364> Winlogon-Trace: Source desktop was Default
14:52:07.842: 360.364> Winlogon-Trace: Switching desktop from Application to Winlogon
14:52:07.842: 360.364> Winlogon-Trace-State: SASRouter: In state LoggedOn_SAS
14:52:07.842: 360.364> Winlogon-Trace-Timeout: Disabling timeouts
14:52:07.842: 360.364> Winlogon-Trace: In Logoff()
14:52:07.842: 360.364> Winlogon-Trace: Switching desktop from Winlogon to Application
14:52:07.842: 360.364> Winlogon-Trace: Closing handle 3a8 to users desktop
14:52:07.857: 360.1468> Winlogon-Trace: StopUserGPOProcessing: Waiting for user group policy thread to terminate.
14:52:07.857: 360.1468> Winlogon-Trace: StopUserGPOProcessing: User group policy thread has terminated.
14:52:07.951: 360.364> Winlogon-Trace: Source desktop was Default
14:52:07.951: 360.364> Winlogon-Trace: Switching desktop from Application to Winlogon
14:52:07.967: 360.364> Winlogon-Trace: ProfileUserMapping Refs = 2
14:52:07.967: 360.364> Winlogon-Trace: ProfileUserMapping Refs = 1
14:52:07.967: 360.364> Winlogon-Error: [WUInstall] Failed to query WU value (2).
14:52:07.967: 360.364> Winlogon-Error: [WUInstall] Failed to clean WU value (2).
14:52:07.967: 360.364> Winlogon-Trace: Actually closing user mapping
14:52:07.967: 360.364> Winlogon-Trace: ProfileUserMapping Refs = 0
14:52:07.967: 360.3220> Winlogon-Trace: ExitWindowsEx called to shut down COM processes
14:52:07.998: 360.364> Winlogon-Trace: ProfileUserMapping Refs = 0
14:52:07.998: 360.364> Winlogon-Trace: Actually opening user mapping. User is logged on
14:52:07.998: 360.364> Winlogon-Trace: ProfileUserMapping Refs = 1
14:52:08.014: 360.364> Winlogon-Trace: Actually closing user mapping
14:52:08.014: 360.364> Winlogon-Trace: ProfileUserMapping Refs = 0
14:52:08.014: 360.364> Winlogon-Trace: In InternalWinStationNotifyLogoff
14:52:08.014: 360.2540> Winlogon-Error: [WUInstall] Skipping WU installs – Fail to open WU key (2).
14:52:08.154: 360.2540> Winlogon-Trace: [WUInstall] Skipping installs – not a shutdown.
14:52:08.154: 360.2540> Winlogon-Trace: [WUInstall] Skipping installs – not requested.
14:52:08.154: 360.2540> Winlogon-Trace: [WUInstall] Calling WUAutoUpdateAtShutdown(0)…
14:52:08.186: 360.2624> Winlogon-Trace: StopMachineGPOProcessing: Waiting for machine group policy thread to terminate.
14:52:08.201: 360.2624> Winlogon-Trace: StopMachineGPOProcessing: Machine group policy thread has terminated.
14:52:08.295: 2516.2280> Winlogon-Trace-SAS: LOGONNOTIFY message 9
Acum nu pot promite ca aceasta metoda o sa va rezolve problemele, insa este unul din putinele moduri in care poti face troubleshooting la asa ceva pe Windows 2003.
PS: mai sunt cateva variante cu windows debugger insa mi se par prea complicate pentru un sysadmin.
EMET v3
Despre EMET (Enhanced Mitigation Experience Toolkit) am mai scris aici.
Saptamana aceasta a aparut versiunea 3 care este enterprise friendly. Adica vine optiuni de control via GPO, deployment via SCCM, cateva profile predefinite, suport pentru wildcard in reguli si integrare cu Windows Event Log.
Mai multe puteti citi pe blogul Security Reseach & Defense:
http://blogs.technet.com/b/srd/archive/2012/05/15/introducing-emet-v3.aspx
PS: Cred ca adevarata valoare a lui EMET o sa iasa la iveala atunci cand Windows 2003 o sa iasa din suport. Iar EMET e acum un tool suportat oficial.
Alt plagiator?
Pe zona de Windows deja ne obisnuisem cu Tudy aka Tudor Damian marele MVP pe virtualizare. Dar acum vad ca se poarta modelul si in alte sfere. De fapt, daca profesorii sunt asa, de ce ne mai miram ca astfel de personaje ies de pe bancile facultatii.
Cazul Ioan Mang nu mi s-a parut interesant deoarece la prima impresie parea o razbunare politica. Dar la un moment dat am zis ca ar trebui sa verific si eu personal acele acuzatii si documente publicate. Well … se pare ca presa avea dreptate. Parca totusi imi pare rau, ca asa pe hartie noul ministru dadea bine.
Dar n-a fost sa fie, n-avem noi parte de un ministru specialist in criptografie.
Si ca sa nu mai aveti nici un dubiu cititi direct de pe pagina lui Eli Biham: http://www.cs.technion.ac.il/~biham/
S-a si gasit domnul Ioan Mang pe cine sa copieze.
http://en.wikipedia.org/wiki/Eli_Biham
http://en.wikipedia.org/wiki/Adi_Shamir
PS: Tudy, MVP ai ajuns, dar ministru nu cred ca o sa reusesti.
Instalarea unui server FTP pe Windows Server 2008 R2
- Sa presupunem ca avem un server standalone cu Windows Server 2008 R2, instalat si actualizat la zi, in workgroup.
- Cream un director in care vom tine datele de pe FTP.
- Cream 2 grupuri locale FTP-Read si FTP-Write.
- Cream utilizatori si ii adaugam la grupurile specifice. Eu am creat 2 utilizatori (FTP-User-R si FTP-User-W) si i-am adaugat la grupurile respective.
- Instalam rolul Web Server (IIS) doar cu serviciile: FTP Server si Windows Authentication in afara celor implicite.
- Deschidem consola de IIS, facem click dreapta pe Sites si selectam Add FTP Site.
- Introducem numele siteului si locatia fizica a directorului creat la pasul 2.
- Selectam Allow SSL sau No SSL, dupa dorinta fiecaruia.
- La Authentication selectam Basic si la Authorization selectam Specified roles or user groups si introducem numele grupului cu drepturi de read si write (FTP-Write). Bifam ambele casute la Permissions.
- Ar trebui sa avem doua site-uri acum.
- Sa mai configuram cate ceva la site-ul FTP. Selectam site-ul si in partea din mijloc deschidem FTP Authorization Rules. Adaugam o noua regula folosind Add Allow Rule din partea dreapta (Actions).
- Selectam Specified roles or user groups si introducem numele grupului cu drepturi de Read pentru cazurile in care vrem sa dam cuiva acces read pe serverul FTP (FTP-Read). La Permissions selectam doar Read.
- Acum, deschidem Windows Explorer si navigam catre ftp://localhost sau ftp://ip-ul_serverului. In prompt-ul pentru user si parola introducem datele utilizatorului cu drept de scriere (FTP-User-W).
- Cream un director nou ca sa vedem ca avem permisiuni de scriere.
- Ca sa testam si permisiunile pentru utilizatorul FTP-User-R, selectam File – Login As si introducem datele utilizatorului FTP-User-R.
- Daca incercam sa cream un director nou, vom primi eroarea de mai jos:
- Acum nu ne ramane decat sa “scoatem” FTP-ul in internet daca serverul se afla “undeva” dupa un router si are o adresa IP privata, cum e cazul meu. Cautati pe router ceva care sa semene cu Port Mapping. Eu pe routerul meu am facut setarile de mai jos:
- La remote host nu am scris nimic, ca sa ma pot conecta de oriunde. Portul de FTP l-am lasat default, 21. Internal host este adresa serverului (192.168.206.140 in cazul meu).
- Ca sa ma conectez de oriunde trebuie sa mai stiu IPul meu “extern”, il puteti afla accesand http://www.whatismyip.com.
- Acum, puteti sa va conectati de oriunde la ftp://ip-extern si veti avea acces la FTPul vostru.
Microsoft Security Essentials 4.0
Se pare ca Microsoft Security Essentials 4 a fost lansat de luna trecuta insa eu l-am ratat. Mai jos gasiti link-ul pentru download.
http://www.microsoft.com/en-us/download/details.aspx?id=5201
Altaro Hyper-V Backup
Se pare ca in momentul de fata Altaro a dat lovitura pe zona de backup Hyper-V in sectorul SMB. L-am testat si sincer mi se pare un produs cu un raport pret/performanta foarte bun si pe care l-as recomanda mai departe.
Altaro vine in 3 editii, una free cu ceva limitari (doar doua masini virtuale), standard (pana la 5 VMs) si unlimited. Se licentiaza per host, nu per VM sau CPU ceea ce este un mare avantaj.
De mentionat ca daca aveti masini virtuale stocate pe shared storage si folositi Live Migration (deci folositi Cluster Shared Volumes) atunci aveti nevoie de versiunea unlimited.
Interfata este extraordinar de prietenoasa si simplu de folosit:
Altaro suporta backup-uri incrementale, schedule-uri, file level restore si fire drill-uri.
Restore-ul se poate face si intr-o clona a masinii virtuale – un mod util pentru a boota copia din backup. Pentru testat backup si recuperat fisiere exista alte moduri descrise mai jos.
File level restore va restaura VHD-urile masinii virtuale si le va monta ca volume visibile in Explorer. De acolo se pot recupera fisierele individuale de pe masini virtuala. Ma asteptam sa fie in stare sa le copieze el direct un masina live, dar pana la urma e ok si asa.
Iar pentru testarea backup-urilor exista Fire Drill. Iar Fire Drill pot fi schedulate fara a mai fi nevoie de interventia administratorului care va primi doar notificarile pe email.
Si la final dar nu ultima dintre optiuni, backup-urile pot fi mirror-ate pe un alt drive.
Se pare ca incet incet apar produse ce mai ridica cate putin valoarea HyperV-ului. Iar Altaro este unul din ele.
Connection to WSUS from Powershell issue.
Incercand sa ma conectez la un WSUS din Powershell folosind codul de mai jos:
$wsusserver = ‘localhost’
#Load required assemblies
[void][reflection.assembly]::LoadWithPartialName(“Microsoft.UpdateServices.Administration”)
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer($wsusserver,$False)
Am dat de urmatoarea eroare:
Exception calling “GetUpdateServer” with “2” argument(s): “The request failed with HTTP status 404: Not Found.”
At C:\Documents and Settings\Administrator.VMUG\Desktop\wsus.ps1:4 char:78
+ $wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer <<<< ($wsusserver,$False)
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Problema era ca WSUS-ul meu e pe portul 8530 si asta trebuie specificat in script:
$wsusserver = ‘localhost’
[Int32]$portNumber = 8530
#Load required assemblies
[void][reflection.assembly]::LoadWithPartialName(“Microsoft.UpdateServices.Administration”)
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer($wsusserver,$False,$portNumber)
1.4Gbps Link
Da, asta e viteza link-ului raportat de Windows 2000 in Hyper-V.
Ma intreb de ce 1.4 si nu 1.5.
Probabil ca exista o explicatie, insa fiind Windows 2000 nu o sa ma obosesc cautand.