Jeśli do przetworzenia jest dużo danych tekstowych i trzeba je np przefiltrować (coś w stylu polecenia grep). W takim przypadku przetwarzanie pliku przez Import-CSV albo Get-Content może być nieoptymalne, wolelibyśmy przetwarzać plik linia po linijce i … z pomocą mogą przyjść metody .NET Poniższy przykład pochodzi z Reading And Writing To Files · Powerstart to Powershell […]
Archiwum dla kategorii ‘Power Shell’
Powershell: Odczyt dużego pliku z wykorzystaniem metod .Net
Windows: wyszukiwanie w event log (dziennik zdarzeń)
Event log to… „wielki śmietnik” pełen mnóstwa ciekawych informacji. Problemem jest tylko wygrzebanie istotnej informacji. Potrzebowałem np. sprawdzić, kto logował się interaktywnie do sysytemu w ciągu ostatnich 24 godzin. W tym celu stworzyłem „Custom View”, a w nim zbudowałem warunki filtrujące. To nie było trudne, bo event id dla zdarzenia logowanie to 4624. Problem tylko […]
PowerShell: Ustawianie zmiennej środowiskowej
Niektóre aplikacje wymagają ustawienia zmiennych środowiskowych. W command line to nie problem:
1 |
SET FLASK_DEBUG=1 |
i gotowe! Jednak coraz częściej to PowerShell jest domyślnym shellem. Jak więc ustawić zmienną środowiskową w PowerShell?
1 |
[System.Environment]::SetEnvironmentVariable('FLASK_DEBUG', '1',[System.EnvironmentVariableTarget]::Process) |
Nie jest to zbyt proste, ale: [SystemEnvironment] pozwala odwołać się do programistycznej klasy, która odpowiada za zarządzanie środowiskiem SetEnvironmentVariable – to metoda statyczna w/w […]
PowerShell: ScheduledJob się nie wykonuje. Brak błędów
Dziwna sprawa. W PowerShellu utworzony ScheduledTask nie uruchamia się. PowerShell go widzi, ale nie wiadomo, co powoduje, że zaplanowane zadania nie startują. Oto kod tworzący taki przykładowy job:
1 2 3 4 5 6 7 8 9 10 |
$options = New-ScheduledJobOption -StartIfOnBattery -RunElevated $min = New-TimeSpan -Minutes 1 $trigger = New-JobTrigger -RepetitionInterval $min -RepeatIndefinitely -At (Get-Date) -Once Register-ScheduledJob -Name "My Task" -Trigger $trigger -ScheduledJobOption $options -ScriptBlock { $files_archive = 'c:\files_archive' $currdir = Get-Date -Format yyyyMMddhhmm cd $files_archive New-Item -ItemType directory -Path $currdir } |
Dokładniejsza analiza logu harmonogramu zadań wskazała, że przyczyną jest brak uprawnień. Dziwne, bo polecenia uruchamiał lokalny administrator. Niestety konto tego administratora pochodziło z Azure AD. Ponieważ […]
PowerShell: Testowe połączenie przez remoting do lokalnego komputera
Remoting służy do uruchamiania poleceń na zdalnym komputerze. Zdarza się jednak, że chcesz przetestować połączenie na lokalnym komputerze, czyli przez remoting połączyć się ze swojego komputera na swój komputer. Jak to zrobić? Twój lokalny komputer ma kilka nazw, które można wykorzystać łącząc się do niego: localhost 127.0.0.1 $env:COMPUTERNAME Niestety polecenie w takiej postaci:
1 |
Invoke-Command -ComputerName localhost { echo 1 } |
Kończy […]
Powershell: Włączanie usługi na komputerze z publicznym profilem sieci
Do włączenia remotingu na komputerze lokalnym poinciana wystarczyć następująca komenda uruchamiana „jako administrator”
1 |
Enable-PSRemoting |
Jeśli jednak wśród interfejsów sieciowych znajduje się chociaż jeden oznaczony jako publiczny, to ta komenda może nie włączyć remotingu. WinRM firewall exception will not work since one of the network connection types on this machine is set to public. Change the […]
Powershell: prawie grep
Ciekawe, czy tylko ja jestem rozczarowany narzędziem do szukania plików w Windows…. Kiedy przeszukuję pliki tekstowe i chcę znaleźć pliki zawierające określony tekst, wystarczy w powershellu skorzystać z polecenia select-string: Select-String -Path *.sql -Pattern „@ENV” Krótkie, wygodne, a przede wszystkim SKUTECZNE – jak unixowy grep