Таблица перевода WMIC

Где я могу получить документацию о таблицах перевода, используемых в WMIC/TRANSLATE выключатель? Как я обнаружил, есть только две таблицы, поставляемые с WMIC: BasicXml а также NoComma, Как я могу управлять таблицами: перечислять их, просматривать, добавлять, удалять, переименовывать? Какой формат у них есть? Я полагаю, когда я использую таблицы, есть только правила замены одного символа. Или некоторые другие правила могут применяться?

1 ответ

Решение

Эти таблицы перевода взяты из MSFT_CliTranslateTable а также MSFT_CliTranslateTableEntry классы. Они определены (и плохо документированы) в C:\Windows\System32\wbem\cli.mof файл.

…
[Abstract] 
class MSFT_CliTranslateTableEntry
{
  string FromValue;
  string ToValue;
};

class MSFT_CliTranslateTable
{
  [key] string Name;
  MSFT_CliTranslateTableEntry Tbl[];
};
…

Пример использования wmic:

==> wmic /NAMESPACE:\\root\cli PATH MSFT_CliTranslateTable get
Name                                                                                     
NoComma                                                                                  
              {}  2    MSFT_CliTranslateTableEntry    MSFT_CliTranslateTableEntry  2  ,  
BasicXml                                                                                 
              {}  2    MSFT_CliTranslateTableEntry    MSFT_CliTranslateTableEntry  2  >  >
              {}  2    MSFT_CliTranslateTableEntry    MSFT_CliTranslateTableEntry  2  &lt;  <

Еще один пример использования wmic:

==> wmic /NAMESPACE:\\root\cli PATH MSFT_CliTranslateTable get /Value | findstr "^$ Name __CLASS FromValue ToValue"

Name=NoComma

__CLASS=MSFT_CliTranslateTableEntry
FromValue=,
ToValue=

Name=BasicXml

__CLASS=MSFT_CliTranslateTableEntry
FromValue=&amp;gt;
ToValue=&gt;

__CLASS=MSFT_CliTranslateTableEntry
FromValue=&amp;lt;
ToValue=&lt;

Дополнительный пример использования powershell:

PS D:\PShell> 
$comp      = $env:COMPUTERNAME
$namespace = "ROOT\Cli"
$classname = "MSFT_CliTranslateTable"

$instances = Get-WmiObject -Class $classname -ComputerName $comp -Namespace $namespace

$instances |
  ForEach-Object { $_ |
    Select-Object -Property @{N='RELPATH';     E={$_.__RELPATH}}, 
                            @{N='TrTableName'; E={$_.Name}} -ExpandProperty Tbl
  } | Format-Table -Property TrTableName, FromValue, ToValue, __CLASS #, RELPATH

Выход:

TrTableName FromValue ToValue __CLASS                    
----------- --------- ------- -------                    
NoComma     ,                 MSFT_CliTranslateTableEntry
BasicXml    &gt;      >       MSFT_CliTranslateTableEntry
BasicXml    &lt;      <       MSFT_CliTranslateTableEntry
Другие вопросы по тегам