WESL_UserSetting

Cette classe configure le lanceur d’interpréteur de commandes d’application qui démarre en fonction de l’identificateur de sécurité (SID) de l’utilisateur connecté, et configure également l’ensemble de codes de retour et d’actions de retour que le lanceur d’interpréteur de commandes effectue à la fermeture de l’application.

Syntaxe

class WESL_UserSetting {
    [read, write, Required] string Sid;
    [read, write, Required] string Shell;
    [read, write]  Sint32 CustomReturnCodes[];
    [read, write]  Sint32 CustomReturnCodesAction[];
    [read, write] sint32 DefaultAction;

    [Static] uint32 SetCustomShell(
        [In, Required] string Sid,
        [In, Required] string Shell,
        [In] sint32 CustomReturnCodes[],
        [In] sint32 CustomReturnCodesAction[],
        [In] sint32 DefaultAction
    );
    [Static] uint32 GetCustomShell(
        [In, Required] string Sid,
        [Out, Required] string Shell,
        [Out, Required] sint32 CustomReturnCodes[],
        [Out, Required] sint32 CustomReturnCodesAction[],
        [Out, Required] sint32 DefaultAction
    );
    [Static] uint32 RemoveCustomShell(
        [In, Required] string Sid
    );
    [Static] uint32 GetDefaultShell(
        [Out, Required] string Shell,
        [Out, Required] sint32 DefaultAction
    );
    [Static] uint32 SetDefaultShell(
        [In, Required] string Shell,
        [In, Required] sint32 DefaultAction
    );
    [Static] uint32 IsEnabled(
        [Out, Required] boolean Enabled
    );
    [Static] uint32 SetEnabled(
        [In, Required] boolean Enabled);
    );
};

Membres

Les tableaux suivants répertorient toutes les méthodes et propriétés qui appartiennent à cette classe.

Méthodes

Méthodes Description
WESL_UserSetting.SetCustomShell Configure le lanceur d’interpréteur de commandes pour un utilisateur ou un groupe spécifique, en fonction du SID.
WESL_UserSetting.GetCustomShell Récupère la configuration du lanceur d’interpréteur de commandes pour un utilisateur ou un groupe spécifique, en fonction du SID.
WESL_UserSetting.RemoveCustomShell Supprime une configuration du lanceur d’interpréteur de commandes pour un utilisateur ou un groupe spécifique, en fonction du SID.
WESL_UserSetting.GetDefaultShell Récupère la configuration du lanceur d’interpréteur de commandes par défaut.
WESL_UserSetting.SetDefaultShell Définit la configuration du lanceur d’interpréteur de commandes par défaut.
WESL_UserSetting.IsEnabled Récupère une valeur qui indique si le lanceur d’interpréteur de commandes est activé ou désactivé.
WESL_UserSetting.SetEnabled Active ou désactive le lanceur d’interpréteur de commandes.

Propriétés

Propriété Type de données Qualificateurs Description
Sid chaîne [lecture, écriture, obligatoire] SID d’utilisateur ou de groupe.
Shell chaîne [lecture, écriture, obligatoire] Application à démarrer en tant qu’interpréteur de commandes.
La propriété shell peut être un nom de fichier dans la variable d’environnement Path , ou elle peut contenir un chemin d’accès complet à l’application. Vous pouvez également utiliser des variables d’environnement dans le chemin d’accès.
Tous les espaces de la propriété shell doivent faire partie d’une chaîne délimitée par un guillemet.
CustomReturnCodes Sint32[] [lecture, écriture] Tableau de codes de retour personnalisés qui peuvent être retournés par l’interpréteur de commandes.
CustomReturnCodesAction Sint32[] [lecture, écriture] Tableau d’actions de code de retour personnalisées qui déterminent l’action du lanceur d’interpréteur de commandes lorsque l’interpréteur de commandes se ferme. Les actions personnalisées sont mappées au tableau de CustomReturnCodes.
Les actions possibles sont :
0 - Redémarrez l’interpréteur de commandes.
1 - Redémarrez l’appareil.
2 - Arrêtez l’appareil.
3 - Ne rien faire.
DefaultAction Sint32 [lecture, écriture] Action par défaut du lanceur d’interpréteur de commandes lorsque l’interpréteur de commandes se ferme.
Les actions possibles sont définies comme suit :
0 - Redémarrez l’interpréteur de commandes.
1 - Redémarrez l’appareil.
2 - Arrêtez l’appareil.
3 - Ne rien faire.

Remarques

Un seul WESL_UserSetting instance existe sur un appareil avec le lanceur d’interpréteur de commandes.

Le lanceur d’interpréteur de commandes utilise la configuration personnalisée définie pour le SID de l’utilisateur actuellement connecté, le cas échéant. Sinon, le lanceur d’interpréteur de commandes utilise une configuration personnalisée définie pour un SID de groupe dont l’utilisateur est membre, le cas échéant. S’il existe plusieurs configurations personnalisées de groupe pour l’utilisateur, le lanceur d’interpréteur de commandes utilise la première configuration valide qu’il trouve. L’ordre de recherche n’est pas défini.

S’il n’existe aucune configuration personnalisée pour le SID de l’utilisateur ou des SID de groupe dont l’utilisateur est membre, le lanceur d’interpréteur de commandes utilise la configuration par défaut.

Vous pouvez trouver le SID d’un utilisateur et de tous les groupes dont l’utilisateur est membre à l’aide de l’outil en ligne de commande whoami .

Exemple

Le script de Windows PowerShell suivant montre comment ajouter et supprimer des configurations d’interpréteur de commandes personnalisées pour le lanceur d’interpréteur de commandes à l’aide des fournisseurs WMI (Windows Management Instrumentation) pour le lanceur d’interpréteur de commandes.

$COMPUTER = "localhost"
$NAMESPACE = "root\standardcimv2\embedded"

# Create a handle to the class instance so we can call the static methods.
$ShellLauncherClass = [wmiclass]"\\$COMPUTER\${NAMESPACE}:WESL_UserSetting"


# This well-known security identifier (SID) corresponds to the BUILTIN\Administrators group.

$Admins_SID = "S-1-5-32-544"

# Create a function to retrieve the SID for a user account on a machine.

function Get-UsernameSID($AccountName) {

    $NTUserObject = New-Object System.Security.Principal.NTAccount($AccountName)
    $NTUserSID = $NTUserObject.Translate([System.Security.Principal.SecurityIdentifier])

    return $NTUserSID.Value

}

# Get the SID for a user account named "Cashier". Rename "Cashier" to an existing account on your system to test this script.

$Cashier_SID = Get-UsernameSID("Cashier")

# Define actions to take when the shell program exits.

$restart_shell = 0
$restart_device = 1
$shutdown_device = 2
$do_nothing = 3

# Examples

# Set the command prompt as the default shell, and restart the device if it's closed.

$ShellLauncherClass.SetDefaultShell("cmd.exe", $restart_device)

# Display the default shell to verify that it was added correctly.

$DefaultShellObject = $ShellLauncherClass.GetDefaultShell()

"`nDefault Shell is set to " + $DefaultShellObject.Shell + " and the default action is set to " + $DefaultShellObject.defaultaction

# Set Internet Explorer as the shell for "Cashier", and restart the machine if it's closed.

$ShellLauncherClass.SetCustomShell($Cashier_SID, "c:\program files\internet explorer\iexplore.exe www.microsoft.com", ($null), ($null), $restart_shell)

# Set Explorer as the shell for administrators.

$ShellLauncherClass.SetCustomShell($Admins_SID, "explorer.exe")

# View all the custom shells defined.

"`nCurrent settings for custom shells:"
Get-WmiObject -namespace $NAMESPACE -computer $COMPUTER -class WESL_UserSetting | Select Sid, Shell, DefaultAction

# Remove the new custom shells.

$ShellLauncherClass.RemoveCustomShell($Admins_SID)

$ShellLauncherClass.RemoveCustomShell($Cashier_SID)

Configuration requise

Édition Windows Prise en charge
Windows Famille Non
Windows Professionnel Non
Windows Entreprise Oui
Windows Éducation Oui
Windows IoT Entreprise Oui