私は、Windows Server 2012、Windows展開サービス(WDS)、およびWindows評価および展開キット(ADK)を使用しています。ベースのunattended.xmlファイルを作成しました。 xmlエディターで編集しようとすると、xsdがないので、実際には少し面倒です。
基本的に、unattended.xmlファイルのスキーマ(xsd)があるかどうか疑問に思いました。 Microsoft TechNet:Unattended Windows Setup サイトに簡単にアクセスできることはわかっていますが、これには2つの問題があります。
各ノードで使用できる属性が見つからないようです。
たとえば... Microsoft-Windows-Setup は、publicKeyToken
、language
、versionScope
などの属性を許可します。 、およびprocessorArchitecture
は、私が持っているデフォルトのunattended.xmlファイルを見るだけです。しかし、ページにはこれらの属性がリストされていません...要約とこのノード内に配置できるノードのみが表示されます。
速度が向上したり、xmlエディターでxmlファイルを簡単に編集したりすることはできません。
繰り返しになりますが、xsdがMicrosoftのダウンロードであるか、Microsoftのダウンロードから特定のフォルダーの場所にあるか、または手作りである必要がある場合は誰かのスカイドライブアカウントであるかどうかを実際に見つけることができる場所を探しています。
このstackoverflowの質問( link )によると、それを生成できます
xsd.exe unattend.xml
ファイル一致publicKeyToken
、language
、およびprocessorArchitecture
に続いて、MDT内のすべてのxsdファイルに対してキーワード検索を行いました(ただし、versionScope
はありません)
C:\Program Files\Microsoft Deployment Toolkit\Templates\Packages.xsd
MSのドキュメントからも行き止まりになっているようです。 http://schemas.Microsoft.com/unattend
はエラーページを表示します(他のMSスキーマが含まれています)。一部のDLLでリソースビューアを使用しようとしましたが、xsdリソースが見つかりませんでした。無人スキーマは、MSツール内にある種のデータ構造として格納されているのではないかと思い始めています。
xsd.exe
に対してMicrosoft Deployment Toolkit\Templates\Unattend_Core_x64.xml
を使用し、次のxsdを作成しました。多分それはあなたのxmlエディタを助けることができます。 (これは公式スキーマを置き換えるものではありません。)
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="unattend" targetNamespace="urn:schemas-Microsoft-com:unattend" xmlns:mstns="urn:schemas-Microsoft-com:unattend" xmlns="urn:schemas-Microsoft-com:unattend" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-Microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified" xmlns:app1="http://schemas.Microsoft.com/WMIConfig/2002/State">
<xs:import namespace="http://schemas.Microsoft.com/WMIConfig/2002/State" schemaLocation="Unattend_Core_x64_app1.xsd" />
<xs:element name="unattend" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="settings">
<xs:complexType>
<xs:sequence>
<xs:element name="component" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ComputerName" type="xs:string" minOccurs="0" msdata:Ordinal="1" />
<xs:element name="ProductKey" type="xs:string" minOccurs="0" msdata:Ordinal="2" />
<xs:element name="RegisteredOrganization" type="xs:string" minOccurs="0" msdata:Ordinal="3" />
<xs:element name="RegisteredOwner" type="xs:string" minOccurs="0" msdata:Ordinal="4" />
<xs:element name="DoNotCleanTaskBar" type="xs:string" minOccurs="0" msdata:Ordinal="5" />
<xs:element name="TimeZone" type="xs:string" minOccurs="0" msdata:Ordinal="6" />
<xs:element name="InputLocale" type="xs:string" minOccurs="0" msdata:Ordinal="7" />
<xs:element name="SystemLocale" type="xs:string" minOccurs="0" msdata:Ordinal="8" />
<xs:element name="UILanguage" type="xs:string" minOccurs="0" msdata:Ordinal="9" />
<xs:element name="UserLocale" type="xs:string" minOccurs="0" msdata:Ordinal="10" />
<xs:element name="UserAccounts" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="AdministratorPassword" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Value" type="xs:string" minOccurs="0" />
<xs:element name="PlainText" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="AutoLogon" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Enabled" type="xs:string" minOccurs="0" />
<xs:element name="Username" type="xs:string" minOccurs="0" />
<xs:element name="Domain" type="xs:string" minOccurs="0" />
<xs:element name="LogonCount" type="xs:string" minOccurs="0" />
<xs:element name="Password" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Value" type="xs:string" minOccurs="0" />
<xs:element name="PlainText" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RunSynchronous" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="RunSynchronousCommand" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Description" type="xs:string" minOccurs="0" msdata:Ordinal="0" />
<xs:element name="Order" type="xs:string" minOccurs="0" msdata:Ordinal="1" />
<xs:element name="Path" type="xs:string" minOccurs="0" msdata:Ordinal="2" />
</xs:sequence>
<xs:attribute ref="app1:action" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Identification" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="JoinDomain" type="xs:string" minOccurs="0" />
<xs:element name="JoinWorkgroup" type="xs:string" minOccurs="0" />
<xs:element name="MachineObjectOU" type="xs:string" minOccurs="0" />
<xs:element name="Credentials" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Username" type="xs:string" minOccurs="0" />
<xs:element name="Domain" type="xs:string" minOccurs="0" />
<xs:element name="Password" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SetupUILanguage" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="UILanguage" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ImageInstall" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="OSImage" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="WillShowUI" type="xs:string" minOccurs="0" />
<xs:element name="InstallTo" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="DiskID" type="xs:string" minOccurs="0" />
<xs:element name="PartitionID" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="InstallFrom" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Path" type="xs:string" minOccurs="0" />
<xs:element name="MetaData" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Key" type="xs:string" minOccurs="0" />
<xs:element name="Value" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Display" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ColorDepth" type="xs:string" minOccurs="0" />
<xs:element name="HorizontalResolution" type="xs:string" minOccurs="0" />
<xs:element name="RefreshRate" type="xs:string" minOccurs="0" />
<xs:element name="VerticalResolution" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FirstLogonCommands" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="SynchronousCommand" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="CommandLine" type="xs:string" minOccurs="0" msdata:Ordinal="0" />
<xs:element name="Description" type="xs:string" minOccurs="0" msdata:Ordinal="1" />
<xs:element name="Order" type="xs:string" minOccurs="0" msdata:Ordinal="2" />
</xs:sequence>
<xs:attribute ref="app1:action" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="OOBE" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="HideEULAPage" type="xs:string" minOccurs="0" />
<xs:element name="NetworkLocation" type="xs:string" minOccurs="0" />
<xs:element name="ProtectYourPC" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ComplianceCheck" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="DisplayReport" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="UserData" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="AcceptEula" type="xs:string" minOccurs="0" />
<xs:element name="ProductKey" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Key" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="DriverPaths" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="PathAndCredentials" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Path" type="xs:string" minOccurs="0" msdata:Ordinal="0" />
</xs:sequence>
<xs:attribute ref="app1:keyValue" />
<xs:attribute ref="app1:action" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" form="unqualified" type="xs:string" />
<xs:attribute name="processorArchitecture" form="unqualified" type="xs:string" />
<xs:attribute name="publicKeyToken" form="unqualified" type="xs:string" />
<xs:attribute name="language" form="unqualified" type="xs:string" />
<xs:attribute name="versionScope" form="unqualified" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="pass" form="unqualified" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
WAIK 8がインストールされている場合は、インストール先のディレクトリに移動します。ファイルMicrosoft.ComponentStudio.ComponentPlatformInterface.dllを見つけて、お気に入りの逆コンパイラーで開き、Microsoftがどのように実行するかを確認します。
確認する主なメソッドはValidate()
メソッドであり、これを確認すると、さまざまな段階(パス)を経て、それらを1つずつ検証します。 ValidateXml()
は便利で、DoLoad()と同様に一見の価値があります。
基本的に、WAIKとともにインストールされるXSDファイルのいくつかを取得して使用します。
"C:\ Program Files\Microsoft Deployment Toolkit\Templates\Drivers.xsd"
"C:\ Program Files\Microsoft Deployment Toolkit\Templates\Groups.xsd"
"C:\ Program Files\Microsoft Deployment Toolkit\Templates\InstallerComponents.xsd"
"C:\ Program Files\Microsoft Deployment Toolkit\Templates\LinkedDeploymentShares.xsd"
"C:\ Program Files\Microsoft Deployment Toolkit\Templates\Medias.xsd"
"C:\ Program Files\Microsoft Deployment Toolkit\Templates\OperatingSystems.xsd"
"C:\ Program Files\Microsoft Deployment Toolkit\Templates\Packages.xsd"
"C:\ Program Files\Microsoft Deployment Toolkit\Templates\SelectionProfiles.xsd"
"C:\ Program Files\Microsoft Deployment Toolkit\Templates\TaskSequences.xsd"
"C:\ Program Files\Microsoft Deployment Toolkit\Templates\Applications.xsd"