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 exécute lorsque l’application se ferme.
Configuration requise pour l’édition De Windows
La liste suivante contient les éditions de Windows qui prennent en charge le lanceur d’interpréteur de commandes :
✅ Enterprise / Enterprise LTSC
✅ Éducation
✅ IoT Enterprise / IoT Enterprise LTSC
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 de 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 | Qualificatifs | Description |
---|---|---|---|
Sid | chaîne | [lecture, écriture, obligatoire] | SID d’utilisateur ou de groupe. |
coquille | 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 des guillemets. |
CustomReturnCodes | Sint32[] | [lire, écrire] | Tableau de codes de retour personnalisés qui peuvent être retournés par l’interpréteur de commandes. |
CustomReturnCodesAction | Sint32[] | [lire, écrire] | 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 les suivantes : 0 - Redémarrez l’interpréteur de commandes. 1 - Redémarrez l’appareil. 2 - Arrêtez l’appareil. 3 - Ne rien faire. |
DefaultAction | Sint32 | [lire, écrire] | 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
Une seule 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 tout 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 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)