Techblog poświęcony technologiom chmurowym i lokalnym Microsoft oraz innym ciekawym tematom
25 stycznia 2014
Klienci Office 365 – zapomnijcie o Windows XP i Office 2007
24 stycznia 2014
Kemp Load Master dla Azure – nowa odsłona
Kiedy na konferencji preMTS prezentowałem publikację farmy serwerów Exchange działającej w Azure przez bezpłatny load balancer Kemp LoadMaster for Azure byłem zadowolony. Wszystko działało dobrze. Instrukcja wdrożenia jest prosta i przejrzysta, (są nawet filmiki video dla opornych). Jednakże czas, potrzebny do pobrania obrazu dysku vhd z LoadMasterem, a następnie załadowania go do Azura był bardzo długi.Jednakże, kiedy ostatnio chciałem zaktualizować firmware, dowiedziałem się, że dużo szybciej można przeprowadzić wdrożenie korzystając z biblioteki obrazów VMDepot, gdzie Bhagrav Shukla wrzucił obraz maszyny z aktualną wersją firmware. Ścieżka ta jak na razie nie jest opisana w dokumentacji Kempa, więc parę słów warto jej poświęcić.
Po zalogowaniu się do panelu administracyjnego swojej subskrypcji Azure w lewym pasku wybieramy pozycję “Virtual Machines”, a następnie w prawym oknie przechodzimy do zakładki “Images”. W tym momencie na środku okna, na dolnym pasku widzimy pozycję “Browse VM Depot” (jak na poniższym rysunku).
Po kliknięciu pojawia nam się przeglądarka wszystkich obrazów dysków, które zostały zaimportowane do VM Depotu.
Możemy kliknąć More, żeby przejść do VM Depotu i przeczytać dodatkowe informacje (kolejny rysunek), lub kliknąć strzałeczkę w prawym dolnym rogu, żeby przejść do okna zatwierdzenia wyboru.
Teraz tylko musimy wybrać region, gdzie mamy utworzone swoje konto składowania danych i zatwierdzić wybór klikając na “ptaszku” w prawym, dolnym rogu.
Kopiowanie obrazu trwa tylko 1 minutę (w odróżnieniu od kilkugodzinnego uploadu do chmury ze swojego komputera).
Teraz tylko wystarczy zarejestrować obraz maszyny. Na dolnym pasku pojawił się przycisk “Register”. Po kliknięciu możemy zmienić nazwę obrazu i url do VHD.
Ostatnim krokiem jest dodanie maszyny wirtualnej z zaimportowanego do Azure’a obrazu. Ale to robimy już standardowo, jak przy każdym innym obrazie.
09 stycznia 2014
Styczniowe poprawki dla serwerów i klientów Lynca
Wczoraj Microsoft opublikował aktualizacje dla większości produktów z linii Lynca, łącznie z klientami, dodatkowymi narzędziami i oprogramowaniem dla telefonów:
Produkt | Wersja | Artykuł KB z linkiem do pobrania |
Lync Server 2013 | 5.0.8308.577 | |
Lync Server 2013 Debugging Tools | 5.0.8308.577 | |
Lync Server 2013 Resource Kit Tools | 5.0.8308.577 | |
Lync 2010 (64bit client) | 4.0.7577.4419 | |
Lync 2010 (32bit client) | 4.0.7577.4419 | |
Lync Server 2010 | 4.0.7577.225 | |
Lync Phone Edition (for Aastra 6721ip and Aastra 6725ip) | 4.0.7577.4420 | |
Lync Phone Edition (for HP 4110 and HP 4120) | 4.0.7577.4420 | |
Lync Phone Edition (for Polycom CX500, Polycom CX600, and Polycom CX3000) | 4.0.7577.4420 | |
Lync Phone Edition (for Polycom CX700 and LG-Nortel IP Phone 8540) | 4.0.7577.4420 |
06 stycznia 2014
Sprawdzanie i włączanie komponentów Exchange raz jeszcze
Niedawno pisałem na tym blogu o sprawdzaniu komponentów serwera Exchange. Ponieważ standardowe cmdlety niezbyt wygodnie prezentują stan komponentów, zacząłem używać skryptu, który opublikował na swoim blogu Michael Van Horenbeeck. Jednak oryginalny skrypt tylko sprawdzał stan komponentów, więc postarałem się go trochę rozbudować. Wykorzystałem do tego funkcję get-choice, opracowaną dwa lata wcześniej przez Andy Schneidera. Oczywiście można to zrobić na wiele sposobów, ale uznałem, że wygodnie będzie dać możliwość wyboru, czy na pewno chcemy dany komponent ponownie aktywować. Jeżeli znajdę czas ja albo Michael to skrypt będzie rozbudowany.
Poniżej skrypt:
<#
.SYNOPSIS
Checks component state of local Exchange 2013 server and give choice to activate any inactive component
.DESCRIPTION
Checks component state of local Exchange 2013 server. You have choice to activate any inactive component
.NOTES
Prepared by Konrad Sagala
Sched Task Required : No
Exchange Version : 2013
Disclaimer : You running this script means you won't blame me if this breaks your stuff.
Code used in script : First version of this script prepared by Michael Van Horenbeeck, function new-choice by Andy Schneider
.LINK
http://michaelvh.wordpress.com/tag/compontent-state/
.LINK
http://poshcode.org/2660
.EXAMPLE
.\Query-componentstates.ps1
.INPUTS
None. You cannot pipe objects to this script. But you can add server name.
#>
function New-Choice {
<#
.SYNOPSIS
The New-Choice function is used to provide extended control to a script author who writing code
that will prompt a user for information.
.PARAMETER Choices
An Array of Choices, ie Yes, No and Maybe
.PARAMETER Caption
Caption to present to end user
.EXAMPLE
PS C:\> New-Choice -Choices 'Yes','No' -Caption "PowerShell makes choices easy"
.NOTES
Author: Andy Schneider
Date: 5/6/2011
#>
[CmdletBinding()]
param(
[Parameter(Position=0, Mandatory=$True, ValueFromPipeline=$True)]
$Choices,
[Parameter(Position=1)]
$Caption,
[Parameter(Position=2)]
$Message
)
process {
$resulthash += @{}
for ($i = 0; $i -lt $choices.count; $i++)
{
$ChoiceDescriptions += @(New-Object System.Management.Automation.Host.ChoiceDescription ("&" + $choices[$i]))
$resulthash.$i = $choices[$i]
}
$AllChoices = [System.Management.Automation.Host.ChoiceDescription[]]($ChoiceDescriptions)
$result = $Host.UI.PromptForChoice($Caption,$Message, $AllChoices, 1)
$resulthash.$result -replace "&", ""
}
}
#
# main part of the script
#
$localserver = $env:computerName
$components = Get-ChildItem HKLM:\SOFTWARE\Microsoft\ExchangeServer\v15\ServerComponentStates\ -Recurse | select PSPath
foreach($component in $components){
$componentstates = (Get-ItemProperty $component.PSPath | Select * -ExcludeProperty PS* ) | Get-Member -MemberType NoteProperty
$i=0
do {
$componentstate = ($componentstates[$i].Definition).split("=")
$statebreakdown = $componentstate[1].Split(":")
#$componentActualState = $statebreakdown[1]
switch($statebreakdown[1]){
1 {$componentActualState = "Active"}
0 {$componentActualState = "Inactive"}
}
$componentActualTime = [timezone]::CurrentTimeZone.ToLocalTime([datetime]::FromBinary($statebreakdown[2]))
$obj = New-Object PSObject
$obj | Add-Member -MemberType NoteProperty -Name Component -Value $($component.PSPath.Split("\"))[7]
$obj | Add-Member -MemberType NoteProperty -Name Requester -Value $componentstates[$i].Name
$obj | Add-Member -MemberType NoteProperty -Name State -Value $componentActualState
$obj | Add-Member -MemberType NoteProperty -Name TimeStamp -Value $componentActualTime
$obj
$i++
if ($componentActualState -eq 'Inactive')
{
$answer = New-Choice -Choices 'Yes','No' -Message "Do you want to activate component?"
if ($answer -eq 'Yes')
{
Set-ServerComponentState -Identity $localserver -Component $obj.Component -Requester $obj.Requester -State Active
}
}
}
while ($i -lt $componentstates.count)
}
01 stycznia 2014
Posumowanie roku 2013
Nowy Rok się zaczął, więc czas na podsumowanie roku minionego. O życiu osobistym nie będę pisał, bo nie taki jest cel tego bloga. Skupmy się na technologiach Microsoft.
Dla mnie na pewno rok przebiegł pod znakiem Exchange 2013 – dopiero od drugiego kwartału możliwe stało się aktualizowanie Exchange do najnowszej wersji produktu – całkiem sporo takich migracji przeprowadziłem, a nowy rok przyniesie ich pewnie jeszcze więcej, zwłaszcza, że niedługo ma być dostępny Service Pack 1 dla Exchange 2013. Różne zagadnienia z obszaru zarządzania, planowania i wdrażania Exchange 2013 były poruszane na spotkaniach PEPUG, oraz na konferencjach, które udało mi się przy pomocy kolegów przeprowadzić – Office 2013 Community Launch i PreMTS 2013.
Koljenym obszarem, powiązanym z Exchange były różne rodzaje Load Balancerów i metody publikacji Exchange w internecie – po wycofaniu ze sprzedaży TMG, stała się to kwestią bardzo ważną – najwięcej czasu poświęciłem rozwiązaniom Kemp Technologies, ale sprawdzałem i testowałem również rozwiązania Barracudy, F5 oraz nowe pomysły Microsoftu – Aplication Request Routing (ARR) i Web Application Proxy (WAP). Mówiąc o WAP, które są komponentem nowej wersji serwera Windows, przechodzimy do kolejnego wydarzenia minionego roku, czyli premiery Windows Server 2012 R2, która może rewolucji nie zrobiła, ale poprawiła wiele obszarów, które w Windows 2012 nie były dopracowane – zwłaszcza w obszarze Hyper-V i zarzadzania file systemem (przynajmniej jak dla mnie). Równolegle wprowadzono nową wersję System Center - gdzie wersja 2012 R2 również w zasadzie wprowadziła przede wszystkim kosmetyczne poprawki i wsparcie dla nowych wersji systemów. Oczywiście razem z Windows Server 2012 R2 pojawiła się nowa wersja systemu klienckiego Windows 8.1, w którym Micorosft wrócił do przycisku Start, poprawiając również kilka innych funkcji systemu. Nowy rok na pewno przyniesie sporo zamieszania na rynku systemów klienckich – w kwietniu kończy się wsparcie dla nieśmiertelnego Windows XP, a klienci ciągle nie chcą się przekonać do kafelkowego interface’u. Czy ruszą masowe migracje do Windows 8.1, czy zachowawczo do Windows 7? A może nastąpi odwrót od platformy Windows? Czas pokaże.
Micorosft miał parę premier również nowości w obszarze sprzętu – Surface 2 i Xbox One (wkrótce po premierze Playstation 4), które również wprowadzały ciekawe nowości, ale rewolucyjne nie były.
Oczywiście również chmura się modernizowała – nowe funkcjonalności i aplikacje w Windows Azure oraz aktualizacja platformy i istniejących tenantów Office 365 do aktualnych wersji produktów. Skutkowało to intensyfikacją migracji, ale i problemami (brak zgodności ze starszymi wersjami produktów Office).
Jestem ciekawy, co przyniesie nowy rok. Nie mogę się doczekać.