ConvertFrom-SddlString
將 SDDL 字串轉換為自訂物件。
語法
ConvertFrom-SddlString
[-Sddl] <String>
[-Type <Object>]
[<CommonParameters>]
Description
ConvertFrom-SddlString
Cmdlet 會將安全性描述元定義語言字串轉換成具有下列屬性的自定義 PSCustomObject 物件:Owner、Group、DiscretionaryAcl、SystemAcl 和 RawDescriptor。
擁有者、群組、DiscretionaryAcl 和 SystemAcl 屬性包含 SDDL 字串中所指定訪問許可權的可讀取文字表示法。
此 Cmdlet 已在 PowerShell 5.0 中引進。
範例
範例 1:將文件系統訪問許可權 SDDL 轉換為 PSCustomObject
$acl = Get-Acl -Path C:\Windows
ConvertFrom-SddlString -Sddl $acl.Sddl
第一個命令會使用 Get-Acl
Cmdlet 來取得 C:\Windows 資料夾的安全性描述元,並將它儲存在變數中。
第二個命令會使用 ConvertFrom-SddlString
Cmdlet 來取得 SDDL 字串的文字表示法,該字串包含在代表安全性描述元之 物件的 Sddl 屬性中。
範例 2:將登錄訪問許可權 SDDL 轉換為 PSCustomObject
$acl = Get-Acl HKLM:\SOFTWARE\Microsoft\
ConvertFrom-SddlString -Sddl $acl.Sddl -Type RegistryRights
第一個命令會使用 Get-Acl
Cmdlet 來取得 HKLM:\SOFTWARE\Microsoft\ 金鑰的安全性描述項,並將它儲存在變數中。
第二個命令會使用 ConvertFrom-SddlString
Cmdlet 來取得 SDDL 字串的文字表示法,該字串包含在代表安全性描述元之 物件的 Sddl 屬性中。
它會使用 -Type
參數來指定 SDDL 字串代表登錄安全性描述元。
範例 3:使用 ConvertFrom-SddlString 搭配和不使用 '-Type' 參數,將登錄訪問許可權 SDDL 轉換為 PSCustomObject
$acl = Get-Acl -Path HKLM:\SOFTWARE\Microsoft\
ConvertFrom-SddlString -Sddl $acl.Sddl | Foreach-Object {$_.DiscretionaryAcl[0]}
BUILTIN\Administrators: AccessAllowed (ChangePermissions, CreateDirectories, Delete, ExecuteKey, FullControl, GenericExecute, GenericWrite, ListDirectory, ReadExtendedAttributes, ReadPermissions, TakeOwnership, Traverse, WriteData, WriteExtendedAttributes, WriteKey)
ConvertFrom-SddlString -Sddl $acl.Sddl -Type RegistryRights | Foreach-Object {$_.DiscretionaryAcl[0]}
BUILTIN\Administrators: AccessAllowed (ChangePermissions, CreateLink, CreateSubKey, Delete, EnumerateSubKeys, ExecuteKey, FullControl, GenericExecute, GenericWrite, Notify, QueryValues, ReadPermissions, SetValue, TakeOwnership, WriteKey)
第一個命令會使用 Get-Acl
Cmdlet 來取得 HKLM:\SOFTWARE\Microsoft\ 金鑰的安全性描述項,並將它儲存在變數中。
第二個命令會使用 ConvertFrom-SddlString
Cmdlet 來取得 SDDL 字串的文字表示法,該字串包含在代表安全性描述元之 物件的 Sddl 屬性中。
它不會使用 -Type
參數,因此顯示的訪問許可權適用於文件系統。
第三個命令會使用 ConvertFrom-SddlString
Cmdlet 搭配 -Type
參數,因此傳回的訪問許可權適用於登錄。
範例 4:將 Active Directory 訪問許可權 SDDL 轉換為 PSCustomObject
$user = [ADSI]"LDAP://CN=username,CN=Users,DC=domain,DC=com"
ConvertFrom-SddlString $user.psbase.ObjectSecurity.Sddl -Type ActiveDirectoryRights
第一個命令會使用 Active Directory 服務介面 (ADSI) 來取得用戶物件,並將它儲存在 變數中。
第二個命令會使用 ConvertFrom-SddlString
Cmdlet 來取得 SDDL 字串的文字表示法,該字串包含在代表安全性描述元之 物件的 Sddl 屬性中。
它會使用 -Type
參數來指定 SDDL 字串代表 Active Directory 安全性描述元。
參數
-Sddl
指定字串,表示 SDDL 語法中的安全性描述元。
類型: | String |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-Type
指定 SDDL 字串所代表的許可權類型。
此參數可接受的值為:
- FileSystemRights
- RegistryRights
- ActiveDirectoryRights
- MutexRights
- SemaphoreRights
- CryptoKeyRights
- EventWaitHandleRights
根據預設,Cmdlet 會使用文件系統許可權。
PowerShell Core 不支援 CryptoKeyRights 和 ActiveDirectoryRights。
類型: | Object |
接受的值: | FileSystemRights, RegistryRights, ActiveDirectoryRights, MutexRights, SemaphoreRights, CryptoKeyRights, EventWaitHandleRights |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |