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

구성원

다음 표에는 이 클래스에 속하는 모든 메서드와 속성이 나열되어 있습니다.

메서드

메서드 Description

WESL_UserSetting.SetCustomShell

SID에 따라 특정 사용자 또는 그룹에 대한 셸 시작 관리자를 구성합니다.

WESL_UserSetting.GetCustomShell

SID를 기반으로 특정 사용자 또는 그룹에 대한 Shell Launcher 구성을 검색합니다.

WESL_UserSetting.RemoveCustomShell

SID를 기반으로 특정 사용자 또는 그룹에 대한 셸 시작 관리자 구성을 제거합니다.

WESL_UserSetting.GetDefaultShell

기본 셸 시작 관리자 구성을 검색합니다.

WESL_UserSetting.SetDefaultShell

기본 셸 시작 관리자 구성을 설정합니다.

WESL_UserSetting.IsEnabled

셸 시작 관리자의 활성화 또는 비활성화 여부를 나타내는 값을 검색합니다.

WESL_UserSetting.SetEnabled

셸 시작 관리자를 활성화하거나 비활성화합니다.

속성

속성 데이터 형식 한정자 Description

Sid

string

[read, write, required]

사용자 또는 그룹 SID입니다.

shell

문자열

[read, write, required]

셸로 시작할 애플리케이션입니다.

shell 속성은 Path 환경 변수의 파일 이름이거나 애플리케이션에 대한 정규화된 경로를 포함할 수 있습니다. 경로에 환경 변수를 사용할 수도 있습니다.

shell 속성의 모든 공백은 따옴표로 구분된 문자열의 일부여야 합니다.

CustomReturnCodes

Sint32[]

[read, write]

셸에서 반환할 수 있는 사용자 지정 반환 코드의 배열입니다.

CustomReturnCodesAction

Sint32[]

[read, write]

셸이 종료되면 셸 시작 관리자가 수행하는 작업을 결정하는 사용자 지정 반환 코드 작업의 배열입니다. 사용자 지정 작업은 CustomReturnCodes 배열에 매핑됩니다.

가능한 작업은 다음 표에 정의되어 있습니다.

Description

0

셸을 다시 시작합니다.

1

디바이스를 다시 시작합니다.

2

디바이스를 종료합니다.

3

아무 작업도 하지 않습니다.

 

DefaultAction

Sint32

[read, write]

셸이 종료되면 셸 시작 관리자가 수행하는 기본 작업입니다.

가능한 작업은 다음 표에 정의되어 있습니다.

Description

0

셸을 다시 시작합니다.

1

디바이스를 다시 시작합니다.

2

디바이스를 종료합니다.

3

아무 작업도 하지 않습니다.

 

설명

셸 시작 관리자를 사용하는 디바이스에는 WESL_UserSetting 인스턴스가 하나만 있습니다.

셸 시작 관리자는 현재 로그인한 사용자의 SID에 대해 정의된 사용자 지정 구성(있는 경우)을 사용합니다. 그렇지 않으면 셸 시작 관리자에서 사용자가 멤버로 속한 그룹 SID에 대해 정의된 사용자 지정 구성(있는 경우)을 사용합니다. 사용자에 대한 여러 그룹 사용자 지정 구성이 있는 경우 셸 시작 관리자는 첫 번째로 발견된 유효한 구성을 사용합니다. 검색 순서는 정의되어 있지 않습니다.

사용자의 SID 또는 사용자가 멤버로 속한 그룹 SID에 대한 사용자 지정 구성이 없는 경우 셸 시작 관리자가 기본 구성을 사용합니다.

whoami 명령줄 도구를 사용하여 사용자 및 사용자가 멤버로 속한 모든 그룹에 대한 SID를 찾을 수 있습니다.

예제

다음 Windows PowerShell 스크립트는 셸 시작 관리자용 WMI(Windows Management Instrumentation) 공급자를 사용하여 셸 시작 관리자에 대한 사용자 지정 셸 구성을 추가하고 제거하는 방법을 보여 줍니다.

$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
Windows 10 Enterprise Yes
Windows 10 Education

셸 시작 관리자