ISPStsadmCommand.Run - Méthode
Exécute l'opération spécifiée. Cette méthode est désapprouvée et ne peut pas pris en charge dans les futures versions de SharePoint Foundation. Pour les opérations de ligne de commande personnalisée, consultez l'espace de noms Microsoft.SharePoint.PowerShell .
Espace de noms : Microsoft.SharePoint.StsAdmin
Assembly : Microsoft.SharePoint (dans Microsoft.SharePoint.dll)
Syntaxe
'Déclaration
Function Run ( _
command As String, _
keyValues As StringDictionary, _
<OutAttribute> ByRef output As String _
) As Integer
'Utilisation
Dim instance As ISPStsadmCommand
Dim command As String
Dim keyValues As StringDictionary
Dim output As String
Dim returnValue As Integer
returnValue = instance.Run(command, keyValues, _
output)
int Run(
string command,
StringDictionary keyValues,
out string output
)
Paramètres
command
Type : System.StringLe nom de l'opération personnalisée.
keyValues
Type : System.Collections.Specialized.StringDictionaryLes paramètres, le cas échéant, qui sont ajoutés à la ligne de commande.
output
Type : System.StringUne chaîne de sortie, si nécessaire.
Valeur renvoyée
Type : System.Int32
Un Int32 qui peut être utilisé pour signaler le résultat de l'opération. Pour un fonctionnement correct avec STSADM, utilisez les règles suivantes lors de l'implémentation.
Renvoie 0 en cas de succès.
Retourner GeneralError (-1) pour toute erreur autre que de syntaxe.
Retourner SyntaxError (-2) pour une erreur de syntaxe.
Si 0 est retourné, STSADM transmet output, si elle n'est pas une référence Null (Rien dans Visual Basic), dans la console.
Lorsque SyntaxError est retourné, STSADM appelle GetHelpMessage et sa valeur de retour est transmis en continu à la console et de flux de données output, si elle n'est pas une référence Null (Rien dans Visual Basic), vers stderr (erreur standard). Pour obtenir le contenu de stderr dans du code managé, utilisez Error.
Lors de toute autre valeur est retournée, STSADM transmet output, si elle n'est pas une référence Null (Rien dans Visual Basic), à stderr.
Remarques
Avertissement
Cette méthode est documentée uniquement pour fournir une assistance au dépannage des extensions existantes de STSADM.EXE. Ne créez pas de nouvelles extensions. Au lieu de cela, étendre PowerShell. Consultez l'espace de noms Microsoft.SharePoint.PowerShell .
Chaque membre de keyValues est une paire composée d'un nom de paramètre (qui ne peut pas être une référence Null (Rien dans Visual Basic)) suivi d'une valeur (qui peut être une référence Null (Rien dans Visual Basic)).
Cette méthode est appelée lorsque l'utilisateur tape la commande suivante à l'invite du système, où myOperation est le nom de votre opération personnalisée et parameters est l'ensemble des paires paramètre/valeur. Chaque paramètre commence par un «-» et est séparé de sa valeur, le cas échéant, par un espace.
stsadm -o myOperation [parameters]
S'il existe des restrictions sur la combinaison de paramètres ou des valeurs de paramètre qui peuvent être utilisés, ces limitations doivent être appliquées par votre implémentation.
Pensez à expliquer ces restrictions avec le paramètre output chaque fois qu'ils sont violées. Ce paramètre est transmis en continu à stderr lorsque, Run renvoie une valeur différente de 0.
Par exemple, supposons qu'une opération est conçue pour fonctionner sur des sites qui peuvent ou ne peuvent pas être optimisées pour l'affichage sur des appareils mobiles, tels que les téléphones portables Web. Une telle opération peut tester pour la détection des périphériques mobiles avec un paramètre « ismobile » ayant « true » ou « false » en tant que valeurs. L'opération peut nécessiter également un paramètre « renderinglimit » qui définit la taille maximale d'une chaîne de message à chaque fois que « ismobile » est « true ». Si un utilisateur ne parvient pas à inclure une valeur « renderinglimit » sur une ligne de commande qui définit « ismobile » pour true, Run doit retour une valeur autre que 0 ou SyntaxError (-2) et la chaîne retournée par le paramètre output doit spécifier que lorsque « ismobile » a la valeur true, « renderinglimit » doit être présente et définie sur une valeur.
Exemples
L'exemple suivant montre une implémentation de Run pour une opération qui détaille les fonctionnalités d'un site. Notez que, étant donné que la classe personnalisée dans cet exemple crée uniquement une nouvelle opération, l'instruction switch (Select Case dans Visual Basic) doit tenir compte pour seulement cette opération ("enumfeatures") et le cas de default (Else dans Visual Basic). Si plus d'une nouvelle opération était en cours de définition, l'instruction case devez traiter chaque valeur possible de command.
using System;
using System.Collections.Specialized;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.StsAdmin;
namespace MS.Samples.SharePoint
{
public class SimpleCommandHandler : ISPStsadmCommand
{
//GetHelpMessage() implementation not shown.
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;
}
}
}
Imports System
Imports System.Collections.Specialized
Imports System.Text
Imports Microsoft.SharePoint
Imports Microsoft.SharePoint.StsAdmin
Namespace MS.Samples.SharePoint
Public Class SimpleCommandHandler
Implements ISPStsadmCommand
'GetHelpMessage() implementation not shown.
Public Function Run(ByVal command As String, ByVal keyValues As StringDictionary, ByRef output As String) As Integer
command = command.ToLowerInvariant()
Select Case command
Case "enumfeatures"
Return Me.EnumerateFeatures(keyValues, output)
Case Else
Throw New InvalidOperationException()
End Select
End Function
Private Function EnumerateFeatures(ByVal keyValues As StringDictionary, ByRef output As String) As Integer
If Not keyValues.ContainsKey("url") Then
Throw New InvalidOperationException("The url parameter was not specified.")
End If
Dim url As String = keyValues("url")
Dim features As SPFeatureCollection = Nothing
Dim web As SPWeb = Nothing
Try
Dim site As New SPSite(url)
web = site.OpenWeb()
features = web.Features
Catch e As Exception
Throw New InvalidOperationException("Error retrieving url '" + url + "'. Please check the format of your url, and ensure that the site exists. Details: " + e.Message)
End Try
Dim sb As New StringBuilder()
sb.AppendLine("Features at '" + web.Url + "':" & Chr(10) & "")
For Each feature As SPFeature In features
sb.AppendLine(feature.Definition.DisplayName + " (" + feature.DefinitionId + ")")
Next
output = sb.ToString()
Return 0
End Function
End Class
End Namespace
Voir aussi
Référence
Microsoft.SharePoint.StsAdmin - Espace de noms
Autres ressources
How to: Extend the STSADM Utility
l'outil de ligne de commande Stsadm.exe (Office SharePoint Server)