我在哪里可以find最新的unattended.xml模式(xsd)?

我正在使用Windows Server 2012,Windows部署服务(WDS)和Windows评估和部署工具包(ADK)。 我创build了一个基本的unattended.xml文件。 当我去编辑一个XML编辑器,实际上有点烦人,因为我没有一个XSD。

基本上,我想知道是否有一个架构(xsd)的unattended.xml文件。 我知道我可以轻松地转到Microsoft TechNet:无人参与的Windows安装程序站点,但是我发现有两个问题:

  1. 我似乎无法find每个节点可用的属性。

    例如…我知道Microsoft-Windows-Setup只是通过查看默认的unattended.xml文件来允许publicKeyTokenlanguageversionScopeprocessorArchitecture等属性。 但是,在页面上,我没有看到列出的这些属性…只有一个摘要和什么节点可以放在这个节点。

  2. 它不会提高速度,或者使我在xml编辑器中编辑xml文件变得容易。

再次,只要find我真正能够findxsd的地方,无论是微软下载,还是微软下载的特定文件夹位置,或者是某个人的天空驱动器帐户(如果必须是手工制作的)。

    根据这个stackoverflow的问题( 链接 ),你可以生成它

     xsd.exe unattend.xml 

    我做了一些关键字searchMDT中的所有xsd文件,跟随文件匹配publicKeyTokenlanguageprocessorArchitecture (但没有versionScope

     C:\Program Files\Microsoft Deployment Toolkit\Templates\Packages.xsd 

    看来我即使从MS文档运行到死胡同。 http://schemas.microsoft.com/unattend提供错误页面(它包含其他MS架构)。 尝试使用某些DLL上的资源查看器,但没有find任何xsd资源。 我开始怀疑,无人参与的架构存储为MS工具中的某种数据结构。

    我确实使用了针对Microsoft Deployment Toolkit\Templates\Unattend_Core_x64.xmlxsd.exe ,并生成了以下xsd。 也许这可以帮助你的XML编辑器。 (这不会取代官方模式。)

    Unattend_Core_x64.xsd

     <?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,请转到您安装的目录。 find文件Microsoft.ComponentStudio.ComponentPlatformInterface.dll,并在您最喜爱的反编译器中打开它,看看微软如何做到这一点。

    看看的主要方法是Validate()方法,当你看它时,它会经历不同的阶段(通过)并逐一validation它们。 ValidateXml()是有用的,值得一看,因为DoLoad()

    这基本上是采取与WAIK一起安装的一些XSD文件,并使用它们:
    “C:\ Program Files \ Microsoft部署工具包\ Templates \ Drivers.xsd”
    “C:\ Program Files \ Microsoft部署工具包\ Templates \ Groups.xsd”
    “C:\ Program Files \ Microsoft部署工具包\模板\ InstallerComponents.xsd”
    “C:\ Program Files \ Microsoft部署工具包\模板\ LinkedDeploymentShares.xsd”
    “C:\ Program Files \ Microsoft部署工具包\ Templates \ Medias.xsd”
    “C:\ Program Files \ Microsoft部署工具包\模板\ OperatingSystems.xsd”
    “C:\ Program Files \ Microsoft部署工具包\ Templates \ Packages.xsd”
    “C:\ Program Files \ Microsoft部署工具包\ Templates \ SelectionProfiles.xsd”
    “C:\ Program Files \ Microsoft部署工具包\ Templates \ TaskSequences.xsd”
    “C:\ Program Files \ Microsoft部署工具包\ Templates \ Applications.xsd”