28. 5. 2016

MS Outlook - jak poslat email všem, kromě jedné osoby

Vezměte si, že má někdo narozeniny a vy jako kolegové se chcete tajně domluvit co mu koupíte. Při pár lidech to jde udělat osobně, ale když vás je o hodně více, tak nejjednodušší cesta je email.
Jak ale napsat email všem, kromě toho kdo má narozeniny? Vypisovat všechny osoby bylo příliš zdlouhavé a hlavně zbytečné.
Vytvořte si Nový email a najděte si skupinu se všemi lidmi. Poté klikněte na ikonku plus vedle ní.


Nyní se vám zobrazí všichni adresáti a vy z nich můžete odmazat toho, kterému nechcete email poslat.

Powershell - povolení Remote Desktop

Bohužel na povolení zatím neexistuje jednoduchý cmdlet a proto je nutné to udělat více kroků.


1) Povolte Remote Desktop

set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'-name "fDenyTSConnections" -Value 0


2) Povolte příchozí komunikaci RDP na firewallu

Enable-NetFirewallRule -DisplayGroup "Remote Desktop"


3) Povolte zabezpečenou RDP autentizaci

set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "UserAuthentication" -Value 1

Že je povoleno, se můžete ujistit zde

8. 5. 2016

Databázové transakce

Pokud potřebujete provést v MS SQL příkaz, který nebude proveden dokud ho nepotvrdíte, použijte databázovou transakci.
Ta zajistí, že se příkaz provede, ale "nezapíše", dokud vy to neřeknete anebo než se odpojíte od databáze.

Jestliže se rozhodnete transakce využívat, vždy před script zapište Begin transaction. To zajistí, že příkaz nebude zapsán, dokud jej nepotvrdíte nebo neodmítnete.

Pozor ale na jednu věc, dokud neuděláte commit nebo rollback, tak nikdo jiný nemůže provádět další příkazy! Tzn. že si databázi uzamknete pro sebe. Jakmile provedete commit či rollback, ostatní již mohou začít zase využívat tyto prostředky.

Pokud příkaz, chcete prvést, bude vypadat následovně

Begin transaction
- - - váš SQL script - - -
Commit transaction

Pokud se ale rozhodnete příkaz nakonec neprovést a změny chcete vrátit, bude vypadat takto

Begin transaction
- - - váš SQL script - - -
Rollback transaction

Více se můžete dozvědět i zde v angličtině: https://www.youtube.com/watch?v=shkt9Z5Gz-U

Powershell - proč nelze spouštět scripty?

Pokud chcete na svém počítači spouštět Poweshell scripty, je potřeba ještě předtím spustit jeden, kterým toto povolíte.

set-executionpolicy remotesigned

Celá syntaxe pak vypadá takto

Set-ExecutionPolicy [-ExecutionPolicy] <ExecutionPolicy> [[-Scope] <ExecutionPolicyScope> ] [-Force] [-Confirm] [-WhatIf] [ <CommonParameters>]

A více informací o tomto scriptu lze najít přímo na webu Microsoftu.

Powershell scripty jsou standardně ve Windows prostředí zakázané. Proč? Protože s nimi lze hodně uškodit, pokud nevíte co děláte, anebo si stáhnete nějaký z internetu.

Powershell - zabalení nebo rozbalení archivu

Powershell standardně archivuje vše do ZIP souboru. To samé platí i pro rozbalení. Pokud byste chtěli využít jiný archivátor, určitě to možné je, nicméně v tomto článku se budu zabívat pouze tím, co je v Powershellu nativní.

Powershell verze 5

Ve verzi 5 je to jednodušší, protože je zde implementován CMDlet, který toto provádí napřímo a nemusíte tedy volat žádné další pomocníky.


Archivace složky c:\Temp\Test archivace

Compress-Archive -Path 'C:\Temp\Test archivace' -DestinationPath C:\Temp\archiv.zip


Přidání souborů do již existujícího archivu
Pozor, soubory se stejným názvem budou v archivu přepsány!

Compress-Archive -Path C:\Soubry\*.txt -Update -DestinationPath C:\Temp\archiv.zip


Rozbalení archivu

Expand-Archive -Path C:\Temp\archiv.zip -DestinationPath C:\Temp

Popis od MS najdete zde.


Powershell verze 4

V této verzi je to o něco složitější, ale nicméně také funkční.


Nejprve je potřeba přidat potřebný objekt. Stačí jej přidat pouze jednou před prvním spuštěním scriptů.

Add-Type -assembly "system.io.compression.filesystem"


Rozbalení archivu
Následně vytvořit proměnné s cestami

$Zip = 'C:\Temp\archiv.zip'
$Destination = 'C:\Temp\Test archivace'

A jako poslední zavolat třídu pro rozbalení
[io.compression.zipfile]::ExtractToDirectory($Zip, $Destination)

Zabalení složky
Znovu si vytvoříme proměnné s cestami

$Slozka = 'C:\Temp\Test archivace'
$Zip = 'C:\Temp\archiv.zip'

A zavoláme znovu třídu

[io.compression.zipfile]::CreateFromDirectory($Slozka, $Zip)

Popis třídy ZipFile je zde.