WESL_UserSetting

這個類別會根據已登入使用者的安全性識別碼 (SID) ,設定應用程式殼層啟動器所執行的傳回碼集,並傳回殼層啟動器在應用程式結束時執行的動作。

語法

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);
    );
};

成員

下表列出屬於這個類別的任何方法和屬性。

方法

方法 描述

WESL_UserSetting.SetCustomShell

根據 SID 設定特定使用者或群組的殼層啟動器。

WESL_UserSetting.GetCustomShell

根據 SID 擷取特定使用者或群組的殼層啟動器組態。

WESL_UserSetting.RemoveCustomShell

根據 SID 移除特定使用者或群組的殼層啟動器組態。

WESL_UserSetting.GetDefaultShell

擷取預設殼層啟動器組態。

WESL_UserSetting.SetDefaultShell

設定預設殼層啟動器組態。

WESL_UserSetting.IsEnabled

擷取值,指出殼層啟動器是否已啟用或停用。

WESL_UserSetting.SetEnabled

啟用或停用殼層啟動器。

屬性

屬性 資料類型 限定詞 描述

字串

[讀取、寫入、必要]

使用者或群組 SID。

字串

[讀取、寫入、必要]

要啟動為殼層的應用程式。

Shell屬性可以是Path環境變數中的檔案名,也可以包含應用程式的完整路徑。 您也可以在路徑中使用環境變數。

Shell屬性中的任何空格都必須是引號分隔字串的一部分。

CustomReturnCodes

Sint32[]

[讀取,寫入]

可由殼層傳回的自訂傳回碼陣列。

CustomReturnCodesAction

Sint32[]

[讀取,寫入]

自訂傳回碼動作的陣列,決定殼層結束時殼層啟動器所採取的動作。 自訂動作會對應至 CustomReturnCodes的陣列。

下表定義了可能的動作:

描述

0

重新開機殼層。

1

重新啟動裝置。

2

關閉裝置。

3

不執行任何動作。

 

DefaultAction

Sint32

[讀取,寫入]

當殼層結束時,預設動作殼層啟動器會採用。

下表定義了可能的動作:

描述

0

重新開機殼層。

1

重新啟動裝置。

2

關閉裝置。

3

不執行任何動作。

 

備註

殼層啟動器裝置上只有一個 WESL_UserSetting 實例存在。

殼層啟動器會使用針對目前登入之使用者的 SID 所定義的自訂群組態,如果有的話。 否則,殼層啟動器會針對使用者所屬群組 SID 使用自訂群組態,如果有的話。 如果使用者有多個群組自訂群組態存在,Shell 啟動器會使用它找到的第一個有效組態。 未定義搜尋順序。

如果使用者的 SID 或任何使用者所屬的群組 SID 或任何群組 SID 沒有自訂群組態,Shell 啟動器會使用預設組態。

您可以使用 whoami 命令列工具,找到使用者的 SID,以及使用者所屬的任何群組。

範例

下列 Windows PowerShell 腳本示範如何使用適用于殼層啟動器的 Windows Management Instrumentation (WMI) 提供者,新增和移除殼層啟動器的自訂殼層設定。

$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)

規格需求

Windows 版本 支援
Windows 10 Home
Windows 10 Pro No
Windows 10 Enterprise
Windows 10 Education

殼層啟動程式