Užitečné kousky powershellu
Administrace Exchange serveru - 33. část
Powershell drobky. Aneb střípky, které mi usnadňují život.    

Nedávno jsem hledal, jak se v powershellu dělá něco, o čem jsem věděl, že už jsem to použil. Některé věci člověk občas potřebuje, ale ne zase tak často, aby si je pamatoval. Tak dneska nabídnu několik malých ... ani se nedá říct scriptů .... spíš konstrukcí, které někdy můžou ulehčit život. Nejsem autor všech těch kousků. Některé jsem pouze upravil. Stejně tak počítám s tím, že si je budete upravovat pro vlastní použití.

Jak změnit časovou zónu pro kalendář mailboxu Meetingroom:

Add-MailboxPermission -Identity Meetingroom -user administrator -AccessRights fullaccess

Set-MailboxRegionalConfiguration -Identity Meetingroom -TimeZone "Tokyo Standard Time"

Remove-MailboxPermission -Identity Meetingroom -user administrator -AccessRights fullaccess

Seznam možností je tady: http://msdn.microsoft.com/en-us/library/ms912391%28v=winembedded.11%29.aspx

Kdo ze členů týmu mě má nastaveno v mailboxu jako delegáta:

Get-DistributionGroupMember "DL My Team" | foreach {Get-MailboxCalendarSettings -Identity $_.Name} | where {$_.ResourceDelegates -like "*Kovar*"} | fl name, resourcedelegates

Použití -filter při hledání recipienta dle e-mail adresy:

$adresa = 'honza@tnx.cz'

$filtr = 'emailaddresses -like "*SMTP:'+$adresa+'*"'

get-recipient -resultsize unlimited -filter $filtr

Hledáme recipienta (příjemce zní divně), který má tuto e-mail adresu, ale nemá ji jako primární. Můžeme použít konstrukci s "| where", ale tohle je efektivnější. Narazil jsem na problémy, že i když byl dotaz na první pohled poskládaný dobře, tak nefungoval. Tento funguje. V tomto případě je adresa zadaná ručně, ale samozřejmě by šlo načítat adresy z CSV nebo dostávat odjinud. Tady jde pouze o to, jak správně poskládat ten filtr.

Změna jakéhokoliv AD atributu pomocí Quest snapinu.:

Import-CSV C:\users.csv | ForEach-Object { Set-QADUser $_.samAccountName -ObjectAttributes @{employeeid=$_.employeeid} }

V příkladu měním employeeid. Data načítám z CSV, kde mám v jednom sloupci SamAccountName a ve druhém EmployeeId. Samozřejmě musíte mít na tom stroji, kde to spouštíte, nainstalováno rozšíření od Questu a načíst snapin. ( add-pssnapin quest.activeroles.admanagement )

Zpracování IIS logů a vygenerování ActiveSync reportů:

$datum = (get-date).adddays(-5)

Get-Childitem C:\inetpub\logs\LogFiles\W3SVC1 | where-object {$_.lastwritetime -gt $datum} | ForEach { Export-ActiveSyncLog -FileName $_.FullName -OutputPath “d:\install” -OutputPrefix $_.Name.Replace(“.log”,”_”) -UseGMT:$true}

V prvním řádku říkám, za jak dlouho chci procházet logy. A pak už do místa specifikováného u -OutputPath vytvářím reporty.

Nastavení oprávnění do kalendáře ve vícejazyčné firmě:

$cal = Get-MailboxFolderStatistics -Identity "Kovar Honza" | where {$_.FolderType -eq "Calendar"}

add-MailboxFolderPermission -identity "honza@tnx.cz:\$($cal.name)" -AccessRights PublishingAuthor -User default

Pokud přepnete mailbox do jiného jazyka, tak se přejmenuje i složka Calendar. V mém případě na "Kalendář". Pokud pracujete pro firmu, která má pobočky po světě a víte, že mají mailboxy v místních jazycích, tak tohle pomůže. Na prvním řádku načtu informace o složce, která má typ Calendar. A na druhém použiju její jméno pro přídání oprávnění. Pokud měníte oprávnění někomu, kdo už nějaké oprávnění na té složce má, tak místo add-mailboxfolderpermission musíte použít set-mailboxfolderpermission.

Export informací o příchozích zprávách z tracking logu do csv:

Get-MessageTrackingLog -Start "11/11/2011 11:00AM" -End "11/11/2011 3:00PM" -Recipient "honza@tnx.cz" -Server EX01 -eventid Receive | select Timestamp, ServerIP, MessageSubject, Sender | export-csv "d:\export\tracking.txt" -encoding UTF8 -NoTypeInformation

Tohle se hodí hlavně ve chvíli, kdy je toho moc a hodí se třeba excel na prohledávání. A nebo když uživatel tvrdí, že mail nedostal a vy potřebujete dokázat, že dostal. UTF-8 se hodí, pokud se používá třeba čeština v názvech mailboxů.

Jak získat informace o SAN discích připojených pomocí volume mount pointů:

Get-WmiObject Win32_Volume -ComputerName Server001 | Select Name, Capacity, FreeSpace, BootVolume, SystemVolume, FileSystem | FT

Pokud máte třeba 20 disků připojených ze SANu, tak místo toho, abyste dávali každému písmeno a dělali z něj disk, tak na jednom disku (anchor disku) vytvoříte strukturu a přimountujete jednotlivé disky do této struktury. Takže budete mít třeba d:\disk01, d:\disk02, d:\disk03, atd. No a pokud potřebujete vědět, jak na tom jsou s místem, tak tohle je přesně ten dotaz.

Poslední aktualizace - Sobota, 19. Listopadu 2011 15:11
 
 
 
Page 1 of 1
© TNX alias Jan Kovář. Původní design stránky byl určen pro CMS Joomla! a vytvořen společností Siteground web hosting