Komendy CLI

Sprawdzenie samej listy IPv4 kart sieciowych

Wszystkie komendy uruchamiamy w powershell.

Komenda ipconfig:

ipconfig /all | findstr /I "Adapter | Descripton | IPv4" 

Komenda Get-NetAdapter, z ładniejszym formatowaniem)

Get-NetAdapter | ForEach-Object {
    $adapterName = $_.InterfaceAlias
    $ipv4 = (Get-NetIPAddress -InterfaceAlias $adapterName -AddressFamily IPv4).IPAddress
    [PSCustomObject]@{
        "Karta sieciowa" = $adapterName
        "Adres IPv4"     = $ipv4 -join ", "
    }
} | Format-Table -AutoSize

Reguły w firewallu dla ECHO / PING / ICMP

Dodanie reguł

New-NetFirewallRule -DisplayName "PING / ECHO / ICMP v4" -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -Action Allow  
New-NetFirewallRule -DisplayName "PING / ECHO / ICMP v6" -Direction Inbound -Protocol ICMPv6 -IcmpType 8 -Action Allow  

Usunięcie reguł:

Remove-NetFirewallRule -DisplayName "PING / ECHO / ICMP v4"
Remove-NetFirewallRule -DisplayName "PING / ECHO / ICMP v6"

Sprawdzenie czy reguły o danej nazwie występują:

Get-NetFirewallRule | Where-Object DisplayName -like "*PING*"

 

Czyszczenie kosza wszystkich userów

Komendę uruchamiamy jako Administrator w cmd / powershell.

rd /s /q C:/$Recycle.bin

Docelowy dysk z C:/ można zmienić na odpowiedni

 

Sprawdzenie, kto wykonał restart OS

 

Komendę uruchamiamy jako Administrator w powershell.

Get-WinEvent -FilterHashtable @{logname = 'System'; id = 1074} | Format-Table -Property * -Wrap

Przykładowy wynik:

image.png

Czyszczenie starych komponentów WinSxS

Komendę uruchamiamy jako Administrator w cmd / powershell.

Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase

Manualne wymuszenie synchronizacji AD on premis z EntraID

Komendę uruchamiamy jako Administrator w powershell na kontrolerze domeny ze skonfigurowanymi odpowiednimi połączeniami do Entra ID.

Start-ADSyncSyncCycle -PolicyType Delta

 

Podłączanie się do WinRM - Powershell

 

Uruchamiamy z poziomu powershell, po uruchomieniu usługi WinRM

Enter-PSSession -ComputerName "NazwaKomputera" -Credential (Get-Credential)

Instalacja Telnet poprzez powershell

Komendę uruchamiamy jako Administrator w powershell.

pkgmgr /iu:"TelnetClient"

 

Zaszyfrowanie hasła dla secure-string w Powershell

Komendę uruchamiamy jako użytkownik który będzie z tego hasła korzystał. Hasło wygenerowane będzie działać poprawnie tylko i wyłącznie użytkownikiem z którego wykonamy komendę.

Jeżeli powershell uruchomimy jako Administrator, to kontem wykonawczym np. w harmonogramie zadań musi być administrator.

'HasloDoZaszyfrowania' | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString

Przykładowy wynik:

image.png

 

Zdalne uruchamianie skryptów PS

Wykonujemy z poziomu Powershell jako użytkownik z uprawnieniami administracyjnymi na komputerze docelowym:

Invoke-Command -ComputerName <computer_name> -scriptblock {PowerShell.exe -ExecutionPolicy Bypass -File "/local/path/to/script.ps1"}

 

Zarządzanie RemoteApps w Remote Desktop Services (RDS)

RemoteApp to funkcja Remote Desktop Services (RDS), która pozwala na publikowanie aplikacji zdalnych, tak aby wyglądały i działały jak lokalne programy na komputerze użytkownika. Dzięki temu użytkownicy mogą uruchamiać aplikacje z serwera RDS bez potrzeby pełnego dostępu do pulpitu zdalnego.

Komendy uruchamiamy z poziomu powershell, z zainstalowanym modułem RemoteDesktop, najlepiej  od razu na serwerze z zainstalowaną rolą Remote Desktop Services

Wylistowanie wszystkich aplikacji w kolekcji
# Wskazanie nazwy kolekcji z której pobieramy aplikacje
$collectionName = "Nazwa Kolekcji" 

# Zaimportowanie modułu RemoteDesktop
Import-Module RemoteDesktop 

# Pobieranie wszystkich RemoteApp z kolekcji 
$remoteApps = Get-RDRemoteApp -CollectionName $collectionName 

# Wyświetlanie pobranych aplikacji RemoteApp
$remoteApps | Select-Object Alias, DisplayName, FilePath 
Dodanie nowej aplikacji do kolekcji
# Pobieranie nazwy kolekcji do której chcemy dodać aplikację 
$collectionName = "Nazwa Kolekcji" 

# Pobieranie parametrów nowej aplikacji
$lnkFilePath = "C:\Ścieżka\do\aplikacji\Skrót.lnk" 
$iconFilePath = "C:\Ścieżka\do\pliku\ikony.ico" 
$appAlias = "Alias aplikacji w RDS"
$appDisplayName = "Nazwa aplikacji w RDS wyświetlana dla użytkowników"

# Importowanie potrzebnego modułu powershell
Import-Module RemoteDesktop 

# Dodanie nowej aplikacji
New-RDRemoteApp -CollectionName $collectionName -Alias $appAlias -DisplayName $appDisplayName -FilePath $lnkFilePath -IconPath $iconFilePath 
Zmiana nazwy aplikacji w kolekcji
# Pobieranie nazwy kolekcji i aplikacji do zmiany
$collectionName = "Nazwa Kolekcji" 
$alias = "Stara nazwa aplikacji" 

# Pobieranie parametrów do zmiany 
$newDisplayName = "Nowa nazwa aplikacji" 
$newProgramPath = "C:\Ścieżka\do\aplikacji.lnk" #Bądź do skrótu 

# Importowanie odpowieniego modułu powershell 
Import-Module RemoteDesktop 

# Zmiana nazwy aplikacji
Set-RDRemoteApp -CollectionName $collectionName -Alias $alias -DisplayName $newDisplayName -FilePath $newProgramPath 
Usunięcie aplikacji z kolekcji
# Pobieranie nazwy kolekcji i aplikacji do usunięcia
$collectionName = "Nazwa Kolekcji" 
$alias = "Aplikacja do usunięcia" 

# Importowanie odpowieniego modułu powershell 
Import-Module RemoteDesktop 

# Usunięcie aplikacji z kolekcji
Remove-RDRemoteApp -CollectionName $collectionName -Alias $alias

Rebuild performance counter oraz resynchronizacja z WMI

 

Komendy uruchamiamy w CMD jako administrator

cd C:\Windows\system32
lodctr /R

cd C:\Windows\SysWOW64
lodctr /R

Resynchronizacja performance counterów z WMI

WINMGMT.EXE /RESYNCPERF

 

Rozszerzenie StorageTier (wymagane do powiększenia wolumenów przy S2D)

Na podstawie: windowsserverdocs/WindowsServerDocs/storage/storage-spaces/manage-volumes.md at main · MicrosoftDocs/windowsserverdocs · GitHub

Powiększanie StoregeTier:


Pobieranie wszystkich VirtualDisks:

Get-VirtualDisk

image.png

Pobieranie nazwy StorageTier

Get-VirtualDisk "NazwaDyskuJeżeliZnamy" | Get-StorageTier | Select FriendlyName

image.png

Sprawdzenie parametrów konkretnego StorageTier

Get-StorageTier -FriendlyName "NazwaStorageTier"

Rozszerzanie odpowiedniego StorageTier do dedykowanej wielkości (MB/GB/TB itd)

Get-StorageTier -FriendlyName "NazwaStorageTier" | Resize-StorageTier -Size (10TB)

image.png

Powiększenie wolumenu :

Sprawdzenie nazwy dysku wirtualnego:

Get-VirtualDisk

image.png

Samo powiększanie wolumenu:

$VirtualDisk = Get-VirtualDisk "NazwaDysku"
$Partition = $VirtualDisk | Get-Disk | Get-Partition | Where PartitionNumber -Eq 2
$Partition | Resize-Partition -Size ($Partition | Get-PartitionSupportedSize).SizeMax

image.png

Wynik Get-VirtualDisk po powiększeniu:

image.png

Zmiana nazwy dla ClusterSharedVolume

Polecenia wykonujemy na hoście Hyper-V, z poziomu powershell, uruchomionego z uprawnieniami administratora

Pobieranie nazwy do zmiany:

Get-ClusterSharedVolume

image.png

(Get-ClusterSharedVolume -Name "NazwaDoZmiany").Name = "NowaNazwa"

image.png

Wgranie danych poprzez WinRM (Powershell Remoting)

Wcześniej musi być uruchomiona usługa WinRM, oraz musimy mieć włączony dostęp sieciowy do danego komputera

$cred = Get-Credential
$session = New-PSSession -ComputerName Nazwa-Komputera -Credential $cred

Copy-Item  "C:\Temp\Plik Źródłowy.plik" `
    -Destination "C:\Temp\Plik docelowy.plik" `
    -ToSession $session