Zdalna deinstalacja poprawek

1 lipca 2015 at 07:50

Niestety ostatnio coraz częściej zdarza się, że Microsoft wypuszcza poprawki, które psują pewne działające wcześniej funkcjonalności systemów. W przypadku, gdy zależy nam na szybkim usunięciu poprawki z wybranej stacji roboczej/serwera celem weryfikacji czy dana poprawa była przyczyną zaprzestania działania funkcjonalności i nie mamy do tego żadnych płatnych narzedzi możemy wykorzystać oczywiście Powershell’a Skorzystamy z narzędzia systemowego wusa.exe, z tym że trochę podrasujemy zwracane przez nie wyniki, żebyśmy mieli na bieżąco informację o tym, czy dana poprawka jest w trakcie deinstalacji, czy proces już się zakończył:

Wykorzystanie powyższej funkcji np: Uninstall-Hotfix -computername PC1 -HotfixID KB2676562

Błędy encoding utf-8 przy wysyłce maila z Powershella

1 lipca 2015 at 07:42

Podczas próby wysyłki maila z poziomu Powershell’a (Send-MailMessage) z użyciem formatowania utf-8 w niektórych przypadkach pojawiają się błędy typu: Send-MailMessage : Cannot bind parameter ‚Encoding’. Cannot convert the „utf8” value of type „System.String” to type „System.Text.Encoding”. Jest to spowodowane „cache’owaniem” formatowania z bieżącej konsoli/ustawień systemu. Aby pozbyć się tego błędu należy: 1. Utworzyć nowy obiekt formatowania utf-8:

2. Wykorzystać ten obiekt w poleceniu wysyłającym maila np:

I można się cieszyć działającą wysyłką maili 😉

Ograniczenie CPU dla Powershella

9 czerwca 2015 at 17:36

Od jakiegoś czasu zastanawiałem się w jaki sposób można ograniczyć ilość CPU wykorzystywanego przez uruchamiane skrypty Powershell’a tak aby nie zabijały one maszyny, na której są odpalane. Jak się okazuje temat wcale nie jest taki trywialny, bo prostej metody nie ma… Jest jedynie workaround: 1. Tworzymy dedykowane konto użytkownika, które będzie wykonywać skrypty na serwerze. 2. Nadajemy kontu uprawnienia do uruchamiania skryptów oraz wykonywania zadań w ramach skryptu. 3. W rejestrze pod ścieżką: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System\(SID-Użytkownika) tworzymy wpis o nazwie „CpuRateLimit” typu „REG_DWORD” i ustawiamy interesującą nas wartość np ’10’ – oznaczającą maksymalnie 10% wykorzystania CPU. Cieszymy się, że nie zabijamy serwera skryptami Powershell’owymi

Powershell – sprawdzanie, czy archiwa są chronione hasłem

24 kwietnia 2015 at 18:30

Problem na dziś: Należy utworzyć udostępniony zasób sieciowy, na który użytkownicy mogą wrzucać tylko i wyłącznie archiwa plików (.zip , .raz , .7z), które są chronione hasłami (Bezpieczeństwo przed wszystkim… ). W przypadku, gdy wrzucone dane nie spełniają tych wymagań mają być automatycznie usuwane z zasobu. Zasadniczą kwestią jest tutaj rozwiązanie zadania dotyczącego weryfikacji, czy plik jest chroniony hasłem. Czego będziemy potrzebować? Zainstalowanego pakietu 7zip razem z narzędziami wiersza poleceń + powershell’a. 1. Utwórzmy sobie zasób, na którym wykonywać będziemy zadanie np. w lokalizacji „D:\TESTY” 2. Do Katalogu „D:\TESTY” wrzucamy 1 archiwum chronione hasłem, 1 archiwum bez hasła i przykładowy plik tekstowy: Żeby potwierdzić, poprawne działanie poniżej archiwum z hasłem: Archiwum bez hasła: Oraz pełna zawartość katalogu: 3. Po zainstalowaniu 7zip’a i odpaleniu Powerhsell’a przystępujemy do obsłużenia zadania (Skrypt rozbity na części pierwsze – objaśnienie, co robi skrypt; poszczególne linijki same bez kontekstu skryptu mogą nie działać ) I. Zaczynamy od wy-listowania zawartości katalogu:

II. Żeby nie tracić czasu i nie sprawdzać pod kątem istnienia hasła – plików, które nie są zakładanymi archiwami – filtrujemy rozszerzenia:

III. Weryfikujemy, czy archiwum jest chronione hasłem: IIIa. Próbujemy dostać się do archiwum przy użyciu wyimaginowanego hasła, którego nie wprowadziłby żaden umysłowo […]

AD Web Service + Upgrade do Windows Server 2012R2 = Crash…

18 marca 2015 at 07:55

Wykonałeś ostatnio upgrade In-Place kontrolera domeny z wersji windows Server 2008R2 do Windows Server 2012 R2 i ku Twojemu zdziwieniu usługa ADWS (Active Directory Web Service) odpowiedzialna m.in. za możliwość zarządzania zdalnego Active Directory za pomocą Powershella przestała działać? Co więcej każda próba jej podniesienia kończy się błędami? Co robić? Jak żyć? Czy wycofywać Upgrade? W żadnym wypadku! Wersja minimalistyczna – wgrać poprawkę KB2919355 – zrestartować serwer i cieszyć się pełnią funkcjonalności ADWS. Wersja profesjonalna – „załatać” system wszystkimi poprawkami, łatać, łatać, łatać – i zacznie działać  

© Marcin Krzanowicz