Reklama dynamiczna

Pokazywanie postów oznaczonych etykietą PowerShell. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą PowerShell. Pokaż wszystkie posty

wtorek, 1 września 2020

Powershell: lista zainstalowanych dysków / pendrajwów

W celu wylistowania zainstalowanych dysków twardych oraz pendrajwów można użyć poniższej komendy Powershella:

Get-CimInstance -class Win32_DiskDrive -property * | select-object InterfaceType, Model, @{Name="Pojemnosc"; Expression={$_.Size / 1024MB}}, SerialNumber

Wynik powinien prezentować się jak poniżej:

Lista dysków / pendrajwów wylistowana przy pomocy Powershella

Polecam uwadze pewną ciekawostkę. Można by sądzić, że na powyższej liście dyski twarde od pendrajwów można odróżnić po użytym interfejsie. W końcu widać tam 2 urządzenia z interfejsem USB, więc są to zapewne pendrajwy. Pozostałe zaś, to pewnie dyski twarde. 

Tak nie jest. Pendrajwem jest także urządzenie Corsair Voyager GTX, które ma przypisany interfejs SCSI. Jest to pendrajw o pojemności aż pół terabajta (z jego testem możecie zapoznać się tutaj).

Piszę o tym ponieważ gdyby ktoś miał potrzebę wyfiltrowania powyższych wyników w celu wyświetlenia np. wyłącznie pendrajwów, to filtrowanie z użyciem interfejsu nie będzie tutaj najlepszym rozwiązaniem. 

niedziela, 14 czerwca 2020

Kopiowanie plików ze zdalnej maszyny Windows przy użyciu PowerShella

Czasami zachodzi potrzeba skopiowania plików ze zdalnej maszyny z systemem Windows przy użyciu innego rodzaju połączenia niż SMB, tudzież schowek Pulpitu Zdalnego. 

Wtedy można skorzystać np. z PowerShella. 

A jak się to odbywa?

Tak więc, kopiowanie odbywa się w dwóch etapach:
  1. Utworzenie sesji do zdalnej maszyny, czyli utworzenie połączenia, które potem zostanie wykorzystane. Samo utworzenie sesji niczym nie skutkuje, poza tym, że możemy skorzystać z tak utworzonej sesji w innych poleceniach.
  2. Właściwe kopiowanie plików z wykorzystaniem sesji utworzonej w pkt 1.
Tak to wygląda w teorii, a poniżej praktyka z komendami i komentarzami.

czwartek, 4 czerwca 2020

Get-UserLoggedOnRemoteComputer: czyli skrypt pokazujący użytkowników zalogowanych na zdalnych maszynach Windows

Potrzeba matką wynalazków - jak to się mawia. 

A skoro tak, to powstał skrypt, który pokazuje użytkowników zalogowanych na zdalnych maszynach Windows. 

Jego celem jest zorientowanie się, czy na zdalnych serwerach nie pozostała niewylogowana sesja pulpitu zdalnego, bez konieczności ponownego logowania się do każdego z nich. 

Ot na zasadzie, odpalam skrypt i już wiem gdzie mi wisi sesja. Wygląda to mniej więcej tak jak na poniższym screenie.

Screen z wynikiem działania skryptu Get-UserLoggedOnRemoteComputer
Wynik działania skryptu (wrażliwe dane zostały zamazane)

sobota, 28 marca 2020

PowerShell: Generowanie sum kontrolnych MD5 z plików znajdujących się w napędzie optycznym (i nie tylko)

Na podstawie Rozporządzenia Ministra Sprawiedliwości z dnia 11.01.2017r. w sprawie utrwalania obrazu lub dźwięku dla celów procesowych w postępowaniu karnym, dokonując tworzenia / kopiowania nośników w sądach, powinniśmy tworzyć razem z nimi odpowiednie Metryki Identyfikacyjne Nośnika w skład której, w pkt. 7, należy podać:

  • Nazwa i wersja oprogramowania użytego do wygenerowania sum kontrolnych
  • Użyty algorytm (jeżeli oprogramowanie używa więcej niż jednego algorytmu)
  • Sumy kontrolne
Jest do tego celu wiele programów, jak np. darmowy HashMyFiles.

Większość z nich wymaga jakiejś podstawowej obsługi, natomiast moim celem (poza ćwiczeniem PowerShella), było przygotować narzędzie bezobsługowe. 

Taki też jest skrypt, który do tego celu przygotowałem, noszący nazwę Get-ControlSumFromOpticalDrive i którego najnowszą wersję można pobrać z GitHuba.

Skrypt Get-ControlSumFromOpticalDrive otworzony w edytorze Visual Studio Code
Skrypt Get-ControlSumFromOpticalDrive otworzony w edytorze Visual Studio Code (prawda, że piękny? ;)
Wystarczy go uruchomić, a on odszuka napęd optyczny w systemie, przeskanuje go rekursywnie pod kątem plików i przygotuje listę sum kontrolnych. 

poniedziałek, 30 września 2019

Skrypt Powershell do testowania Stref Warunkowego Przesyłania Dalej w serwerach DNS - "Test-DNSConditionalForwarders"

Jeżeli zarządzacie serwerem DNS w którym macie dodaną strefę, bądź strefy, Warunkowego Przesyłania Dalej (ang. Conditional Forwarder), to może Was zainteresować skrypt w PowerShellu, który ułatwia proces zarządzania nimi.

Dlaczego taki skrypt?
Strefy Warunkowego Przesyłania Dalej zarządzane są "z palca", a to oznacza, że to administrator lokalnie zarządzający DNSem odpowiada za to jaką listę serwerów będzie dla niej utrzymywał.

Jeżeli więc Wasza organizacja "średnio" dba o przesyłanie lokalnym adminom informacji o tym jakie serwery powinny powinny się w jakiej strefie znaleźć, to po pewnym czasie może być tam bałagan polegający np. na tym, że część serwerów w strefie zmieniła swój charakter i np. nie pełnią już roli DNSów, lub część w ogóle przestała być dostępna.
Oczywiście może być też tak, że są strefy dla domen, które w ogóle przestały być wykorzystywane (w dużych sieciach VPN żadna nowość).

poniedziałek, 12 sierpnia 2019

Powershell - skrypt logujący status zasilacza UPS

Być może komuś przyda się skrypt, który pobiera status zasilacza UPS i wyświetla go w postaci tabelki na ekranie z możliwością logowania do pliku.

Dane na ekranie wyglądają jak poniżej:

-- Basic informations
Name: Back-UPS RS 500 FW:30.j5.I USB FW:j5
Chemistry: Lead Acid
-- measurements started
date       time     Availability BatteryStatus EstimatedChargeRemaining EstimatedRunTime
----       ----     ------------ ------------- ------------------------ ----------------
09.08.2019 20:58:40            2             2                       98              203
09.08.2019 20:58:50            2             2                       98              203
09.08.2019 20:59:00            2             2                       98              203
09.08.2019 20:59:11            2             2                       98              203
09.08.2019 20:59:21            2             2                       98              203
09.08.2019 20:59:31            2             2                       98              203
09.08.2019 20:59:41            2             2                       98              203
-- Measurements completed

Dane logowane do pliku oddzielane są tabulatorami, dzięki czemu całość jest całkiem przyjemna w analizie, a ponadto umożliwia łatwą wizualizację w Excelu.

Poniżej przykładowy wykres obejmujący 10 minutowy okres ładowania akumulatora w zasilaczu APC Back-UPS RS 500.

Dziesięciominutowy okres ładowania akumulatora w zasilaczu APC Back-UPS RS500 zwizualizowany na wykresie
Dziesięciominutowy okres ładowania akumulatora w zasilaczu APC Back-UPS RS500 zwizualizowany na wykresie

Po bardziej szczegółowe informacje dot. skryptu zapraszam na GitHub, gdzie znajdziecie jego najnowszą wersję.