Uruchamianie zdalnych sesji Powershell umożliwia zaawansowane zarządzanie serwerami Exchange On-Premises jak i Office 365 z poziomu konsoli tekstowej. Przedstawione poniżej procedury opisują jakie kroki należy poczynić aby zainstalować i uruchomić narzędzia niezbędne do zdalnego zarządzania serwerami z poziomu Powershell.
Wymagania
Nasz komputer musi spełniać następujące minimalne wymagania potrzebne do nawiązania połączenia:
- System operacyjny Windows 7 SP1 (lub nowszy)
lub - Windows 2008 R2 SP1 (lub nowszy)
W przypadku Windows 7 SP1 i Windows 2008 R2 SP1 należy pamiętać o doinstalowaniu poniższych komponentów (w nowszych systemach są już one domyślnie zainstalowane):
Nawiązanie połączenia z Exchange 2013 On-Premises
Aby połączyć się z Exchange 2013 On-Premises:
- Uruchom konsolę Powershell na swoim komputerze.
- Wpisz komendę:
$Credentials = Get-Credential
W oknie, które się pojawi wpisz login i hasło użytkownika posiadającego prawa administracyjne na serwerze.
- Wpisz komendę:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<Exchange 2013 CAS FQDN>/PowerShell/ -Authentication Kerberos -Credential $Credentials
Uwaga: Jako adres serwera Exchange (fragment <Exchange 2013 CAS FQDN> w powyższym kodzie) podajemy adres serwera posiadającego role CAS.
- Wpisz komendę:
Import-PSSession $Session
Po chwili nawiązane zostanie połączenie z serwerem Exchange. Zaimportowane zostaną też cmdlety służące do zarządzania Exchange. Po zakończeniu pracy należy zamknąć sesję poleceniem:
Remove-PSSession $Session
Nawiązanie połączenia z Exchange 2013 Online/Office 365
Procedura jest podobna jak w przypadku połączeń z Exchange On-Premises:
- Uruchom konsolę Powershell na swoim komputerze.
- Wpisz komendę:
$Credentials = Get-Credential
W oknie, które się pojawi wpisz login i hasło użytkownika posiadającego prawa administracyjne na serwerze.
- Wpisz komendę:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Credentials -Authentication Basic –AllowRedirection
W powyższym poleceniu adres serwera, z którym się łączymy jest ściśle określony i nie trzeba go zmieniać.
- Wpisz komendę:
Import-PSSession $Session
Po chwili nawiązane zostanie połączenie z serwerem Exchange. Zaimportowane zostaną też cmdlety służące do zarządzania Exchange. Po zakończeniu pracy należy zamknąć sesję poleceniem:
Remove-PSSession $Session
Typowe problemy związane z nawiązywaniem połączenia
Procedura nawiązywania połączenia jest stosunkowo prosta. Aby jednak mieć pewność, że połączenie zostanie nawiązane poprawnie należy pamiętać aby:
- Prawidłowo wpisywać login i hasło.
- Aktywować wykonywanie skryptów na komputerze, przy pomocy którego się łączymy z serwerem. Bieżące ustawienia możemy sprawdzić poleceniem Powershell:
Get-ExecutionPolicy
Komenda zwraca jeden z poniższych wyników:
- “Restricted” (wyłączona możliwość uruchamiania jakichkolwiek skryptów),
- “AllSigned” (można uruchamiać skrypty tylko jeśli są podpisane cyfrowo przez zaufany urząd certyfikacji),
- “RemoteSigned” (można uruchamiać wszystkie skrypty lokalne oraz te pobrane z Internetu, o ile są podpisane cyfrowo),
- “Unrestricted” (dozwolone nieograniczone uruchamianie skryptów).
Jeżeli wykonywanie skryptów jest ograniczone (“Restricted”) należy z poziomu konsoli Powershell wykonać poniższe polecenie (potwierdzamy wszystkie pytania, które się pojawią):
Set-ExecutionPolicy RemoteSigned
- Port TCP 80 był otwarty pomiędzy komputerem a zdalnym serwerem.
- Użytkownik posiadał odpowiednie prawa (Remote Shell). Można sprawdzić ich stan poleceniem PS wykonywanym na serwerze:
Get-User robert@mojadomena.com | select Name,RemotePowershellEnabled
Jeżeli sprawdzany powyższą komendą użytkownik nie ma odpowiednich praw, można je nadać poleceniem:
Set-User robert@mojadomena.com -RemotePowerShellEnabled $True
Uwaga: Prawa te są domyślnie aktywowane dla każdego nowoutworzonego użytkownika.
Konsola Powershell to potężne narzędzie. Fakt, iż można go używać również zdalnie, tak by na stacji roboczej dokonywać zmian bezpośrednio na serwerze tylko przemawia na jego korzyść, w szczególności iż jest w nie wyposażony każdy współczesny system Windows.