Compartilhar via


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.

  1. Crie uma classe que implementa a interface ISPStsadmCommand T:Microsoft.SharePoint.StsAdmin.ISPStsadmCommand.

  2. Informe STSADM sobre sua extensão por registrar a classe e o assembly.

Criar uma classe que implementa ISPStsadmCommand

  1. Inicie um projeto Class Library Visual Studio.

  2. Adicione usingMicrosoft.SharePoint e Microsoft.SharePoint.StsAdmin.

  3. 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).

  4. Use um nome classe que expressa o comum denominador das novas operações STSADM que você vai ser criando; de exemplo, "SortCommands".

  5. A classe deve herdar ISPStsadmCommand; Com uma declaração similar ao seguinte.

    classe pública SortCommands: ISPStsAdminCommand

  6. Escreva a implementação do GetHelpMessage método M:Microsoft.SharePoint.StsAdmin.ISPStsadmCommand.GetHelpMessage(System.String). Consulte o exemplo abaixo.

  7. 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.

  8. Compile o projeto, usando o nome de espaço para nome como o nome do assembly.

  9. Implantar o assembly para o cache global de assemblies; Para exemplo C:\Windows\Assembly.

Registrar a nova classe e assembly

  1. 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>.

  2. 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>
    
  3. 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.)

  4. Substitua valor o símbolo de chave pública para o assembly que você adquirir com estas etapas.

    1. Clique com o botão direito do mouse o assembly na cache global de assemblies e selecione propriedades .

    2. Na guia Geral , copiar o Public Key Token valor.

    3. Colá-lo como o valor para PublicKeyToken.

  5. 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)