Como a: estender o utilitário STSADM
O utilitário STSADM.EXE permite administrativo muitas operações nos serviços SharePoint Windows que não pode ser feito com o aplicativo Central Administration. Consulte o artigo Stsadm.exe command-line tool (Office SharePoint Server) na TechNet Microsoft para obter detalhes. Com Windows SharePoint Services 3.0 Você pode estender a funcionalidade do utilitário de STSADM adicionando suas próprias operações e parâmetros linha de comando com projetos simples usando qualquer linguagem .NET.
Criar tal um projeto requer principal duas tarefas.
Crie uma classe que implementa a interface ISPStsadmCommand T:Microsoft.SharePoint.StsAdmin.ISPStsadmCommand.
Informe STSADM sobre sua extensão por registrar a classe e o assembly.
Criar uma classe que implementa ISPStsadmCommand
Inicie um projeto Class Library Visual Studio.
Adicione usingMicrosoft.SharePoint e Microsoft.SharePoint.StsAdmin.
Use um espaço para nome que segue o padrão
CompanyName.TechnologyName.Feature.SubFeature
. De exemplo,AjaxInc.SharePoint.StsAdmin.CustomCommands
. (Consulte nomes de espaços para nome Names of Namespaces).Use um nome classe que expressa o comum denominador das novas operações STSADM que você vai ser criando; de exemplo, "SortCommands".
A classe deve herdar ISPStsadmCommand; Com uma declaração similar ao seguinte.
classe pública SortCommands: ISPStsAdminCommand
Escreva a implementação do GetHelpMessage método M:Microsoft.SharePoint.StsAdmin.ISPStsadmCommand.GetHelpMessage(System.String). Consulte o exemplo abaixo.
Escreva a implementação do Run método M:Microsoft.SharePoint.StsAdmin.ISPStsadmCommand.Run(System.String,System.Collections.Specialized.StringDictionary,System.String@). Consulte o exemplo abaixo.
Compile o projeto, usando o nome de espaço para nome como o nome do assembly.
Implantar o assembly para o cache global de assemblies; Para exemplo C:\Windows\Assembly.
Registrar a nova classe e assembly
Criar um nomeado arquivo de texto (UTF-8) stsadmcommands. .Xml uniqueID , onde uniqueID é o nome da sua empresa ou alguma outra identificação que garante exclusividade em qualquer servidor no qual a extensão de STSADM pode ser implantado. The XML declaration should read simply
<?xml version="1.0" encoding="utf-8" ?>
. The top-level element is<commands></commands>
.For each custom STSADM operation you created—that is, each possible value of the command parameter of GetHelpMessage and Run—add a
<command/>
element (inside the<commands>
element) to your stsadmcommands file with the following syntax. (Consulte o seguinte exemplo.) Alterar os valores versão e cultura quando necessário.<commands> <command name="command_name" class="fully_qualified_class_name, assembly_name, Version=1.0.0.0, Culture=neutral, PublicKeyToken=value"/> <!-- other command elements, if any --> </commands>
Substituir command_name , fully_qualified_class_name e assembly_name com o apropriado valores. (Não inclua a extensão ".dll" no nome do assembly.)
Substitua valor o símbolo de chave pública para o assembly que você adquirir com estas etapas.
Clique com o botão direito do mouse o assembly na cache global de assemblies e selecione propriedades .
Na guia Geral , copiar o Public Key Token valor.
Colá-lo como o valor para
PublicKeyToken
.
Copie a stsadmcommands. UniqueID arquivo .xml para
C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\CONFIG
.
Exemplo
O seguinte exemplo mostra o arquivo *.cs e, logo abaixo, o stsadmcommands. Arquivo .xml uniqueID para um operação STSADM, personalizado chamado enumfeatures, que lista os recursos em um site.
using System;
using System.Collections.Specialized;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.StsAdmin;
namespace MS.Samples.SharePoint
{
public class SimpleCommandHandler : ISPStsadmCommand
{
public string GetHelpMessage(string command)
{
return "-url <full url to a site in SharePoint>";
}
public int Run(string command, StringDictionary keyValues, out string output)
{
command = command.ToLowerInvariant();
switch (command)
{
case "enumfeatures":
return this.EnumerateFeatures(keyValues, out output);
default:
throw new InvalidOperationException();
}
}
private int EnumerateFeatures(StringDictionary keyValues, out string output)
{
if (!keyValues.ContainsKey("url"))
{
throw new InvalidOperationException("The url parameter was not specified.");
}
String url = keyValues["url"];
SPFeatureCollection features = null;
SPWeb web = null;
try
{
SPSite site = new SPSite(url);
web = site.OpenWeb();
features = web.Features;
}
catch (Exception e)
{
throw new InvalidOperationException("Error retrieving url '" + url + "'. Please check the format of your url, and ensure that the site exists. Details: " + e.Message);
}
StringBuilder sb = new StringBuilder();
sb.AppendLine("Features at '" + web.Url + "':\n");
foreach (SPFeature feature in features)
{
sb.AppendLine(feature.Definition.DisplayName + " (" + feature.DefinitionId + ")");
}
output = sb.ToString();
return 0;
}
}
}
<?xml version="1.0" encoding="utf-8" ?>
<commands>
<command
name="enumfeatures"
class="MS.Samples.SharePoint.SimpleCommandHandler, MS.Samples.SharePoint.CustomStsAdmCommand,
Version=1.0.0.0,
Culture=neutral,
PublicKeyToken=4da7a49e92ae373c"/>
</commands>
Consulte também
Referência
ISPStsadmCommand
GetHelpMessage
Run
Outros recursos
Names of Namespaces
Stsadm.exe command-line tool (Office SharePoint Server)