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: