ist eigentlich kein Problem, oder?
So etwas macht man doch mit den Exchange Cmdlets wird der Skriptingprofi antworten.
Aber die (ur-)alte Hürde, das der Typ des Ordners, z.B. Kalender oder Kontakte, nicht angegeben werden kann, haben diese Cmdlets geerbt :-(
Also greift der Skripter zu Outlook und findet leider sehr wenig Vorlagen (nochmal :-()
In der MSDN findet man die Add Methode für Ordner und eine Liste der Konstanten für Outlook. Dabei fällt auf, das anders als bei den Server Cmdlets bei der Automatisierung über Outlook auch der Typ des Ordners angegeben werden kann. Die Typen entsprechen der Liste, die Outlook bei der manuellen Erzeugung von öffentlichen Ordnern anbietet.
Mit diesen Grundlagen und ein wenig Outlook-Automatisierung kommt dann der folgende Ansatz zustande.
Ihr findet das Skript auch im Bereich Downloads/Skriptsammlung.
Gruss
Rolf
#------------------------------------------------------------------------------------------------
# CreatePFwithOutlook.ps1
# Rolf Masuch rolf AT Powershell DASH ag DOT de
# 15.06.2008
#------------------------------------------------------------------------------------------------
# create Public Folders with Outlook and specify name, folder type and parentfolder
cls
# Outlook Constants
$olPublicFoldersAllPublicFolders = 18
$olFolderTasks = 13
$olFolderInbox = 6
$olFolderJournal = 11
$olFolderCalendar = 9
$olFolderContacts = 10
$olFolderNotes = 12
# other variables
$objParentFolder = "Consulting"
# init Com Object
$outlook = new-object -ComObject Outlook.Application
$ns = $outlook.GetNamespace("MAPI")
# navigate to the folder "All Public Folders"
$olObjAllPublicRootFolders = $ns.GetDefaultFolder($olPublicFoldersAllPublicFolders)
# get into the folder "demofolder"
$olObjAllPublicRootFolders.Folders | %{
if ($_.name -eq $objParentFolder) { # find the parent folder
$_.folders.add("1_DemoTasks", $olFolderTasks)
Write-Host "Folder 1_DemoTasks created"
$_.folders.add("2_DemoMail", $olFolderInbox)
Write-Host "Folder 2_DemoMail created"
$_.folders.add("3_DemoJournal", $olFolderJournal)
Write-Host "Folder 3_DemoJournal created"
$_.folders.add("4_DemoCalendar", $olFolderCalendar)
Write-Host "Folder 4_DemoCalendar created"
$_.folders.add("5_DemoContacts", $olFolderContacts)
Write-Host "Folder 5_DemoContacts created"
$_.folders.add("6_DemoNotes", $olFolderNotes)
Write-Host "Folder 6_DemoNotes created"
}
}
Write-Host ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# clean up
$objParentFolder = $null
$olObjAllPublicRootFolders = $null
$ns = $null
$outlook = $null
#------------------------------------------------------------------------------------------------