Články
PowerShell - Ovládání aplikací a další použití
Microsoft Word
Musíme mít nainstalovánu aplikaci MS Word. Potom můžeme použít ProgID od COM objektu Wordu a vytvořit objekt. Následně můžeme provádět řadu operací, jako otevírat dokumenty, upravovat obsah, nastavovat parametry (a to i některé pro Outlook). Vše se může dít skrytě nebo veřejně (v příkladu pomocí visible).
$MSWord = New-Object -ComObject Word.Application
$MSWord.Visible = $true
# můžeme otevřít existující soubor nebo vytvořit nový
# $MSWord.Documents.Open("d:\test.docx")
$WDoc = $MSWord.Documents.Add()
$WPar = $WDoc.Paragraphs.Add()
$WPar.Range.Text = "Test"
$WDoc.SaveAs([ref]"d:\test.docx")
$MSWord.Quit()
Microsoft Outlook
Některé nastavení Outlooku můžeme provést přes objekt Word.Application. V příkladu je nastavení podpisu pro nové správy (musí existovat podpis s tímto jménem).
$MSWord = New-Object -ComObject Word.Application $MSWord.EmailOptions.EmailSignature.NewMessageSignature = "podpis" $MSWord.Quit()
Pro některé funkce máme objekt Outlook.Application. Příklad přistoupí ke kalendáři a vrátí první záznam (standardně je vyžadováno potvrzení přístupu v aplikaci Outlook).
$outlook = New-Object -ComObject Outlook.Application
$mapi = $outlook.GetNamespace("MAPI")
$calendar = $mapi.GetDefaultFolder("olFolderCalendar")
$calendar.Items.GetFirst()
Internet Explorer
Stejným způsobem můžeme pracovat s Internet Explorerem.
$ie = New-Object -ComObject InternetExplorer.Application
$ie.Visible = $true
$ie.Navigate("www.samuraj-cz.com")
$ie.Quit()
Shell
Objekt Shell.Application nám zařídí přístup do systému (shellu). Uvedené příklady provedou - otevření Windows Explorer se zadanou složkou, otevření adresy v přiřazeném prohlížeči, minimalizuje všechna otevřená okna, zobrazí dialog pro vypnutí systému.
$shell = New-Object -ComObject Shell.Application
$shell.Explore("c:\")
$shell.Open("http://www.samuraj-cz.com")
$shell.MinimizeAll()
$shell.ShutdownWindows()
Active Directory
Pro pohodlný přístup k AD můžeme použít modul Active Directory Module for Windows PowerShell. To ale znamená, že na počítači, kde chcem spustit skript, musí být nainstalovaný. V některých případech to nemůžeme zajistit, ale pokud na stanicích máme .NET Framework, tak můžeme použít jeho možností. Ten obsahuje System.DirectoryServices Namespace, kde jsou třídy System.DirectoryServices.DirectorySearcher a System.DirectoryServices.DirectoryEntry, které slouží k přístupu k AD DS.
V příkladu vytvoříme instanci třídy System.DirectoryServices.DirectorySearcher, zadáme dotaz na vyhledání uživatele (aktuálně přihlášeného do systému, využijeme proměnnou prostředí) a zobrazíme jeho jméno a email. Použití cmdletu z Active Directory modulu je jednodušší, ale i tato metoda je funkční.
$Searcher = New-Object System.DirectoryServices.DirectorySearcher $Searcher.Filter = "(&(objectCategory=User)(samAccountName="+$Env:username+"))" $ADUser = $Searcher.FindOne().GetDirectoryEntry() $ADUser.DisplayName $ADUser.mail
Druhý příklad ukazuje vypsání seznamu doménových kontrolerů. A možností je samozřejmě mnohem více.
$domain = [System.DirectoryServices.ActiveDirectory.Domain]::getcurrentdomain() $domain.FindAllDomainControllers() | FT Name,SiteName,Roles -AutoSize
Související články:
PowerShell
- PowerShell - Active Directory [14.11.2010 13:13]
- PowerShell - Exchange server [19.11.2010 08:45]
- PowerShell - Windows [12.12.2010 18:00]
- PowerShell - Ovládání aplikací a další použití [09.01.2011 18:59] právě čtete
- Exchange Web Services a PowerShell [13.01.2011 11:00]
- Active Directory Recycle Bin [31.03.2011 15:48]
- Automatizovaná kontrola prostředí pomocí PowerShellu [13.06.2011 17:35]
- Powershell - poslední přihlášení počítače či uživatele [06.09.2011 14:44]
- Exchange Server, Outlook a certifikáty v GALu [27.12.2011 14:48]
Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže. Pokud chcete poradit s nějakým problémem či diskutovat na nějaké téma, tak použijte fórum.

Komentáře
Zatím tento záznam nikdo nekomentoval.