Windows Firewall – Zjištění a povolení komunikace

Jak zjistit, jestli Windows Firewall blokuje komunikaci

Když něco nekomunikuje – RDP, SMB, aplikace, agent Intune/SCCM atd. – zkus jako první jednoduchý test:


1. Dočasně vypni firewall a ověř funkčnost

Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled False

Pokud komunikace začne fungovat → problém je lokálně ve firewallu.

Nech takto jen na test, po ověření znovu zapni:

Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True

2. Zapni logování blokované komunikace

Abychom zjistili, co přesně FW blokuje, aktivuj logování blokovaných paketů:

Set-NetFirewallProfile -Profile Domain,Private,Public -LogBlocked True

Soubor se ukládá sem:

C:\Windows\System32\LogFiles\Firewall\pfirewall.log

Můžeš ho otevřít v Notepadu, PowerShellu nebo SIEM nástroji.


3. Najdi v logu blokované IP/porty

Hledej řádky s:

  • action=DROP
  • IP adresou zdroje nebo cíle
  • port=XXXX, který tě zajímá (např. 3389 pro RDP)

4. Vytvoř si výjimku pro konkrétní port

Příklad pro RDP port (3389):

New-NetFirewallRule -DisplayName "Allow RDP" -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow

Stejně můžeš povolit i jiné porty – např. 445 (SMB), 5985 (WinRM), 443 (HTTPS)


5. Volitelně: zobraz všechna pravidla, která něco blokují

Get-NetFirewallRule -Action Block | Where-Object { $_.Enabled -eq 'True' } | Format-Table DisplayName, Direction, Profile

Uvidíš přehled aktivních blokujících pravidel.


Shrnutí

  1. Vypni FW → ověř, zda to pomůže
  2. Zapni logování → podívej se, co padá
  3. Podle logu vytvoř pravidlo
  4. Zapni firewall zpět a otestuj

Nalezení aliasu (smtp) v rámci tenantu

Jak zjistit, kdo má přiřazený konkrétní SMTP alias v Exchange Online

Při synchronizaci uživatelů z on-prem AD do Microsoft 365 (Entra ID) můžeš narazit na chybu kvůli kolizi SMTP aliasu. Nejčastěji jde o situaci, kdy někdo už v Microsoft 365 drží e-mailovou adresu (např. jako sekundární alias), a synchronizace nového účtu selže.


PowerShell příkaz pro dohledání aliasu

Get-Mailbox -Identity * | Where-Object { $_.EmailAddresses -like 'smtp:emailaddress@domain.com' } | Format-List Identity, EmailAddresses

Co dělá:

  • Get-Mailbox -Identity * – načte všechny mailboxy v tenantovi
  • Where-Object – filtruje objekty, které mají zadaný alias (SMTP)
  • smtp: – filtruje napříč všemi proxy adresami (nejen primární)
  • Format-List – vypíše přehledně jméno a seznam všech aliasů

Příklad použití:

Máš chybu:

Unable to update this object in Azure Active Directory because the following attributes are in conflict: ProxyAddresses

Spustíš příkaz s konkrétním mailem:

Get-Mailbox -Identity * | Where-Object { $_.EmailAddresses -like 'smtp:john.smith@firma.cz' } | Format-List Identity, EmailAddresses

Zobrazí ti, kdo ten alias momentálně používá.

📎 Nezapomeň na Exchange Online modul

Příkaz vyžaduje připojení k Exchange Online pomocí Exchange Online PowerShell V2 (EXO V2) modulu.

Připojení:
Connect-ExchangeOnline
Pokud nemáš nainstalováno:
Install-Module ExchangeOnlineManagement

Jak rychle zjistit Distinguished Name OU

Vyhledání OU podle názvu pomocí PowerShellu

Chceš rychle zjistit DN (Distinguished Name) organizační jednotky v AD, například při nastavování GPO nebo delegování práv? Níže uvedený PowerShell příkaz ti vrátí jméno a DN všech OU, jejichž název obsahuje řetězec pol_dev.


Příkaz:

Get-ADOrganizationalUnit -Filter 'Name -like "NazevOU"' | Format-Table Name, DistinguishedName -AutoSize

Co dělá:

  • Get-ADOrganizationalUnit – získá seznam všech OU
  • -Filter 'Name -like "NazevOU"' – vyfiltruje pouze ty, kde název obsahuje „pol_dev“
  • Format-Table Name, DistinguishedName -AutoSize – vypíše výstup jako přehlednou tabulku s názvem OU a jejím DN

Filtr můžeš upravit podle potřeby:

-Filter 'Name -like "*dev*"'

Můžeš přidat i další vlastnosti, např. ObjectClass, CanonicalName apod.

Pokud dostaneš chybu „cmdlet not recognized“, zkontroluj, že máš nainstalovaný modul ActiveDirectory a že jsi v kontextu člena domény (Alespoň domain user).

Výpis změněných souborů pomocí PowerShellu

Potřebujete rychle zjistit, které soubory byly v určité složce změněny od konkrétního data? Tento jednoduchý, ale užitečný PowerShell skript vám umožní projít složku (včetně podsložek) a vypsat všechny soubory, které byly upraveny po zadaném datu.

Využijete ho například při:

  • analýze změn po aktualizaci systému nebo aplikace,
  • vyšetřování podezřelých aktivit (např. ransomware incident),
  • sledování uživatelských zásahů v důležitých datových složkách.

Skript v PowerShellu:


# Nastavení cesty ke složce
$folderPath = "C:\Cesta\K\Složce"

# Nastavení časového bodu
$since = Get-Date "2024-01-01 00:00:00"

# Výpis cesty (volitelně)
Write-Host "Kontroluji složku:" $folderPath

# Hledání souborů změněných od daného data
Get-ChildItem -Path $folderPath -Recurse -File |
    Where-Object { $_.LastWriteTime -ge $since } |
    Select-Object FullName, LastWriteTime

 Co můžete upravit:

ProměnnáVýznamPříklad
$folderPathCesta ke složce, kterou chcete zkontrolovat"D:\Data\Projekty"
$sinceDatum a čas, od kterého mají být změny sledovány"2024-07-01 18:00:00"

Poznámka:

Skript nemění žádná data – pouze čte metadata o změnách. Přesto je vhodné ho spouštět s administrátorskými oprávněními, zejména pokud chcete přistupovat k chráněným složkám.

Bonus: Export do CSV

Pokud si chcete výstup uložit nebo analyzovat později, můžete jej jednoduše exportovat do CSV:


... | Export-Csv "C:\Logs\ZmeneneSoubory.csv" -NoTypeInformation -Encoding UTF8

Takto získáte přehledný report všech změněných souborů pro další zpracování nebo archivaci.

 Shrnutí:

Tento PowerShell skript se hodí do výbavy každého správce systému nebo IT specialisty. Jednoduchý, rychlý a spolehlivý způsob, jak zjistit, co se ve vašem systému za poslední dobu změnilo.

Sdílená schránka – Kopie odeslaného emailu

Potřeboval jsem zajistit, aby se odeslané zprávy, které byly poslané jménem sdílené schránky, ukládaly i do její složky Odeslaná pošta. Výchozí chování v Exchange Online to neumožňuje – e-mail se standardně ukládá jen do složky odesílatele.

Použil jsem jednoduchý příkaz v PowerShellu přes Exchange Online Management modul:

Connect-ExchangeOnline
set-mailbox -identity gynekologie@unica.cz -messageCopyForSentAsEnabled $true

Tímto jsem povolil ukládání kopie odeslaných zpráv do sdílené schránky v případě použití Send As.

Funguje to i pro parametry -MessageCopyForSendOnBehalfEnabled, pokud řeším zástupce. Vždycky je potřeba mít připojený modul a práva k dané schránce.

Vytvoření zástupce na UWP app (Teams)

Potřeboval jsem zobrazit uživatelům na ploše zástupce na nové Teams.
Hodí se i pro případy golden image u VDI, nebo lze taky využít v task scheduleru, popř. jako parametr v PowerShell skriptu
Abych zjistil název aplikace a ID, použil jsem PowerShell:

Get-StartApps | Sort-Object Name | Format-Table -AutoSize

Pak jsem přes Win + R spustil příkaz:

explorer shell:appsfolder\MSTeams_8wekyb3d8bbwe!MSTeams

Tím se aplikace otevře přímo. Funguje to i na ostatní UWP aplikace, pokud znáš název z Get-StartApps.

Pokud chci vytvořit zástupce, stačí jako cestu nastavit:

C:\Windows\explorer.exe shell:appsfolder\MSTeams_8wekyb3d8bbwe!MSTeams