Kategorie

Dodawanie kont komputerów z listy do grupy AD

Jeśli mamy grupę komputerów i chcemy wszystkie dodać do wybranej grupy AD, możemy tego łatwo dokonać używając dostępnych narzędzi w Powershellu.
Nasz plik z listą komputerów mógłby wyglądać tak:

pre lang=”txt” escaped=”true”>pc1
pc2
pc3
pc4

Potrzebny skrypt:

1
2
Get-Content "C:\file.txt" | ForEach-Object {Get-QADComputer $_ |`
 Add-QADGroupMember -Credential $usercredential -Identity "our_ad_group" }

W powyższym skrypcie objaśnienia może wymagać jedynie zmienna $usercredential, w której zawarte są dane logowania użytkownika posiadającego uprawnienia do administracji grup w AD. Zmienną tą można ustawić przy pomocy:

1
$UserCredential = Get-Credential

Ja osobiście, zawarłem ją w profilu Powershell, dzięki czemu przy starcie jest ona już ustawiana.

BSOD Process1_initialization_failed Stop: 0x0000006B

Jeden z ostatnich problemów, instalacja kilku poprawek Microsoftu (KB2494016, KB2520235, KB2521907) potrzebnych mi do zainstalowania najnowszej wersji Snap Managera na serwerze Exchange 2010. Jak zwykle instalacja przebiegła bez problemów, jeszcze tylko restart i gotowe. O nie, nie tak szybko, pinguję serwer i pinguję a odpowiedzi brak, więc porachowałem się do konsoli a tu niespodzianka – Blue Screen.

PROCESS1_INITIALIZATION_FAILED
STOP: 0X0000006B
itd.

Szybkie wypróbowanie standardowych metod leczenia, F8 i Safe Mode, Last Known Good Configuration, wyłączenie sprawdzania sygnatur sterowników itd. Niestety nic nie pomogło. Idea przyszła z Internetu więc kolejna próba, która na szczęście okazała się udaną, więc poniżej kroki

  1. Po Bluescreenie przy kolejnym starcie jest opcja uruchomienia naprawczego systemu – wybieramy.
  2. Wybieramy odpowiedni język instalacji a następnie logujemy się na konto administratora lokalnego systemu.
  3. Pojawia się okienko z opcjami ratowania systemu i my wybieramy linię poleceń.
  4. Przechodzimy do katalogu C:\windows\system32\codeintegrity i usuwamy plik bootcat.cache. Ważna informacja, nie wystarczy zmienić nazwy pliku dodając np. inne rozszerzenie np. na bootcat.cache.old. Innym sposobem jest nadpisanie pliku innym z działającego systemu, o takich samych parametrach czy system operacyjny czy platforma.
  5. Już tylko restart i możemy się cieszyć działającym systemem.

Usuwanie nieistniejących kart sieciowych z systemów Windows 7/2008

Czasami, po usunięciu starej karty sieciowej w systemie windows pozostają nieaktualne informacje o jej istnieniu. Informacje te zaszyte w rejestrze przeszkadzają w konfiguracji nowej karty sieciowej. Pojawiają się problemy z wieloma domyślnymi bramami, niemożnością użycia nazwy nieobecnego już połączenia, czy też pojawieniem konfliktów IP, które tak naprawdę nie istnieją. Wydawałoby się, że usunięcie starej, fizycznie nie istniejącej już w systemie karty sieciowej nie powinno być trudne, a jednak. Karta taka nie jest widoczna w menedżerze urządzeń, nawet wówczas gdy włączymy pokazywanie ukrytych komponentów. By taką kartę usunąć należy użyć alternatywnego narzędzia devcon. Uruchamiane z linii poleceń posiada wszelkie możliwości menedżera urządzeń a nawet coś ponad to.

Continue reading Usuwanie nieistniejących kart sieciowych z systemów Windows 7/2008

Event ID 2937, błędna wartość HomeMTA

Po migracji do Exchange 2010 i usunięciu ostatniego serwera Exchange 2003 może się zdarzyć, że atrybut HomeMTA dla użytkowników będzie zawierał nieaktualne dane. Jednocześnie w dzienniku zdarzeń pojawia się ostrzeżenie z ID 2937 ze źródłem MSExchange ADAccess, w którym różne procesy informują o wystąpieniu błędu. Przykład poniżej

Process w3wp.exe () (PID=5884). Object [CN=User1,OU=!Users,DC=dc,DC=test,DC=com]. Property [HomeMTA]
is set to value [dc.test.com/Configuration/Deleted Objects/Microsoft MTA
DEL:e5d442f7-b37a-4b80-84e2-4212b78db7bf], it is pointing to the Deleted Objects container in Active Directory.
This property should be fixed as soon as possible.

By rozwiązać ten problem i zaktualizować wartość atrybutu HomeMTA wystarczy dla danego użytkownika wykonać polecenie w powershellu

Get-Mailbox [user] | Update-Recipient

Oczywiście jeśli problem dotyczy większej liczby obiektów, warto to zautomatyzować wykonując polecenie jak poniżej (Get-QADUser wchodzi w skład darmowych snap-inów dla AD firmy Quest)

Get-QADUser -IncludeAllProperties | where {$_.homemta -match "del"} | Get-mailbox | Update-Recipient

 

Resetowanie asystenta nieobecności w Exchange 2010

Co zrobić by auto-odpowiedź asystenta nieobecności była wysyłana nie raz a np. codziennie? Wystarczy zresetować asystenta, czyli po prostu wyłączyć go i włączyć ponownie. Można by zaproponować użytkownikowi by wykonywał to przy pomocy Outlooka codziennie, jednak istnieje prostszy i zautomatyzowany sposób. Poniższy skrypt Powershell wystarczy dodać do zaplanowanych zadań na serwerze Exchange i już mamy gotowy automatyczny reset.

foreach ($obj in (Get-Mailbox  | Get-MailboxAutoReplyConfiguration |`
where {($_.autoreplystate -eq "enabled")`
-or ($_.autoreplystate -eq "scheduled" -and $_.starttime -le ([DateTime]::Now) -and $_.endtime -ge ([DateTime]::Now))}))
{      if ($obj.autoreplystate -match "Enabled")`
           {Set-MailboxAutoReplyConfiguration $obj.identity -AutoReplyState "disabled"
           ;Set-MailboxAutoReplyConfiguration $obj.identity -AutoReplyState "enabled"}
       elseif ($obj.autoreplystate -match "Scheduled")`
           {Set-MailboxAutoReplyConfiguration $obj.identity -AutoReplyState "disabled";
           Set-MailboxAutoReplyConfiguration $obj.identity -AutoReplyState "scheduled";}
}

 

Cisco CLI i uwierzytelnianie Radius (część 1)

Witam, tym razem krótki opis dotyczący konfiguracji urządzeń Cisco i uwierzytelniania przy pomocy serwera Radius. Do przykładu posłuży Switch Cisco C3560E z IOS-em (C3560E-UNIVERSALK9-M), Version 12.2(50)SE2. Ze strony serwera Radius użyjemy NPS wchodzącego w skład Windows 2008. W tym artykule umieszczę informacje na temat konfiguracji uwierzytelniania z Radius w drugiej części postaram się przedstawić sposób uwierzytelniania z podziałem na role administracyjne, przykładowo dając pewnej grupie administratorów tylko dostęp do poleceń „show” na urządzeniu Cisco.

Continue reading Cisco CLI i uwierzytelnianie Radius (część 1)

Wysyłanie E-maili jako grupa dystrybucyjna

Ustawienie uprawnień do wysyłania jako inny użytkownik nie jest niczym trudnym. Można tego z łatwością dokonać nawet używając graficznych narzędzi Exchange jak choćby Exchange Management Console. To proste zadanie staje się jednak odrobinę trudniejsze jeśli chcemy dać użytkownikowi prawo wysyłania jako Grupa Dystrybucyjna. By tego dokonać, musimy już użyć Powershella. Składnia nie jest trudna:

Set-DistributionGroup test_dg -GrantSendOnBehalfTo "new_user"

Gdy do istniejącej grupy użytkowników uprawnionych do wysyłania jako Grupa Dystrybucyjna chcemy dodać jeszcze jednego bez nadpisywania obecnych uprawnień, należy posłużyć się skryptem jak poniżej, gdzie do zmiennej $dl.grantsendonbehalfto najpierw zostają wczytane wartości obecne a następnie jest dodany nowy użytkownik i już z nową zmienną zawierającą tegoż użytkownika ustawiamy uprawnienia „Send As” dla Grupy Dystrybucyjnej

$dl = Get-DistributionGroup (Read-Host "DL Name")
$dl.grantsendonbehalfto += read-host "new email"
Set-DistributionGroup $dl -GrantSendOnBehalfTo $dl.grantsendonbehalfto

 

 

Szukasz skrzynek nieużywanych przez dłuższy czas?

Jeśli spotkałeś się z problemem znalezienia skrzynek do których nie logował się nikt przez dłuższy czas, niezależnie czy był to właściciel skrzynki czy może osoba delegowana to w Exchange 2010 możesz dość szybko wykonać zadanie używając prostego skryptu powershell.

Get-Mailbox -IgnoreDefaultScope | Get-MailboxStatistics |` 
where {$_.lastlogontime -le ((Get-Date).Adddays(-180))} |` 
ft displayname,lastlogontime,totalitemsize -AutoSize

W przykładzie powyżej skrypt wyszukuje wszystkie skrzynki, do których nikt się nie zalogował przez okres co najmniej 180 dni.

Eksport skrzynki pocztowej do pliku .pst Exchange 2010

Poniżej przedstawiam ciekawy skrypt do eksportu skrzynki na Exchange 2010 do pliku .pst. Skrypt po zakończonym eksporcie wysyła maila do wybranej osoby.

#Uruchomienie eksportu dla wybranej skrzynki
New-MailboxExportRequest -Mailbox "User1" -BadItemLimit '20' -FilePath "\\mailboxserver\pstexport$\"
 
#Stworzenie pętli sprawdzającej czy eksport się wykonał w 100%
$exstat = Get-MailboxExportRequest | Get-MailboxExportRequestStatistics | where {$_.sourceAlias -eq 'User1'}
 
do {Start-Sleep -Seconds 5; $exstat = Get-MailboxExportRequest | Get-MailboxExportRequestStatistics | `
where {$_.sourceAlias -eq 'User1'}}
until ($exstat.percentcomplete -eq '100')
 
#Po wykonaniu eksportu zostaje wysłany E-mail do administratora z informacją gdzie znajduje się plik .pst
Send-MailMessage -To Admin@company.com `
-From pstexport@company.com `
-Subject "PstExport for $exstat finished" `
-Body 'Hello, <BR> The Export for user User1 has been finished and is saved under \\mailboxserver\pstexport$ <BR> Cheers, <BR> Powershell Script' `
-SmtpServer mx.company.com `
-BodyAsHtml

Używanie certyfikatów typu Wildcard w Exchange 2010

Zauważyłem, że wielu administratorów ma problemy ze skonfigurowaniem Exchange 2010 z użyciem certyfikatów typu wildcard.  By Exchange mógł skorzystać z takiego certyfikatu potrzeba odpowiednio skonfigurować usługi i nie jest to konfiguracja standardowa, raczej poszczególne usługi konfiguruje się w różny sposób. Poniżej przedstawiam ogólne wskazówki jak należy postępować by wszystkie usługi skonfigurować do użycia certyfikatu wildcard.

Zacznijmy z usługami SMTP i IIS, by dla nich uaktywnić użycie już zainstalowanego na serwerze certyfikatu Wildcard wystarczy użyć polecenia PowerShell enable-exchangecertificate -services „SMTP, IIS” -thumbprint [thumbprint naszego certyfikatu]. Uruchamiając polecenie jak podałem poniżej otrzymamy informacje dla jakich usług nasz certyfikat został aktywowany.

[PS] C:\Users\administrator.IN\Desktop>Get-ExchangeCertificate

Thumbprint                                Services   Subject
----------                                --------   -------
BC413FCE3830A0D4CDF793BDD4E9F5AC1348E93A  ......     CN=Ex2010.contoso.com
95C280E27ADF33C6A0D726C622DCDCCCA4A10272  ...WS.     CN=*.contoso.com, OU=Home, O=Home, L=MUC, S=BY, C=DE

Mimo, iż teoretycznie za pomocą komendy enable-exchangecertyfikate można aktywować certyfikaty dla innych usług, nie da się tego zrobić w przypadku certyfikatów typu wildcard.  Aby tego dokonać dla usług takich jak IMAP4 czy POP3 należy użyć odpowiednio komendy  set-imapsettings -X509CertificateName, set-popsettings -X509CertificateName. Przykładowy wynik poniżej:

[PS] C:\Users\administrator.IN\Desktop>Get-PopSettings

UnencryptedOrTLSBindings  SSLBindings                       LoginType                         X509CertificateName
------------------------  -----------                       ---------                         -------------------
{:::110, 0.0.0.0:110}     {:::995, 0.0.0.0:995}             SecureLogin                       mail.contoso.com

Należy zauważyć, że używając komend set-imapsettings i set-popsettings, dla parametru -x509CertificateName należy użyć pełnej nazwy domenowej (FQDN) na jaką będą się łączyć użytkownicy.

Podobnie inne usługi dostępne w enable-exchangecertificate nie dają się skonfigurować z certyfikatem wildcard, np. aby ustawić certyfikat dla federacji należy zamiast tej komendy używać new-federationtrust czy set-federationtrust cmdleds.

Teraz gdy już skonfigurowaliśmy Exchange, należy wykonać kilka zmian by umożliwić klientom udane połączenie do Exchange. Oczywiście cały czas zakładam, że zainstalowany certyfikat pochodzi od zaufanego wystawcy i nie musimy się martwić o dodawanie tegoż wystawcy do kontenera zaufanych na każdym kliencie. By uaktualnić konfigurację Autodiscover, która jest używana w przypadku np. połączenia przez Outlook Anywhere z klienta Outlook 2010 należy wykonać następujące polecenie.

Set-OutlookProvider EXPR -CertPrincipalName msstd:*.contoso.com

W ten sposób Outlook będzie automatycznie wiedział jak skonfigurować Outlook Anywhere. Jeśli jednak używamy wersji Outlooka 2003 lub chcemy upewnić się, że nowsza wersja posiada prawidłowe ustawienia, zamieszczam poniżej screenshot z takowych ustawień

Tym sposobem skonfigurowaliśmy Exchange z certyfikatem wildcard i aktywowaliśmy usługy POP3, IMAP4, SMTP, Outlook Anywhere do połączeń zabezpieczonych.