Add-PsSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue -WarningAction SilentlyContinue $startWeb = "http://projektportal/" #Web unter dem alle anderen Subsites durchsucht werden sollen $tListName = "Tasks" #Name der Liste in der der Content Type verwendet wird $ctName = "Task" #Name des Content Types für den das Formular entferne werden soll $subSites = ((Get-SPWeb $startWeb).Site).allwebs | ?{$_.url -like "$startWeb*"} foreach($subSite in $subSites) { Write-Host $subSite.url $tList = $subSite.Lists[$tListName] if($tList){ $ct = $tList.contenttypes[$ctName] if($ct){ if ($ct.ResourceFolder.Properties["_ipfs_infopathenabled"] -eq "True"){ #Die Verwendung des InfoPath Formulars für den Content Type deaktivieren $ct.resourcefolder.Properties._ipfs_infopathenabled = "False" #Alle FormUrls zurücksetzen, ansonsten wird noch immer auf die InfoPath Formulare verlinkt $ct.NewFormUrl = "" $ct.EditFormUrl = "" $ct.DisplayFormUrl = "" #Das .xsn File für das Formular und die .aspx Files zum #Darstellen der InfoPath Formulare entfernen (editifs.aspx, usw.) $folderName = $subSite.url + "/" + $ct.ResourceFolder.URL $folder = $subSite.getFolder($folderName) for ($i = $folder.Files.count -1; $i -gt -1; $i--) { $folder.Files[$i].delete() } #Änderungen am Content Type speichern $ct.resourcefolder.update() $ct.update() } } else { Write-Host "Content Type" $ctName "konnte nicht gefunden werden" } } else { Write-Host "Liste" $tListName "konnte nicht gefunden werden" } $subSite.dispose() }