Im Zuge unserer EDV-Umstellung (unter anderem auch Domänenwechsel) wurde unser WSS 3.0 auch migriert:
Altes System: WSS 3.0 auf Windows 2003 und SQL 2000neues System: WSS 3.0 auf Windows 2008 64-bit und SQL 2008
Migration wurde mit stsadm -export und -import durchgeführt. Benutzerlogins wurden nicht übernommen.
Nun haben wir leider folgendes Phänomen:
In einer neu erstellen Dokumentenbibliothek darf man Dokumente hochladen und sogar auch löschen. Allerdings ist kein User (nicht mal der Websitesammlungs-Administrator) dazu berechtigt, die Dokumenteneigenschaften zu verändern.Dies passiert allerdings nur in neu erstellten Bibliotheken. In Bibliotheken, die es schon am alten System gegeben hat, funktioniert alles einwandfrei.
Hat jemand eine Idee, woran das liegen könnte?
Hi,
ja, wir hatten genau das selbe Problem, mit diversen anderen Problemen. Werde über all diese Themen die nächsten Tage auch noch mal bloggen, da dir das jetzt nicht hilft, hier die Lösung:
Ich copy und paste mal aus meinem Bericht, für den Blog wird das noch umformuliert:
b. Dokumenteneigenschaften einer Datei innerhalb einer neuen Dokumentenbibliothek
Der nächste Fehler trat auf sobald eine neue Dokumentenbibliothek erstellt worden ist, dort ein Dokument hochgeladen wurde und im Anschluss versucht wurde die Dokumenteneigenschaften zu bearbeiten. Selbst der Farmadministrator durfte augenscheinlich diese Änderung nicht durchführen.
Mehrere Internetergebnisse wiesen auf eine Installation von Hotfixes aus dem Monat Februar diesen Jahres, da das SP2 aber im Mai erschienen ist und kumulativ ist sollten sich diese Hotfixes eigentlich schon auf unserem Server befinden. Resultat war ein geöffneter Microsoft Case, das Resultat nach einer Woche sind zwei verschiedene Skripte die zum einen bereits „defekte“ Bibliotheken wieder reparieren und zum anderen das Problem bei Neuerstellung unterbinden, hier die Skripte:
- Der erste Abschnitt sorgt dafür das neu erstellte Listen kein Problem mehr darstellen.
- Der zweite Abschnitt sorgt dafür das bereits erstellte Listen kein Problem mehr darstellen.
While the above fix prevents the issue. If you find a list that is broken the follow code needs to be edited and ran at the site collection level to prevent any new lists on the site having the problem:void FixWebField(){string RenderXMLPattenAttribute = "RenderXMLUsingPattern";string weburl = "<<http://localhost/>>";SPSite site = new SPSite(weburl);SPWeb web = site.OpenWeb();SPField f = web.Fields.GetFieldByInternalName("PermMask");string s = f.SchemaXml;Console.WriteLine("schemaXml before: " + s);XmlDocument xd = new XmlDocument();xd.LoadXml(s);XmlElement xe = xd.DocumentElement;if (xe.Attributes[RenderXMLPattenAttribute] == null){XmlAttribute attr = xd.CreateAttribute(RenderXMLPattenAttribute);attr.Value = "TRUE";xe.Attributes.Append(attr);}string strXml = xe.OuterXml;Console.WriteLine("schemaXml after: " + strXml);f.SchemaXml = strXml;}
Then edit the following code and target you broken list(s) it should correct the targeted list to no longer have the access denied error message.void FixField(){string RenderXMLPattenAttribute = "RenderXMLUsingPattern";string weburl = "<<http://localhost/>>";string listName = "test2";SPSite site = new SPSite(weburl);SPWeb web = site.OpenWeb();SPList list = web.Lists[listName];SPField f = list.Fields.GetFieldByInternalName("PermMask");string s = f.SchemaXml;Console.WriteLine("schemaXml before: " + s);XmlDocument xd = new XmlDocument();xd.LoadXml(s);XmlElement xe = xd.DocumentElement;if (xe.Attributes[RenderXMLPattenAttribute] == null){XmlAttribute attr = xd.CreateAttribute(RenderXMLPattenAttribute);attr.Value = "TRUE";xe.Attributes.Append(attr);}string strXml = xe.OuterXml;Console.WriteLine("schemaXml after: " + strXml);f.SchemaXml = strXml;}
Summa Sumarum:
Service Pack 2 installieren, falls das schon installiert worden ist die oben angegebenen Scripte verwenden um das Problem a) für zukünftige Bibliotheken zu beheben und b) für bereits "defekte" Bibliotheken anzuwenden.
Viele Grüße
Daniel Drinhausen
Mein Blog: Sharepointers.de
Hallo!
Danke für die rasche und vor allem hilfreiche Antwort! Ich habe vorher viel gegoogelt und auch mit einigen Experten gesprochen, denen war das Problem aber allen nicht bekannt.
Das Service Pack 2 ist bei uns schon installiert - das hilft also nichts.
Wie und wo spiele ich den diese 2 Scripts am besten ein?
Hallo,
entweder die falschen Experten oder aber, was wahrscheinlicher ist, es liegt daran das dieses Problem nicht so oft auftritt sondern nur in wenigen Fällen.
Diese Scripte am besten mit Visual Studio mal bauen und dann direkt auf dem Server ausführen, hast du irgendendjemanden da der entwickelt? Der weiß damit was anzufangen! :-)
ich habe leider niemanden, der sich mit WSS Programmierung auskennt. Meine Visual Studio Kenntnisse beschränken sich auf normale ASP.NET Websiteprogrammierung.
Kannst du mir bitte eine kurze Anleitung geben, wie ich dieses Script einspielen kann?
Erstelle ein neues Projekt vom Typ C# Konsolenanwendung und kopiere den Code in die Klasse Program. Rufe die gewünschten Funktionen in void Main() auf. Nicht vergessen die URL anzupassen.
Hallo ,
wir haben den Fehler auch nach restore auf test system und export/import (2007 cumm patch October), wenn man googel scheinen viele das Problem m zu haben. Sich selber ein V. Studio package als Lösung zu bauen als Lösung ist ganz schön schlecht als Support Lösung.
Das Sp2 das Problem nicht fixt kam auch schon aus vielen Bereichen zurück.
Gruß
http://support.microsoft.com/kb/971351/