WMIC 翻译 table

WMIC translation table

我从哪里可以获得有关 WMIC /TRANSLATE 开关中使用的翻译表的文档?正如我所发现的,WMIC 附带的只有两个表:BasicXmlNoComma。我如何管理表格:列出、查看、添加、删除、重命名?他们有什么格式?我想,当我使用表格时,只有单个字符替换规则。或者其他一些规则可能适用?

这些翻译表来自MSFT_CliTranslateTableMSFT_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