PowerShell: Visual Studio Code zamiast PowerShell ISE

PowerShell ISE jest z nami od Windows Server 2012 aplikacja jest sprawdzonym, natywnym rozwiązaniem a takie rozwiązania lubimy najbardziej! Niestety informacja o braku dalszego aktywnego rozwijania tej aplikacji zmusza nas do poszukiwania alternatywy. O ile obecna wersja PowerShell ISE jest domyślnie instalowana w systemach z GUI i w zupełności wystarcza do „szybkiego” pisania tego co potrzebujemy na zastanym środowisku o tyle mocno zestarzała się jako edytor kodu PowerShell. Dzisiaj pokarzemy Wam jak używać Visual Studio Code (VSCode) jako doskonałej alternatywy dla PowerShell ISE.

Czytaj dalej „PowerShell: Visual Studio Code zamiast PowerShell ISE”

PowerShell: funkcja na podstawie skryptu

Nadchodzi taki czas w pracy administratora gdy jego skrypty są tak często używane że mogłyby stać się „własnym natywnym” poleceniem PowerShella – czyli funkcją. Z fedinicji jest ona blokiem kodu (skryptem), który może być wielokrotnie wywoływany w powłoce. Ale jak utworzyć funkcje PowerShell? Jak dodać funkcje do profilu PowerShell. W jaki sposób przerobić skrypt na funkcje?

Czytaj dalej „PowerShell: funkcja na podstawie skryptu”

PowerShell: Invoke-RestMethod : The underlying connection was closed: An unexpected error occurred on a send.

Przy próbie użycia polecenia Invoke-RestMethod otrzymujemy komunikat:

Invoke-RestMethod : The underlying connection was closed: An unexpected error occurred on a send.

Problem polega na tym, że starsze wersje .NET nie obsługują nowszych wersji TLS, takich jak 1.2 i 1.3.

Sprawdzonym rozwiązaniem jest wymuszenie użycia TLS w wersji 1.2, w tym samym oknie wydajmy polecenie:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Następnie wywołajmy polecenie Invoke-RestMethod jeszcze raz:

Invoke-RestMethod firsttorun.sprawdzone.it > first.ps1

Działa! Możemy już pobrany skrypt uruchomić:

PowerShell: Start-ADSyncSyncCycle Scheduler is already suspended via global parameters.

Podczas próby wykonania synchronizacji z Azure AD używając do tego celu modułu PowerShell ADSync i komenyd Start-ADSyncSyncCycle

Start-ADSyncSyncCycle -PolicyType Delta

otrzymuje komunikat błędu:

Start-ADSyncSyncCycle : System.InvalidOperationException: Scheduler is already suspended via global parameters.

Jak rozwiązać taki problem? Wystarczy zmienić parametr używając polecenia Set-ADSyncScheduler :

Set-ADSyncScheduler -SchedulerSuspended $false

i wywołajmy polecenie ponownie: