我正在编写一个PowerShell脚本,该脚本使用SharePoint 2010 New-SPWeb cmdlet创建由Xml文件定义的站点:
<?xml version="1.0" encoding="utf-8" ?>
<siteStructure>
<site>
<url>Corporate</url>
<name>Corporate</name>
<language>1033</language>
<addToQuickLaunch>0</addToQuickLaunch>
<addToTopNav>0</addToTopNav>
<useParentTopNav>1</useParentTopNav>
</site>
</siteStructure>
Run Code Online (Sandbox Code Playgroud)
New-SPWeb cmdlet有三个开关参数:
当Xml中的匹配值为0或$ true时,我无法确定如何仅设置switch参数.
在调用New-SPWeb来设置三个开关参数时,我几乎需要某种内联if语法.
$siteStructureData = [xml](Get-Content .\Data-SiteStructure.xml)
# find the template to use
$webTemplate = Get-SPWebTemplate | Where {$_.Title -like $templateName }
if ($webTemplate)
{
# iterate through and create sites
foreach ($siteToCreate in $siteStructureData.siteStructure.site)
{
"Creating site $webtitle at $URL/$webUrl"
# http://technet.microsoft.com/en-us/library/ff607579.aspx
New-SPWeb `
-Url "$URL/$siteToCreate.url" `
-Name $siteToCreate.name `
-Template $webTemplate `
-Language $siteToCreate.language
# …Run Code Online (Sandbox Code Playgroud) 我有一个SharePoint列表,我正在使用客户端对象模型添加新的ListItems.添加ListItems不是问题,效果很好.
现在我想添加附件.
我以下列方式使用SaveBinaryDirect:
File.SaveBinaryDirect(clientCtx, url.AbsolutePath + "/Attachments/31/" + fileName, inputStream, true);
Run Code Online (Sandbox Code Playgroud)
只要我尝试添加附件的项目已经具有通过SharePoint网站添加的附件而不使用客户端对象模型,它就没有任何问题.
当我尝试将附件添加到没有任何附件的项目时,我会收到以下错误(两者都发生但没有相同的文件 - 但这两个消息始终显示):
The remote server returned an error: (409) Conflict
The remote server returned an error: (404) Not Found
我想我可能需要先为这个项目创建附件文件夹.当我尝试以下代码时:
clientCtx.Load(ticketList.RootFolder.Folders);
clientCtx.ExecuteQuery();
clientCtx.Load(ticketList.RootFolder.Folders[1]); // 1 -> Attachment folder
clientCtx.Load(ticketList.RootFolder.Folders[1].Folders);
clientCtx.ExecuteQuery();
Folder folder = ticketList.RootFolder.Folders[1].Folders.Add("33");
clientCtx.ExecuteQuery();
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:
Cannot create folder "Lists/Ticket System/Attachment/33"
我拥有SharePoint站点/列表的完全管理员权限.
我有什么想法可能做错了吗?
谢谢,Thorben
我们需要将多个用户添加到多个SharePoint组.
有没有人有一个如何使用power shell将用户添加到sharepoint组的示例.
我正在使用SharePoint 2010.我在该库中有一个文档库ID和文档ID.我没有web文件库所在的站点.现在我必须得到文档的完整URL在运行时.我怎么能得到它.我尝试了以下内容.
string filepath = currentList.DefaultViewUrl + "/" + sListItem.Url;
Run Code Online (Sandbox Code Playgroud)
请回答这个问题.
我将我的sp 2007升级到sp 2010,我有一个表单库有超过5000个项目.表单库过滤器项的默认视图,仅向用户显示10-20项.
升级后sp2010所有用户在转到表单库期待网站集管理员时都会遇到以下错误.
我认为这是一个许可问题,但我找不到任何解决这个问题的来源,有什么想法吗?
无法显示此视图,因为它超出了管理员强制执行的列表视图阈值(5000项).
要查看项目,请尝试选择其他视图或创建新视图.如果您没有足够的权限为此列表创建视图,请要求管理员修改视图,使其符合列表视图阈值.
我在Visual Studio 2010中创建了一个新的sharepoint项目,并且错误地将它作为沙盒解决方案,在完成我的开发之后它不会构建,因为我正在向控制模板添加项目,并且它说我需要将项目作为场解决方案,所以如何更改eproject类型?
我在Sharepoint 2010中创建了一个Webpart,我需要将"Chrome Type"属性设置为"None"值.
我一直在寻找各种方法来强制组合框为"无",或覆盖在C#类的"Chrome类型",但我没有发现任何方式做他们.设置此属性的最佳方法是什么?

我有一个循环遍历文档库,如下例所示.
foreach (SPListItem item in DocumentLibrary)
{
}
Run Code Online (Sandbox Code Playgroud)
如何判断SPListItem文件是文件还是文件夹?
我最近改用了LABjs在SharePoint Webparts(2010)中加载脚本.这样做的主要原因是,如果将多个Web部件添加到同一页面,则不要多次向页面加载相同的库(如jquery和jquery.ui).这样,他们每个人都可以单独指定其依赖关系,而无需警告已经或可能添加了哪些其他Web部件.
两者LABjs和另一个包含脚本链的文件都是通过<script>Webpart标记底部的标记加载的.
10次中有9次,Javascript执行没有任何问题.不过,每隔一段时间,就会抛出一个异常,说明TypeError: $(...).button is not a function.
即使页面上只有一个Webpart并且似乎与浏览器无关(在页面强制使用FireFox 38,Chrome 43和IE 11/IE 8中测试),也会发生这种情况.
链看起来像这样(为清晰起见编辑):
$LAB.setOptions({Debug:true})
.script("../js/jquery-1.11.3.min.js").wait()
.script("../js/jquery-migrate-1.2.1.min.js").wait()
.script("../js/jquery-ui.min.js").wait()
.script("../js/core.js")
.wait(function(){
jQuery(function() {
init(); // The jQuery UI .button() call
});
})
.script("../js/jquery.multiselect.min.js").wait()
.script("../js/jquery.multiselect.filter.min.js")
.script("../js/rte/jquery.rte.js").wait()
.script("../js/rte/jquery.rte.tb.js")
.script("../js/rte/jquery.ocupload-1.1.4.js")
.wait(function () {
jQuery(function() {
// Some DOM-dependant code lives here
});
});
Run Code Online (Sandbox Code Playgroud)
这是调试器输出的内容(为清晰起见,也进行了编辑):
start script load (ordered async): ../js/jquery-1.11.3.min.js
start script load (ordered async): ../js/jquery-migrate-1.2.1.min.js
start script load (ordered async): …Run Code Online (Sandbox Code Playgroud) 文件夹工作:
我现在知道如何设置库中文件夹的权限:
public void ChangeItemPermissions()
{
_SharePoint.ClientContext _ClientContext = new _SharePoint.ClientContext("https://sharepoint.oshirowanen.com/sites/oshirodev/");
_ClientContext.Credentials = new NetworkCredential("user", "pass", "oshirowanen.com");
_SharePoint.Principal user = _ClientContext.Web.EnsureUser(@"oshirowanen\tom");
var _List = _ClientContext.Web.Lists.GetByTitle("Library1");
var _Item = _List.LoadItemByUrl("/sites/oshirodev/Library1/Folder1");
var roleDefinition = _ClientContext.Site.RootWeb.RoleDefinitions.GetByType(_SharePoint.RoleType.Reader);
var roleBindings = new _SharePoint.RoleDefinitionBindingCollection(_ClientContext) { roleDefinition };
_Item.BreakRoleInheritance(false,true);
_Item.RoleAssignments.Add(user, roleBindings);
_ClientContext.ExecuteQuery();
}
Run Code Online (Sandbox Code Playgroud)
文件尝试:
我已经尝试将文件名添加到此行:
var _Item = _List.LoadItemByUrl("/sites/oshirodev/Library1/Folder1/File1.docx");
注意(/File1.docx)添加到上面一行的末尾.
收到错误:
但这只是一个错误:
System.NullReferenceException was unhandled
HResult=-2147467261
Message=Object reference not set to an instance of an object.
Source=ItemPermissions
StackTrace:
at ItemPermissions.Form1.ChangeItemPermissions() in c:\Users\Oshirowanen\Documents\Visual Studio 2013\Projects\ItemPermissions\ItemPermissions\Form1.cs:line 46 …Run Code Online (Sandbox Code Playgroud) sharepoint-2010 ×10
sharepoint ×6
c# ×2
powershell ×2
web-parts ×2
.net ×1
attachment ×1
client ×1
csom ×1
javascript ×1
jquery ×1
jquery-ui ×1
labjs ×1
listitem ×1
url ×1