tag:blogger.com,1999:blog-89867473188966946702024-03-19T06:49:54.202+01:00zapiski adminaDaniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.comBlogger231125tag:blogger.com,1999:blog-8986747318896694670.post-9033044149252947432024-01-05T19:30:00.292+01:002024-01-09T21:17:05.578+01:00PowerShell: Search-IP. Function that searches clipboard, files for IP Addresses, deduplicate and sort them<h2 style="text-align: left;"> Background</h2><div>Very often I have need for fast search, deduplicate and sort IP addresses in data from different sources: pdf reports, articles, logs.<br>This should include addresses which are written in safe format, with dots in brackets, like: </div><div><ul style="text-align: left;"><li>192.168.0[.]1 </li><li>192.168.0(.)1</li></ul><div>This is no problem when you have log with ~10 addresses or so, but if you have log file with ~50k - ~100k this could be a problem.</div></div><h2 style="text-align: left;">Solution</h2><div>The function named <b>Search-IP</b> (<a href="https://github.com/sajdykpl/PowerShell/tree/main/Search-IP" target="_blank">link do Github repository</a>) which was written in PowerShell. </div><h2 style="text-align: left;">How it works</h2><div>There is diagram below which showing how function works divided into 3 steps:</div><div><ul style="text-align: left;"><li>Input,</li><li>Working,</li><li>Output</li></ul></div><div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin1CrsunkKrNkz7wRzeb6Zx-Hmwn3ZFp5RjoW2sUCyuoESZ43TYvuZhdMYjBtMdzhxOEnABRhNZD_Am6J2Yg7WuO79GVsZOfsG0EZizp_Jn8ays9GwF_qXiybCQiOib0KApDaafO3czU_oETUJSkNXu1VaENnI5oQOiQA54xLPp3q3yYiKJ8WK826VsbbU/s571/Search-IP.jpg" style="margin-left: auto; margin-right: auto;"><img alt="Logical diagram of the function's operation" border="0" data-original-height="391" data-original-width="571" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin1CrsunkKrNkz7wRzeb6Zx-Hmwn3ZFp5RjoW2sUCyuoESZ43TYvuZhdMYjBtMdzhxOEnABRhNZD_Am6J2Yg7WuO79GVsZOfsG0EZizp_Jn8ays9GwF_qXiybCQiOib0KApDaafO3czU_oETUJSkNXu1VaENnI5oQOiQA54xLPp3q3yYiKJ8WK826VsbbU/s16000/Search-IP.jpg" title="logical diagram of the function's operation"></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Logical diagram of the function's operation</td></tr></tbody></table></div><span></span><a href="https://www.sajdyk.pl/2024/01/powershell-search-ip-function-that.html#more"></a>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-62824791195337581022022-10-30T20:19:00.001+01:002022-10-31T11:01:20.321+01:00PowerShell: zabawa z właściwościami obiektu
<h2>1. Filtrowanie właściwości obiektu wg fragmentu jego nazwy</h2>
<p>W przypadku obiektów posiadających wiele właściwości przydaje się możliwość ich przeszukiwania wg fragmentu ich nazwy. Na przykład obiekt ma setki właściwości, ale chcemy wyświetlić wyłącznie te, które zawierają określone słowo.</p>
<div class="informacja">WAŻNE!<br>Proszę zwrócić uwagę, że omawiane jest wyszukiwanie po nazwach właściwości, a nie ich wartościach.<br>Wyszukiwaniu po wartościach poświęcony jest punkt 2 tego wpisu.</div>
<p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi8HVAoeCfgQtGzVHu3yLBkqI5akqfnBbc7rfrVOsMhhxD6ZifvYdq_LwKhWF13cEQuOX9MKp47z8aTIVIkOWfVHhqdnx7a17TiZCa2bO64WFE1Imzl_9_ld65zqK55VaYj7mn-G3Cz5dYEg_DiwHWBp7a_E4Z18VrDRrVV3Lo28XQjZBcBZwYcH93bNw" style="margin-left: auto; margin-right: auto;"><img alt="Nazwy właściwości wyświetlane są po lewej stronie (na zielono), a ich wartości po prawej" data-original-height="173" data-original-width="588" src="https://blogger.googleusercontent.com/img/a/AVvXsEi8HVAoeCfgQtGzVHu3yLBkqI5akqfnBbc7rfrVOsMhhxD6ZifvYdq_LwKhWF13cEQuOX9MKp47z8aTIVIkOWfVHhqdnx7a17TiZCa2bO64WFE1Imzl_9_ld65zqK55VaYj7mn-G3Cz5dYEg_DiwHWBp7a_E4Z18VrDRrVV3Lo28XQjZBcBZwYcH93bNw=s16000"></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Nazwy właściwości wyświetlane są po lewej (na zielono), a ich wartości po prawej stronie</td></tr></tbody></table>
<p>Może to nie jest zbyt szczęśliwy wybór, ale przypuśćmy, że z komendy <span style="color: red;">Get-Date</span> chcemy wyświetlić wszystkie właściwości, które zawierają w swojej nazwie ciąg <span style="color: red;">day</span>.<span></span></p><a href="https://www.sajdyk.pl/2022/10/powershell-zabawa-z-wasciwosciami.html#more"></a>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-81361268182567005652022-04-28T22:28:00.004+02:002022-09-23T14:13:04.722+02:00PowerShell: Generator adresów IP<div>Czasami zachodzi potrzeba wygenerowania listy adresów IP v4.</div><div>Powyższe kawałki kodu pozwalają na to. </div><div>Obydwa robią to samo, z tym, że "wersja jednolinijkowa" może być uruchamiana zarówno z poziomu konsoli, jak i środowiska programistycznego, natomiast "Wersja do użycia w edytorze kodu" nie uruchomi się w konsoli. </div><div>Można wybrać co komu potrzebne:</div><div><ul style="text-align: left;"><li>wersja jednolinijkowa jest bardziej wszechstronna, ale mniej czytelna, </li><li>wersja czytelniejsza, ale do użycia tylko w edytorze kodu lub jako skrypt. </li></ul></div><h2 style="text-align: left;">Wersja jednolinijkowa</h2><div>
<code>for ($i=1; $i -le <span style="color: red;">10</span>; $i++){(Get-Random -Minimum 1 -Maximum 255).ToString() + '.' + (Get-Random -Minimum 1 -Maximum 255).ToString() + '.' + (Get-Random -Minimum 1 -Maximum 255).ToString() + '.' + (Get-Random -Minimum 1 -Maximum 255).ToString()}</code>
</div>
W miejsce zaznaczonej na czerwono cyfry 10 wystarczy podać swoją wartość i powyższy jednolinijkowiec wygeneruje taką właśnie liczbę adresów IP. <div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgQwC8eIbb0ViKTFnWEvjtIkgOTM-PqyR-ruJJVhUYQX0bMTF0biq5iln27jDyApzyIU8hEnn1RcinZl5svPcmjO71V32Tgyk0aVbxpulcc2TBetFDVZvfa9IuqSyqJHdbvPH75BrzDXuHYDUBTWfWo_6otPCpsznpouRM5FdeUWiD7wW2a3CIOPPQnQ/s618/IP%20list%20generator.png" style="margin-left: auto; margin-right: auto;"><img alt="IP list generator" border="0" data-original-height="432" data-original-width="618" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgQwC8eIbb0ViKTFnWEvjtIkgOTM-PqyR-ruJJVhUYQX0bMTF0biq5iln27jDyApzyIU8hEnn1RcinZl5svPcmjO71V32Tgyk0aVbxpulcc2TBetFDVZvfa9IuqSyqJHdbvPH75BrzDXuHYDUBTWfWo_6otPCpsznpouRM5FdeUWiD7wW2a3CIOPPQnQ/s16000/IP%20list%20generator.png" title="Generator adresów IP" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Wynik działania komendy generującej adresy IP</td></tr></tbody></table><br /><h2 style="text-align: left;">Wersja do użycia w edytorze kodu</h2><div>Poniższy kod także generuje listę adresów IP v4, ale został sformatowany do używania jako skrypt w środowisku oraz jest bardziej czytelny.</div>
<code><pre><span style="color: red;">$howMuchShouldBeGenerated = 10</span> #ile adresów ma zostać wygenerowanych
$IPs = @()
for ($i=1; $i -le $howMuchShouldBeGenerated; $i++){
$IP = ""
for ($j=1; $j -le 4; $j++){
$oktet = (Get-Random -Minimum 1 -Maximum 255).ToString()
$IP += $oktet
if ($j -le 3){
$IP += "."
}
}
$IPs += $IP
}
$IPs
</pre></code>
<div>Proste, ale może komuś się przyda. </div>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-39399764766238532502022-03-22T14:15:00.001+01:002022-03-22T14:15:09.759+01:00PowerShell: Monitorowanie stanu usługi w konsoli i do pliku<p>W celu rozwiązywania problemu z jakąś usługą, może się przydać prosty monitoring polegający na sprawdzaniu jej statusu w podanym interwale czasowym.</p><p>Poniższy jednolinijkowiec wykonuje takie właśnie zadanie.</p>
<p>
<code>
$serviceName = <span style="color: red;">'nazwa_usługi'</span>; while ($TRUE) {start-sleep -Seconds <span style="color: red;">5</span>; write-output "$(get-date -format "HH:mm:ss") : $((get-service -name $serviceName).Name) : $((get-service -name $serviceName).Status)"}
</code>
</p><p>W powyższym kodzie proszę zwrócić uwagę na miejsca oznaczone na czerwono. Oczywiście <span style="color: red;">'nazwa_uslugi'</span> to nic innego jak nazwa usługi, którą chcemy monitorować (nazwy usług można podejrzeć np. poleceniem <b>Get-Service</b>).</p><p>Z kolei cyfra <span style="color: red;">5</span> oznacza interwał czasowy w sekundach pomiędzy sprawdzeniami. </p><p>Rezultat jego działania widać poniżej. </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmH8jrp6CgNkTgsyYfB1L2Dy9w1XaKfeRgBTIJbl-x5agLHTW_z8QH08M0r8JlnFTwpAvxNgR3bzCFfwidSinizFYlDxZqKywx3leaI7Dmvin7AROJcBR8CdS49ac3rH7lSX0qMTsry-lALXaoFu9d1SeKWfDQC0qu2e9ljtwo0SkHgPSaT_KPCFLYgg/s246/PowerShell%20service%20monitoring.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="122" data-original-width="246" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmH8jrp6CgNkTgsyYfB1L2Dy9w1XaKfeRgBTIJbl-x5agLHTW_z8QH08M0r8JlnFTwpAvxNgR3bzCFfwidSinizFYlDxZqKywx3leaI7Dmvin7AROJcBR8CdS49ac3rH7lSX0qMTsry-lALXaoFu9d1SeKWfDQC0qu2e9ljtwo0SkHgPSaT_KPCFLYgg/s1600/PowerShell%20service%20monitoring.png" width="246" /></a></div><br />Oczywiście monitorowanie na ekranie może się przydać we w miarę krótkim przedziale czasowym. Jeżeli zachodzi potrzeba monitoringu dłuższego okresu czasu, wystarczy rezultat powyższej komendy przekierować do pliku dodając kod, który zamieściłem poniżej na czerwono.
<p>
<code>
$serviceName = 'spooler'; while ($TRUE) {start-sleep -Seconds 5; write-output "$(get-date -format "HH:mm:ss") : $((get-service -name $serviceName).Name) : $((get-service -name $serviceName).Status)" <span style="color: red;">| Tee-Object -file plik.txt -append</span>}
</code>
</p>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-43389886275892525552022-03-21T21:30:00.010+01:002022-03-21T21:30:00.229+01:00PowerShell: Przeszukiwanie plików w folderze (i ewentualnie podfolderach) pod kątem określonego ciągu znaków<h2 style="text-align: left;">Informacje wstępne</h2><p>Poniżej wklejam prostą komendę w PowerShellu, która pozwoli przeszukać wszystkie pliki tekstowe w folderze pod kątem podanego ciągu znaków. </p><p>Przydatne zwłaszcza kiedy w gąszczu logów trzeba znaleźć określoną frazę.</p><h2 style="text-align: left;">Komenda</h2><h4 style="text-align: left;">Wersja przeszukująca wszystkie pliki w folderze</h4>
<p>
<code>
Get-ChildItem -File | ForEach-Object {Select-String -Path $_.FullName -Pattern '<span style="color: red;">daniel</span>'}</code></p>
<h4 style="text-align: left;">
Wersja z ograniczeniem przeszukiwania do plików *.txt
</h4><p>
<code>
Get-ChildItem <span style="color: red;">*.txt</span> -File | ForEach-Object {Select-String -Path $_.FullName -Pattern '<span style="color: red;">daniel</span>'}
</code>
</p><h4 style="text-align: left;">
Wersja z ograniczeniem przeszukiwania do plików *.txt i rekursywnym przeszukiwaniem podfolderów</h4><p>
<code>
Get-ChildItem <span style="color: red;">*.txt -Recurse</span> -File | ForEach-Object {Select-String -Path $_.FullName -Pattern '<span style="color: red;">daniel</span>'}
</code>
</p>
<h2 style="text-align: left;">Przykład działania</h2><p>Do przeszukania poszły dwa pliki. Pierwszy ze słowami angielskimi, drugi z polskimi:</p><p></p><ul style="text-align: left;"><li>english_words_alpha.txt (<a href="https://github.com/dwyl/english-words/blob/master/words_alpha.txt" target="_blank">link</a>)</li><li>sjp.20220320.txt (<a href="https://sjp.pl/slownik/growy/" target="_blank">link</a>)</li></ul><div>Obydwa znajdowały się w jednym folderze i chciałem w nich wyszukać wszelkie kombinacje mojego imienia, tj. "daniel". </div><div><br /></div><div>Użyłem komendy, która została podana powyżej, zaś poniżej screen przedstawiający rezultat obejmujący:</div><div><ul style="text-align: left;"><li>kolumna pierwsza: nazwa pliku,</li><li>kolumna druga: nr wiersza w którym ciąg został znaleziony,</li><li>kolumna trzecia: odnaleziony ciąg z wyróżnieniem szukanego tekstu.</li></ul></div><p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkTS8brA1MCV4yMgNXnTdSQcEj7G-r-GtYYFSJKtEUk0Hw64whi0VaT9PEL7SL9GSfoFVK23eX4dIKFzyDmOxyftht0uCt7uK329QrHxEq9YWP_rW7GZpIPs1mM3gtwCD2R1kjugQ8wj5rBs_y-nDazyycXZneatgpbdqb6XyRl-GMWkFYWCk7HpOfbA/s441/PowerShell%20seraching%20for%20strings%20in%20multiple%20files.png" style="margin-left: auto; margin-right: auto;"><img alt="Parsowanie plików w folderze pod kątem określonego ciągu" border="0" data-original-height="441" data-original-width="341" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkTS8brA1MCV4yMgNXnTdSQcEj7G-r-GtYYFSJKtEUk0Hw64whi0VaT9PEL7SL9GSfoFVK23eX4dIKFzyDmOxyftht0uCt7uK329QrHxEq9YWP_rW7GZpIPs1mM3gtwCD2R1kjugQ8wj5rBs_y-nDazyycXZneatgpbdqb6XyRl-GMWkFYWCk7HpOfbA/s16000/PowerShell%20seraching%20for%20strings%20in%20multiple%20files.png" title="Parsowanie plików w folderze pod kątem określonego ciągu" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Wynik działania opisywanej komendy w PowerShellu</td></tr></tbody></table><br /><p>No i to w sumie tyle. Jedna linijka, a potrafi zaoszczędzić dużo czasu :)</p><p></p>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-59763860191781446882021-08-28T13:16:00.004+02:002021-09-12T17:49:16.515+02:00PowerShell: wyświetlane 30 ostatnio zapisanych/ zmodyfikowanych plików w folderze i podfolderach<p>Przykładowa sytuacja.</p><p>Na Pulpicie macie dużo folderów w których jest dużo plików. Zapiszecie coś w którymś z tych podfolderów. Nie pamiętacie nazwy, ani folderu w którym plik został umieszczony. </p><p>Wtedy nerwowość szukania zapisanego dokumentu staje odwrotnie proporcjonalnie do pozostałego czasu, czyli im mniej czasu, tym większe zdenerwowanie ;)</p><p>W takich sytuacjach może się przydać poniższy "jednolinijkowiec".</p>
<code>Get-ChildItem -Recurse -File | Select-Object -Property FullName, LastWriteTime | Sort-Object LastWriteTime -Descending | Select-Object -First 30</code>
<p>Jeżeli więc chcecie wyświetlić 30 ostatnio zapisanych / zmodyfikowanych plików na Pulpicie i jego podfolderach należy odpalić PowerShella, przejść na Pulpit i wkleić powyższy kod. </p><p>Oczywiście zamiast przechodzenia do folderu i uruchamiania kodu, ścieżkę do przeszukania można podać poprzez parametr <b>-Path</b> dla polecenia <b>Get-ChildItem</b>. Również do tego polecenia można dodać parametr <b>-Hidden</b>, który spowoduje wyświetlanie także ukrytych plików.</p>
<p>Kod uzupełniony o te dwa parametry będzie miał zatem postać:</p>
<code>Get-ChildItem -Path <span style="color: red;">"ścieżka_do_przeszukania"</span> -Recurse -File <span style="color: red;">-Hidden</span>| Select-Object -Property FullName, LastWriteTime | Sort-Object LastWriteTime -Descending | Select-Object -First 30</code>
<p>Całkiem przydatna rzecz, zwłaszcza jeśli do przeanalizowania są dziesiątki folderów z tysiącami plików. </p>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com1tag:blogger.com,1999:blog-8986747318896694670.post-45194885578959184022021-08-19T16:54:00.002+02:002021-08-19T16:54:25.024+02:00Włączenie na maszynie zdalnej Pulpitu Zdalnego za pomocą PowerShella<p>Jak włączyć Pulpit Zdalny na maszynie do której nie macie fizycznego dostępu, a jedynie poprzez PowerShella? </p><p>Otóż w sposób jak poniżej (działa na Windows 10).</p>
<ul><li>Nawiązanie zdalnego połączenia do komputera, na którym ma zostać uruchomiona opcja dostępu przez Pulpit Zdalny <br />
<code>Enter-PSSession -ComputerName "<i>nazwa_komputera</i>" -Credential (Get-Credential)</code></li>
<li>Dodanie wpisu w rejestrze zezwalającego na dostęp za pośrednictwem Pulpitu Zdalnego<br />
<code>Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -name "fDenyTSConnections" -value 0</code></li>
<li>Opcjonalnie. Jeżeli dostęp przez Pulpit Zdalny nie działa to prawdopodobnie należy puścić ruch przez firewalla:<br />
<code>Enable-NetFirewallRule -DisplayGroup "*Pulpit zdalny*"</code></li></ul>
No i to w zasadzie tyle. Raptem trzy kroki, a ile radości :DDaniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-22260324492053228522021-01-09T21:48:00.003+01:002021-01-09T21:50:37.300+01:00Dodanie tekstu z przodu i tyłu ciągu znakowego / wartości liczbowej w Notepad++, PowerShell i Excel<p>Co robicie gdy macie potrzebę dodania do listy gotowych ciągów znaków (lub liczb) jakiegoś tekstu na początku i końcu? Dla przykładu chcielibyście z przodu tekstu dodać słowo "przód", a tyłu słowo "tył" (prawda, że jestem kreatywny? ;D) </p>
<table class="tabelka">
<caption>Ciąg znaków posiadany i oczekiwany</caption>
<tbody>
<tr>
<th>Macie</th>
<th>Chcecie uzyskać</th>
</tr>
<tr>
<td>
<ul>
<li>TEKST1111</li>
<li>TEKST2222</li>
<li>TEKST3333</li>
<li>TEKST4444</li>
</ul>
</td>
<td>
<ul>
<li><b>przód-</b>TEKST1111<b>-tył</b></li>
<li><b>przód-</b>TEKST2222<b>-tył</b></li>
<li><b>przód-</b>TEKST3333<b>-tył</b></li>
<li><b>przód-</b>TEKST4444<b>-tył</b></li>
</ul>
</td>
</tr>
</tbody>
</table>
<p>Pewnie jest wiele sposobów na wykonanie tego zadania, ale jeżeli akurat żaden z nich nie przychodzi Wam do głowy, to może któryś z poniższych Was poratuje.</p><p>Tekst jest napisany pobieżnie bardziej jako wskazówka, niż dokładny instruktaż. <span></span></p><a href="https://www.sajdyk.pl/2021/01/dodanie-tekstu-z-przodu-i-tyu-ciagu.html#more"></a>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com1tag:blogger.com,1999:blog-8986747318896694670.post-16634772099008529072020-12-20T16:27:00.003+01:002020-12-28T20:26:26.437+01:00YubiKey 5 NFC jako 2FA (two factor authentication) dla systemów Synology SRM / DSM<p>Jednym z lepszych gwarantów bezpieczeństwa naszych urządzeń ogólnie, czy też w szczególności znajdujących się na nich informacji, jest dwuskładnikowe uwierzytelnianie (2FA - Two factor authentication).</p><p>Chodzi w nim o to, że przy próbie zalogowania do jakiegoś zasobu (np. do interfejsu zarządzania routerem) po podaniu loginu i hasła, użytkownik proszony jest także o wprowadzenie kodu wygenerowanego przez zewnętrzną aplikację jak np. <b>Google Authenticator</b>, bądź <b>Yubico Authenticator</b>. </p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2DbWpF3Z3whUMEwyCmPj4ZfzFGNNgDG-WjVNAfYZMmTFgfF5SZBXpiz5_TPbut6VPqd5mM233kVovuWMwR60E2r9-E8nHs831KGME6XA-l235laITYYypH5DzwUdjb4dqyS_b-GDP4e28/s820/Synology%25C2%25A0RT+2600AC+2FA+Two+Factor+Authentication.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Prośba o podanie kodu uwierzytelniania dwuskładnikowego przy próbie zalogowania do routera Synology RT2600AC" border="0" data-original-height="610" data-original-width="820" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2DbWpF3Z3whUMEwyCmPj4ZfzFGNNgDG-WjVNAfYZMmTFgfF5SZBXpiz5_TPbut6VPqd5mM233kVovuWMwR60E2r9-E8nHs831KGME6XA-l235laITYYypH5DzwUdjb4dqyS_b-GDP4e28/w400-h297/Synology%25C2%25A0RT+2600AC+2FA+Two+Factor+Authentication.jpg" title="Prośba o podanie kodu uwierzytelniania dwuskładnikowego przy próbie zalogowania do routera Synology RT2600AC" width="400"></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Prośba o podanie kodu uwierzytelniania dwuskładnikowego przy próbie zalogowania do routera Synology RT2600AC</td></tr></tbody></table><br><p><span></span></p><a href="https://www.sajdyk.pl/2020/12/yubikey-5-nfc-jako-2fa-two-factor.html#more"></a>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-31595120665423155662020-12-17T22:10:00.003+01:002020-12-17T22:12:17.249+01:00PowerShell: Poszukiwanie pliku według zadanej sumy kontrolnej<p>Mawia się, że potrzeba matką wynalazków, tak więc potrzebą moją było znalezienie na dysku pewnego pliku o określonej sumie kontrolnej. Pewnie są do tego narzędzia, pewnie nawet za darmo, ale jakoś tak bardzo nie chciało mi się szukać po Internecie, że napisałem sobie jednolinijkowca w PowerShellu. </p><p>Wygląda jak poniżej:</p><code>Get-Childitem -File -Recurse -LiteralPath <span style="color: red;">"c:\Windows\System32"</span> -Force -ErrorAction SilentlyContinue | ForEach {if ((get-filehash -path $_.FullName -Algorithm <span style="color: red;">MD5</span> -ErrorAction SilentlyContinue).Hash -eq <span style="color: red;">"5DA8C98136D98DFEC4716EDD79C7145F"</span>) {Write-Host "This file has searched control sum:" $_.FullName}}</code>
<p>Miejsca zaznaczone na czerwono można dopasować do własnych potrzeb, czyli: </p><p></p><ul style="text-align: left;"><li>ścieżkę folderu do przeszukania (działa rekursywnie). Można też podać cały dysk, ale wtedy będzie odpowiednio dłużej. </li><li>algorytm. W powyższym przykładzie jest to <b>MD5</b>, ale można wybrać jeden z poniższych: </li><ul><li>SHA1, </li><li>SHA256, </li><li>SHA384, </li><li>SHA512,
</li></ul><li>suma kontrolna poszukiwanego pliku.</li></ul><div class="informacja">Ważne!<br />Powyższy kawałek kodu nie sprawdzi plików, które są otworzone, bądź zablokowane.</div>
Tak więc, kto zgadnie jaki plik powinna zwrócić powyższa komenda? :)Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com2tag:blogger.com,1999:blog-8986747318896694670.post-82707501419547180592020-11-06T22:08:00.000+01:002020-11-06T22:08:09.733+01:00Powershell: obcinanie numeru portu z adresu IP<p>Gdy otrzymacie plik zawierający adresy IP z portami, które chcecie usunąć (np. 123.123.123.123:80), wystarczy użyć do tego poniższej komendy powershella:</p>
<code>Get-Content <i>plik_zrodlowy.txt</i> | ForEach-Object {$_ -replace ":\d+$","" } | out-file <i>plik_wyjsciowy.txt</i></code>
<p>Wynikiem będzie plik wyjściowy zawierający wyłącznie adresy IP, już bez numerów portów. </p>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-40581099481300437332020-09-01T18:00:00.003+02:002020-09-02T09:58:16.388+02:00Powershell: lista zainstalowanych dysków / pendrajwów<p>W celu wylistowania zainstalowanych dysków twardych oraz pendrajwów można użyć poniższej komendy Powershella:</p><p><code>Get-CimInstance -class Win32_DiskDrive -property * | select-object InterfaceType, Model, @{Name="Pojemnosc"; Expression={$_.Size / 1024MB}}, SerialNumber</code></p><p>Wynik powinien prezentować się jak poniżej:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFxwY_wyViUhjeUcDTrvBwFRE5bavVCXnWnIOTCnTHNT90ohUL-hE_eX-TqoyEW8Z3pfGYQt9hD15VeCqjG5R5qmYeS7ca7f-XP3dobzYnT1pOE5NCdZvCNJPMt33pYncKiSUcAy9kPeKE/s720/Powershell+Lista+zainstalowanychz+dyskow.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Lista dysków / pendrajwów wylistowana przy pomocy Powershella" border="0" data-original-height="120" data-original-width="720" height="107" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFxwY_wyViUhjeUcDTrvBwFRE5bavVCXnWnIOTCnTHNT90ohUL-hE_eX-TqoyEW8Z3pfGYQt9hD15VeCqjG5R5qmYeS7ca7f-XP3dobzYnT1pOE5NCdZvCNJPMt33pYncKiSUcAy9kPeKE/w640-h107/Powershell+Lista+zainstalowanychz+dyskow.png" title="Lista dysków / pendrajwów" width="640" /></a></div><br /><p>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. </p><p>Tak nie jest. Pendrajwem jest także urządzenie <b>Corsair Voyager GTX</b>, które ma przypisany interfejs <b>SCSI</b>. Jest to pendrajw o pojemności aż pół terabajta (<a href="https://www.sajdyk.pl/2020/08/pendrajw-corsair-voyager-gtx-usb-31.html" rel="nofollow" target="_blank">z jego testem możecie zapoznać się tutaj</a>).</p><p>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. </p>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-25971800443397682142020-08-21T14:05:00.004+02:002020-08-21T14:09:31.945+02:00Pendrajw Corsair Voyager GTX USB 3.1 512GB - szybki jak SSD<div class="separator" style="clear: both; text-align: center;"><br></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcFBuMlCXafWLD3b3z1zBsM_K_cCIpMNvnLgjjiC01gdNsDswsl8egeueUi0cvJuax2fg85zgn4sGhktQ5t7d9L6FNGsg2OVvOdJhCmoehXAPCSyRYdS8bfYiBfhQPTgYdC2DwdCziAqWH/s1200/Corsair+Voyager+512GB+3.png" style="margin-left: auto; margin-right: auto;"><img alt="Corsair Voyager GTX 512 GB - zdjęcie producenta" border="0" data-original-height="676" data-original-width="1200" height="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcFBuMlCXafWLD3b3z1zBsM_K_cCIpMNvnLgjjiC01gdNsDswsl8egeueUi0cvJuax2fg85zgn4sGhktQ5t7d9L6FNGsg2OVvOdJhCmoehXAPCSyRYdS8bfYiBfhQPTgYdC2DwdCziAqWH/w400-h226/Corsair+Voyager+512GB+3.png" title="Corsair Voyager GTX 512 GB - zdjęcie producenta" width="400"></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Corsair Voyager GTX 512 GB - zdjęcie producenta<br></td></tr></tbody></table><p>W moje ręce trafił dzisiaj pendrajw <b>Corsair Voyager GTX 512 GB</b>, więc opiszę go w kilku słowach. Może komuś się przyda, bo nie jest to tania zabawka. </p><p>Przejdźmy więc do rzeczy. <span></span></p><a href="https://www.sajdyk.pl/2020/08/pendrajw-corsair-voyager-gtx-usb-31.html#more"></a>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-31779425096534955912020-06-14T18:52:00.002+02:002020-08-21T14:06:21.430+02:00Kopiowanie plików ze zdalnej maszyny Windows przy użyciu PowerShella<div>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. </div><div><br></div><div>Wtedy można skorzystać np. z PowerShella. </div><div><br></div><div>A jak się to odbywa?</div><div><br></div>Tak więc, kopiowanie odbywa się w dwóch etapach:<div><ol style="text-align: left;"><li>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.</li>
<li>Właściwe kopiowanie plików z wykorzystaniem sesji utworzonej w pkt 1.</li></ol><div>Tak to wygląda w teorii, a poniżej praktyka z komendami i komentarzami.<span></span></div></div><a href="https://www.sajdyk.pl/2020/06/kopiowanie-plikow-ze-zdalnej-maszyny.html#more"></a>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-32576628249489507042020-06-04T21:09:00.005+02:002020-06-10T20:33:51.229+02:00Get-UserLoggedOnRemoteComputer: czyli skrypt pokazujący użytkowników zalogowanych na zdalnych maszynach Windows<div>Potrzeba matką wynalazków - jak to się mawia. </div><div><br></div><div>A skoro tak, to powstał skrypt, który pokazuje użytkowników zalogowanych na zdalnych maszynach Windows. </div><div><br></div><div>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. </div><div><br></div><div>Ot na zasadzie, odpalam skrypt i już wiem gdzie mi wisi sesja. Wygląda to mniej więcej tak jak na poniższym screenie.</div><div><br></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDY7UdkqWjwPzg-ADw2O0MsI295VspJ9H3Mc1R_io1jTiwQi2PUENLtbJxfKLFK6Bb-o08BbHjmmLIvVI4qSpmNEj9BRmyGA1_PvmZztGQg8XcWtv4xUr48-2_mu_PNgivjTe5x_MmCwA9/s752/Get-UserLoggedOnRemoteComputer.jpg" style="margin-left: auto; margin-right: auto;"><img alt="Screen z wynikiem działania skryptu Get-UserLoggedOnRemoteComputer" border="0" data-original-height="240" data-original-width="752" height="204" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDY7UdkqWjwPzg-ADw2O0MsI295VspJ9H3Mc1R_io1jTiwQi2PUENLtbJxfKLFK6Bb-o08BbHjmmLIvVI4qSpmNEj9BRmyGA1_PvmZztGQg8XcWtv4xUr48-2_mu_PNgivjTe5x_MmCwA9/w640-h204/Get-UserLoggedOnRemoteComputer.jpg" title="Screen z wynikiem działania skryptu Get-UserLoggedOnRemoteComputer" width="640"></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Wynik działania skryptu (wrażliwe dane zostały zamazane)</td></tr></tbody></table><div><br></div><div><span></span></div><a href="https://www.sajdyk.pl/2020/06/get-userloggedonremotecomputer-czyli.html#more"></a>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-65671486721541479862020-05-09T19:09:00.003+02:002021-12-11T19:06:47.963+01:00Lumintop B01, czyli latarka na rower i nie tylko<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnxj5hoUTW9MW53AFmXFWz5rTSVuQ5UMVGEcP9Lsks6rqWoUdbF-Pd1mp7i0XpAz0IjRDyA6SNqzWO5oLWOo8Pj0iZG9LrQOtWlrP4Wc6JgEWCyIVojIcssalsap1uzDlraLyz4ihv8li3/" style="margin-left: auto; margin-right: auto;"><img alt="Lumintop B01" border="0" data-original-height="1280" data-original-width="1920" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnxj5hoUTW9MW53AFmXFWz5rTSVuQ5UMVGEcP9Lsks6rqWoUdbF-Pd1mp7i0XpAz0IjRDyA6SNqzWO5oLWOo8Pj0iZG9LrQOtWlrP4Wc6JgEWCyIVojIcssalsap1uzDlraLyz4ihv8li3/w640-h426/_MG_0798-19-1.jpg" title="Lumintop B01" width="640"></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Narodziny gwiazdy - wizja artystyczna ;)<br></td></tr></tbody></table><div class="separator" style="clear: both; text-align: center;"><br></div><div class="separator" style="clear: both; text-align: center;"><br></div><div>Niedługo minie 2 lata od kiedy na łamach niniejszego bloga ukazała się recenzja latarki rowerowej Lumintop C01 (link: <a href="http://www.sajdyk.pl/2018/07/lumintop-c01-recenzja-lampki-rowerowej.html" target="_blank">Lumintop C01 recenzja lampki rowerowej z reflektorem StVZO, ładowaniem USB i diodą Cree XP-G3 R5</a>).</div><div>Przyznam, że lampeczka całkiem przypadła mi do gustu i zastąpiła dotychczasową, którą była Fenix BT10 (głównie z uwagi na inny rodzaj zasilania oraz typ użytego reflektora). </div><div><br></div><div>W zeszłym roku Lumintop wypuścił nowszy model, oznaczając go jako <b>B01</b>. <span></span></div><a href="https://www.sajdyk.pl/2020/05/lumintop-b01-czyli-latarka-na-rower-i.html#more"></a>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com2tag:blogger.com,1999:blog-8986747318896694670.post-25824097867818363002020-03-28T17:22:00.003+01:002020-03-28T17:22:45.671+01:00PowerShell: Generowanie sum kontrolnych MD5 z plików znajdujących się w napędzie optycznym (i nie tylko)Na podstawie <a href="http://isip.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=WDU20170000093" rel="nofollow" target="_blank">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</a>, dokonując tworzenia / kopiowania nośników w sądach, powinniśmy tworzyć razem z nimi odpowiednie <b>Metryki Identyfikacyjne Nośnika</b> w skład której, w pkt. 7, należy podać:<br>
<br>
<ul>
<li>Nazwa i wersja oprogramowania użytego do wygenerowania sum kontrolnych</li>
<li>Użyty algorytm (jeżeli oprogramowanie używa więcej niż jednego algorytmu)</li>
<li>Sumy kontrolne</li>
</ul>
<div>
Jest do tego celu wiele programów, jak np. darmowy <a href="https://www.nirsoft.net/utils/hash_my_files.html" rel="nofollow" target="_blank">HashMyFiles</a>.</div>
<div>
<br></div>
<div>
Większość z nich wymaga jakiejś podstawowej obsługi, natomiast moim celem (poza ćwiczeniem PowerShella), było przygotować narzędzie bezobsługowe. </div>
<div>
<br></div>
<div>
Taki też jest skrypt, który do tego celu przygotowałem, noszący nazwę <b>Get-ControlSumFromOpticalDrive</b> i którego najnowszą wersję można pobrać z <a href="https://github.com/kerobalok/Get-ControlSumFromOpticalDrive" rel="nofollow" target="_blank">GitHuba</a>.</div>
<div>
<br></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdsPuM-QhnzGlrXGGCZSy0opFBDoJjpiYICNKxgrERSq0-ZYNWiTkgosvA07ErP1266bMNBizaNHbDR8TQO-jgCR7rgavH3YiQw3r5RCs1ZZx7jzX6TvyfiiDFwTZn3g0MGd6Enr0vJI5N/s1600/VisualStudio+screenshot.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Skrypt Get-ControlSumFromOpticalDrive otworzony w edytorze Visual Studio Code" border="0" data-original-height="768" data-original-width="1127" height="436" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdsPuM-QhnzGlrXGGCZSy0opFBDoJjpiYICNKxgrERSq0-ZYNWiTkgosvA07ErP1266bMNBizaNHbDR8TQO-jgCR7rgavH3YiQw3r5RCs1ZZx7jzX6TvyfiiDFwTZn3g0MGd6Enr0vJI5N/s640/VisualStudio+screenshot.jpg" title="Skrypt Get-ControlSumFromOpticalDrive otworzony w edytorze Visual Studio Code" width="640"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Skrypt Get-ControlSumFromOpticalDrive otworzony w edytorze Visual Studio Code (prawda, że piękny? ;)</td></tr>
</tbody></table>
<div>
Wystarczy go uruchomić, a on odszuka napęd optyczny w systemie, przeskanuje go rekursywnie pod kątem plików i przygotuje listę sum kontrolnych. </div><a href="https://www.sajdyk.pl/2020/03/powershell-generowanie-sum-kontrolnych.html#more"></a>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-79346916108266074342020-02-24T20:28:00.000+01:002020-02-24T20:28:00.312+01:00Logowanie nazwy komputera i użytkownika łączącego się przez Pulpit ZdalnyJeżeli zarządzacie serwerem / komputerem, do którego użytkownicy łączą się przed Pulpit Zdalny (RDP) to być może chcielibyście wiedzieć kiedy, z jakiego komputera i kto się logował?<br>
<br>
Może słabo szukałem, albo brakło mi cierpliwości, w każdym razie nie udało mi się tego w łatwy sposób odnaleźć w narzędziach logów systemowych.<br>
<a href="https://www.sajdyk.pl/2020/02/logowanie-nazwy-komputera-i-uzytkownika.html#more"></a>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com4tag:blogger.com,1999:blog-8986747318896694670.post-83829466672334154792020-02-20T22:38:00.003+01:002020-02-20T22:38:43.610+01:00DHCP Snooping, czyli ujarzmianie serwerów DHCP<h2>
Trochę "tego i owego" tytułem wstępu :)</h2>
<a href="https://en.wikipedia.org/wiki/DHCP_snooping" rel="nofollow" target="_blank">DHCP Snooping</a> to termin pod którym kryje się kilka technik mających zabezpieczać komunikację z serwerami DHCP.<br>
<br>
Dzisiaj wyjaśnię jedną z nich, która pozwoli uchronić sieć lokalną przed omyłkowym, czy też celowym wpięciem do niej innego serwera DHCP.<br>
<br>
Takie przypadkowe wpięcie obcego serwera DHCP jest dość łatwym zadaniem do wykrycia, ponieważ klienci otrzymują na ogół inną adresację i cała sieć zaczyna się "sypać".<br>
<br>
Gorzej sytuacja wygląda, kiedy mamy do czynienia nie z przypadkowym, ale celowym wykorzystaniem obcego serwera DHCP. To już można nazwać atakiem.<br>
<br>
Jak może on wyglądać?<br>
<a href="https://www.sajdyk.pl/2020/02/dhcp-snooping-czyli-ujarzmianie.html#more"></a>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com2tag:blogger.com,1999:blog-8986747318896694670.post-10220444495976537022019-11-16T22:24:00.002+01:002019-11-16T22:24:42.723+01:00O Synology Active Backup for Business i nie tylko ;)<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih5YlOCn40BeQOk5Bs8kgV946mJb0zuglduK4b2GpRTmCf4SBQHQkkWKaHsQdfzaXI6LfY5brT4Vj6kZrPq4RbttaXNasZiL9py3pTaFz6SVUNdTcUAPgEn2StG4aN9gMF9GW4QI6FqBrZ/s1600/Active+Backup+for+Business+www.sajdyk.pl-2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Synology Active Backup for Business" border="0" data-original-height="1068" data-original-width="1600" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih5YlOCn40BeQOk5Bs8kgV946mJb0zuglduK4b2GpRTmCf4SBQHQkkWKaHsQdfzaXI6LfY5brT4Vj6kZrPq4RbttaXNasZiL9py3pTaFz6SVUNdTcUAPgEn2StG4aN9gMF9GW4QI6FqBrZ/s640/Active+Backup+for+Business+www.sajdyk.pl-2.jpg" title="Synology Active Backup for Business" width="640"></a></div>
<h2>
Tytułem wstępu</h2>
Po ponad 15 lat pracy w środowisku IT mogę powiedzieć, że wiem jak mniej więcej działają firmy tego sektora.<br>
<br>
Co przez to rozumiem?<br>
<br>
Między innymi to, że za każdą nową funkcjonalność należy wyłożyć określoną sumę pieniędzy. Po jej zakupie jest wsparcie aktualizacji firmware'u lub oprogramowania przez czas określony w umowie. Następnie pozostaje przedłużenie umowy, albo radzenie sobie na własną rękę.<br>
<br>
Tak to działa w 90% przypadków.<br>
<br>
Tym chętniej opiszę w jaki sposób zaskoczyło mnie oprogramowanie <b>Active Backup for Business</b>, które na leciwym już Synology DS1512+ przerodziło się w naprawdę porządną aplikację do wykonywania kopii zapasowych.<br>
<a href="https://www.sajdyk.pl/2019/11/o-synology-active-backup-for-business-i.html#more"></a>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com1tag:blogger.com,1999:blog-8986747318896694670.post-29094252411206668142019-09-30T22:19:00.006+02:002019-09-30T22:19:51.731+02:00Skrypt 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, <b>Warunkowego Przesyłania Dalej</b> (ang. <span lang="en-GB">Conditional Forwarder</span>), to może Was zainteresować skrypt w PowerShellu, który ułatwia proces zarządzania nimi.<br>
<div>
<br></div>
<div>
Dlaczego taki skrypt?<br>
Strefy <b>Warunkowego Przesyłania Dalej</b> 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ł.<br>
<br></div>
<div>
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.<br>
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ść).<br>
</div><a href="https://www.sajdyk.pl/2019/09/skrypt-powershell-do-testowania-stref.html#more"></a>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-22219325279852999142019-08-12T15:19:00.000+02:002019-08-12T15:19:50.182+02:00Powershell - skrypt logujący status zasilacza UPSByć 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.<br />
<br />
Dane na ekranie wyglądają jak poniżej:<br />
<pre><code class="powershell">
-- 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
</code>
</pre>
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. <br />
<br />
Poniżej przykładowy wykres obejmujący 10 minutowy okres ładowania akumulatora w zasilaczu APC Back-UPS RS 500.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjia2TU3tazd9fiCqCX5YVjV_b4ZAmHV7Y4CesR9rENk6SgTPDNutuptqsvlmRl41hTcaKtsLn6UAkrQIHRzy-tVzxRoYzdGK2yr2suh0SCOBkJLbmefM3canMby8p3cJ3kiNo-JXwxNj7J/s1600/Ladowanie+APC+Back-UPS+RS+500.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Dziesięciominutowy okres ładowania akumulatora w zasilaczu APC Back-UPS RS500 zwizualizowany na wykresie" border="0" data-original-height="416" data-original-width="631" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjia2TU3tazd9fiCqCX5YVjV_b4ZAmHV7Y4CesR9rENk6SgTPDNutuptqsvlmRl41hTcaKtsLn6UAkrQIHRzy-tVzxRoYzdGK2yr2suh0SCOBkJLbmefM3canMby8p3cJ3kiNo-JXwxNj7J/s1600/Ladowanie+APC+Back-UPS+RS+500.jpg" title="Dziesięciominutowy okres ładowania akumulatora w zasilaczu APC Back-UPS RS500 zwizualizowany na wykresie" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Dziesięciominutowy okres ładowania akumulatora w zasilaczu APC Back-UPS RS500 zwizualizowany na wykresie</td></tr>
</tbody></table>
<br />
Po bardziej szczegółowe informacje dot. skryptu zapraszam na <a href="https://github.com/kerobalok/ups-status" rel="nofollow" target="_blank">GitHub</a>, gdzie znajdziecie jego najnowszą wersję.Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-84236854811501728702019-08-11T22:09:00.003+02:002019-08-11T22:09:28.064+02:00Intalacja VMware Tools na Windows Server 2019 CoreW systemie Windows Server w wersji Core, z uwagi na brak środowiska graficznego, instalacja produktu VMWare Tools musi przebiegać inaczej niż w systemach wyposażonych w GUI.<br />
<br />
Poniżej krótka instrukcja.<br />
<h2>
Instalacja VMware Tools</h2>
<ol>
<li>Najpierw należy do systemu "przemycić" samo oprogramowanie VMware Tools. Można to zrobić na kilka sposobów, z czego trzy wymieniam poniżej:<ul>
<li>z poziomu vCenter ppm na maszynie wirtualnej → Guest OS → Install VMware Tools,</li>
<li>pobrać VMware Tools z poziomu maszyny wirtualnej (np. poprzez powershellowe narzędzie wget),</li>
<li>lub tradycyjnie ściągnąć VMware Tools na innej maszynie i przenieść do wirtualki przez dysk sieciowy, USB, itd.</li>
</ul>
</li>
<li>No i teraz kluczowe, czyli należy uruchomić pobraną instalkę. W tym celu trzeba przejść do folderu gdzie się ona znajduje i uruchomić plik setup64.exe z parametrami jak poniżej: <div class="uwaga">
UWAGA! wirtualka może się zrestartować!</div>
<code>.\setup64.exe /s /v /qn</code></li>
</ol>
Gdzie poszczególne przełączniki oznaczają:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXHOHosZ70hMKA5dh-Z8qhM6ieT9kyUaR4reA3dQomEuU5g2T3axzy3aKYHixEm7Ka6VeoJE4mlpqD2s7W-zJtEpQJ6qaq8GqV9ZYPXpDkYt4b5VxQBlLIdu4dDqBQ0hsuLLqmhr-YUJto/s1600/VMware+Tools+install+options+www.sajdyk.pl.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Parametry z jakimi można uruchamiać plik instalacyjny narzędzia VMware Tools" border="0" data-original-height="348" data-original-width="427" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXHOHosZ70hMKA5dh-Z8qhM6ieT9kyUaR4reA3dQomEuU5g2T3axzy3aKYHixEm7Ka6VeoJE4mlpqD2s7W-zJtEpQJ6qaq8GqV9ZYPXpDkYt4b5VxQBlLIdu4dDqBQ0hsuLLqmhr-YUJto/s1600/VMware+Tools+install+options+www.sajdyk.pl.jpg" title="Parametry z jakimi można uruchamiać plik instalacyjny narzędzia VMware Tools" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Parametry z jakimi można uruchamiać plik instalacyjny narzędzia VMware Tools</td></tr>
</tbody></table>
<br />
Aha. A co by się stało gdybyście po prostu uruchomili setup64.exe bez przełączników? Instalacja by wystartowała, ale by się nie zakończyła, czekając prawdopodobnie na potwierdzenie jakiegoś okna dialogowego, którego nie można by było zobaczyć. Ot co by się stało.<br />
<br />
No i to w sumie tyle :)Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-39372877358605157432019-08-04T20:15:00.001+02:002019-08-04T20:15:08.508+02:00Recenzja UPSa Legrand Keor SP 600VA dla Benchmark.plKilka dni temu na łamach <a href="http://benchmark.pl/" rel="nofollow" target="_blank">Benchmark.pl</a> ukazała się przygotowana przeze mnie recenzja niedrogiego zasilacza awaryjnego <b>Legrand Keor SP 600VA</b>.<br>
<br>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6V-T0HG91_bQlRzluZhiHuT_5gFB84FkCwaof8NEx3UzOQGHZ5kEVUsDUWsyyd6b1SGJUTzjeoJcVhY2jHrYwjFa-5bPqz-AIh7Fj690OwdkNNYtoMTXV9sClhpS5GofskT4bxqkpAdbR/s1600/keor_sp_9_jpg_450_450_contain_85.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Legrand Keor SP 600VA - zdjęcie producenta" border="0" data-original-height="315" data-original-width="450" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6V-T0HG91_bQlRzluZhiHuT_5gFB84FkCwaof8NEx3UzOQGHZ5kEVUsDUWsyyd6b1SGJUTzjeoJcVhY2jHrYwjFa-5bPqz-AIh7Fj690OwdkNNYtoMTXV9sClhpS5GofskT4bxqkpAdbR/s320/keor_sp_9_jpg_450_450_contain_85.jpg" title="Legrand Keor SP 600VA - zdjęcie producenta" width="320"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Legrand Keor SP 600VA - zdjęcie producenta</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br>
Zasilacz nie obfituje w jakiekolwiek wodotryski. Nie znajdziecie tam więc zabezpieczenia przeciwprzepięciowego dla złącza RJ-45, wyświetlacza LCD informującego o parametrach pracy urządzenia, bezpiecznika automatycznego, czy też baterii zaprojektowanej do wymiany przez użytkownika.<br>
<br>
<a href="https://www.sajdyk.pl/2019/08/recenzja-upsa-legrand-keor-sp-600va-dla.html#more"></a>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0tag:blogger.com,1999:blog-8986747318896694670.post-88958361504342381172019-07-17T21:28:00.000+02:002019-07-25T21:45:16.651+02:00Lumintop EDC05C - święty Graal?<div class="separator" style="clear: both; text-align: center;">
</div>
Ostatnimi czasy, spośród wielu premier wybiła się jedna - latarki <b>Lumintop FW3A</b>. Jest to latarka zasilana ogniwem 18650, która wzbudza skrajne emocje - od głosów uwielbienia, po syki nienawiści.<br>
<b>Ale to nie o niej będzie poniższy tekst ;)</b><br>
<br>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXhByPRYBwrf4jcBfJfUMp1S8k71vf2RGqWQlz96ocbc9YZJrXyU5Lq344eBWOS2WoGo17WNfSZ10ELGKRG4oAzG_7XrDBxwfh72uj_2a81qG_dgAogBdHTbTQwsPRJXxb0Kq0tMPnZ-9Y/s1600/Lumintop+FW3A.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Lumintop FW3A - zdjęcie producenta" border="0" data-original-height="614" data-original-width="953" height="412" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXhByPRYBwrf4jcBfJfUMp1S8k71vf2RGqWQlz96ocbc9YZJrXyU5Lq344eBWOS2WoGo17WNfSZ10ELGKRG4oAzG_7XrDBxwfh72uj_2a81qG_dgAogBdHTbTQwsPRJXxb0Kq0tMPnZ-9Y/s640/Lumintop+FW3A.jpg" title="Lumintop FW3A - zdjęcie producenta" width="640"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Lumintop FW3A - zdjęcie producenta</td></tr>
</tbody></table>
Jeżeli jednak Wam się podoba i chcielibyście wiedzieć o niej nieco więcej, to <a href="http://www.lumintop.com/fw3a.html" rel="nofollow" target="_blank">strony producenta</a> oraz ogólnie do Internetu, gdzie zapewne jest już całe mnóstwo recenzji.<br>
<br>
Tematem niniejszego wpisu będzie <b>Lumintop EDC05C</b>, której premiera przebiegła niemal niezauważona. Jest to model producenta, który wypuścił także wcześniej wspomnianą FW3A, ale kierowana do innego odbiorcy. Ale o tym dalej.<br>
<a href="https://www.sajdyk.pl/2019/07/lumintop-edc05c-swiety-graal.html#more"></a>Daniel Sajdykhttp://www.blogger.com/profile/18254362763548121708noreply@blogger.com0