我有一个相当大的XML文件,我需要replace内的一些连接string。 我使用下面的代码来replacestring: $temp = Get-Content .\bigxmlfile.xml $temp.replace("STRING1","STRING2") | out-file .\bigxmlfile.xml -force 这改变了string很好,但由于某种原因总是最终破坏了XML。 我无法弄清楚为什么。
我试图通过Windows事件日志search任何事件数据包含stringTCP提供程序,错误:0作为一个较长的错误消息的一部分。 为此,我创build了下面的代码: <QueryList> <Query Id="0" Path="Application"> <Select Path="Application">*[System[Provider[@Name='MyDemo' or @Name='AnotherDemo'] and (Level=2 or Level=3)]][EventData[Data[contains(.,'TCP Provider, error: 0')]]]</Select> </Query> </QueryList> 然而,这被视为一个无效的查询 – 我猜包含语句不被识别(因为它看起来像一个特殊版本的XPath语法正在使用这里。有谁知道我是否尝试可能/如何去做这个? 提前致谢, JB
我试图从Windows安全日志中分析logging,并且有些难以从某些login/注销事件中获取特定值。 让我们来看一个具体的例子 – 这里是一个日志条目的XML。 <Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'> <System> <Provider Name='Microsoft-Windows-Security-Auditing' Guid='{54849625-5478-4994-a5ba-3e3b0328c30d}'/> <EventID>4634</EventID> <Version>0</Version> <Level>0</Level> <Task>12545</Task> <Opcode>0</Opcode> <Keywords>0x8020000000000000</Keywords> <TimeCreated SystemTime='2011-08-16T17:15:38.702857400Z'/> <EventRecordID>107947</EventRecordID> <Correlation/> <Execution ProcessID='680' ThreadID='972'/> <Channel>Security</Channel> <Computer>SRV1.DOMAIN.LOCAL</Computer><Security/> </System> <EventData> <Data Name='TargetUserSid'>S-1-5-21-963414502-3093649508-813756320-3274</Data> <Data Name='TargetUserName'>billgates</Data> <Data Name='TargetDomainName'>MYDOMAIN</Data> <Data Name='TargetLogonId'>0x1c01acc</Data> <Data Name='LogonType'>10</Data> </EventData> </Event> 我将如何去提取存储在Data节点中的Name属性等于'TargetLogonId' ?
情况: 我使用MDT Lite-Touch成像新系统。 我正在尝试自定义向导来自动命名新系统,以便在向导页面(例如“FOO”)的下拉框中包含一个前缀“AG-”,一个部门代码,以及最后是成像电脑的序列号,这样我的结果是“AG-FOO-1234567” 状态: 我有一段时间了,但我的谷歌search没有find答案,我的反复试验并没有产生有用的错误信息,我想我错过了一些基本知识,如何从向导页面variables变成lite-touch向导使用的variables。 进展: 我首先创build了下面将包含的HTML页面,并在页面中添加了一个脚本,将这些脚本连接成一个名为OSDComputername的variables,为了testing,我可以在msgbox中输出并正确显示。 这个问题是我不知道如何触发脚本,然后将其分配给OSDComputernamevariables,该variables在Light-Touch过程的其余部分使用。 我将脚本更改为一个函数,并将其添加到DeployWiz_Initization.vbs然后使用WDS中的初始化字段来调用它。 我将包括下面的function。 这个问题是我会得到“未定义的variables”为OSDComputername,我不知道它是正确的拉动数据从HTML。 我尝试在“OSDComputername =”之后将脚本添加到customsettings.ini文件中 这导致向导只是输出我的代码在文本中的计算机名称。 我尝试在customsettings.ini中添加variables“Properties =”(eg.DepartmentName),从HTML表单中提取值,并将该值设置为DeployWiz_Initization.vbs中的函数中的variables,并在“OSDComputername =”后调用它们customsettings.ini中的时尚“OSDComputername =”AG-“&%DepartmentName%” 这导致了我的脚本中没有正确访问新variables的错误 我现在有我的代码工作。 它从HTML中提取数据并设置OSDComputername环境variables。 我更新了下面的代码来匹配工作代码。 它是正确的发射和设置我的电脑名称和描述完全符合我的意愿。 问题解决了! HTML页面: <H1>Configure the computer name.</H1> <p>Please answer the following questions. Your answers will be used to formulate the computer's name and description.</p> <FORM NAME="SetComputerNameForm"> <p> <LABEL class="Larger"><u class="Larger">D</u>epartmental Prefix:</LABEL><br /> […]
现在我们正试图为我们的环境build立黄金configuration。 我们使用的一个软件依赖大型XML文件来包含其大部分configuration。 我们希望将我们的实验室环境作为我们的“黄金configuration”进行编目,然后能够在未来对该configuration进行审计。 由于diff是按字节进行比较而不是逻辑比较,所以在这种情况下我们不能用它来比较文件( XML是无序的,所以它不起作用)。 我正在寻找的东西可以parsing这两个XML文件,并逐个比较它们。 到目前为止,我们还没有find任何可以做到这一点的工具。 操作系统并不重要,我可以在任何需要的地方进行操作。 偏好是现成的。 有任何想法吗? 编辑:我们遇到的一个问题是一个供应商的configuration文件偶尔会多次提及相同的元素,每次都有不同的属性。 无论我们使用哪种diff实用程序,都需要能够识别属性集合或将它们全部识别为一个元素的一部分。 艰巨的任务 :)
我有几个应用程序以XML格式存储他们的configuration文件。 对于一个普通的应用程序,使用基于文本的configuration,我可以使用perl,sed或awk或者百万个工具中的任何一个来轻松更新一个值。 我正在寻找类似于XML的东西,这将允许我轻松可靠地执行操作,如更新值,添加节点或删除节点。 常规的文本parsing看起来太冒险了,因为我对物理文件格式没有真正的保证。
放弃 我在超级用户上发布了这个问题 ,没有任何反应,但是我正在一个域上工作,想以pipe理员身份更换许多计算机,所以我相信这也是关于这个话题的。 题 在Windows 7和Outlook 2013中,保存为.xml的附件似乎可以在Internet Explorer中打开,而不pipe设置为默认程序的内容。 在“控制面板”中的“默认程序”下,我的用户将.xml与其select的程序相关联(如果有问题,请使用UAD Reader 。)如果用户桌面上有.xml文件,并且双击它,如预期。 但是,当相同的.xml文件是Outlook中的附件时,它始终在Internet Explorer中打开。 在阅读这篇Microsoft文章之后 ,似乎并不是Outlook安全设置,因为Outlook允许以附件forms打开该文件,而不是在预期的程序中。 有没有办法改变这个? 我不相信有这个内置的GPO。 也许是一个registry值,将迫使它在我想要的程序中打开? 我正在寻找一个解决scheme,不涉及安装第三方软件,可以通过组策略或login脚本来处理。 更新:如果我右键单击并select“打开方式…”并将记事本++设置为默认的程序,然后Outlook将在记事本++中打开XML文件。 如果我将其设置回UAD阅读器,Outlook将启动IE以打开.xml文件。 我不确定这是否是UAD Reader的问题,我遇到了一个奇怪的Windows安全function,或者其他的东西。
我目前有一个问题,当试图build立一个无人值守安装的Windows 7时。当硬盘没有分区安装进展良好。 但是,如果硬盘驱动器具有任何现有分区,则会引发一条错误消息,指出无法创build新分区。 所以我最终不得不启动一个live CD并在进行无人参与安装之前删除分区。 我不认为WillWipeDisk能够完成它的工作。 无人参与安装文件可以擦除驱动器上的现有分区,然后创build无人参与文件中列出的新分区? 以下是XML的磁盘configuration部分: <DiskConfiguration> <Disk wcm:action="add"> <CreatePartitions> <CreatePartition wcm:action="add"> <Order>1</Order> <Size>100</Size> <Type>Primary</Type> </CreatePartition> <CreatePartition wcm:action="add"> <Order>2</Order> <Type>Primary</Type> <Extend>true</Extend> </CreatePartition> </CreatePartitions> <ModifyPartitions> <ModifyPartition wcm:action="add"> <Active>true</Active> <Format>NTFS</Format> <Label>System Reserved</Label> <Order>1</Order> <PartitionID>1</PartitionID> <TypeID>0x27</TypeID> </ModifyPartition> <ModifyPartition wcm:action="add"> <Active>true</Active> <Format>NTFS</Format> <Label>OS</Label> <Letter>C</Letter> <Order>2</Order> <PartitionID>2</PartitionID> </ModifyPartition> </ModifyPartitions> <DiskID>0</DiskID> <WillWipeDisk>true</WillWipeDisk> </Disk> <WillShowUI>OnError</WillShowUI> </DiskConfiguration> <ImageInstall> <OSImage> <InstallTo> <DiskID>0</DiskID> […]
出于未知的原因,我pipe理的很多(Windows XP SP3)计算机最近都开始创build一个名为Microsoft XPS Document Writer的新的伪打印机对象,这似乎毫无用处。 这是一个问题,因为对于某些用户(通过dynamic本地用户通过ZENworks创build的)XPS文档编写器被设置为默认打印机! 当我为这些机器制作图像时,我确保从“打印机和传真”区域中删除此伪打印机对象。 一年之后,我首先想知道最近是什么导致它被重新创build。 我find了一个工具去除伪打印机对象,驱动程序和其他相关的东西。 麻烦的是,这是一个仅限于GUI的应用程序,需要用户进行交互。 我喜欢这样的实用工具,只需删除伪打印机对象,驱动程序等, 而无需用户交互 ,因此可以从login脚本运行。 否则,我需要知道如何手动执行XPS删除工具执行的每个步骤,然后编写脚本。 啊! 任何帮助将不胜感激!
我正在为IIS 7.5 Express的applicationhost.configconfiguration一个站点: <site name="default" id="1" serverAutoStart="true"> <application path="/"> <virtualDirectory path="/" physicalPath="%IIS_BIN%\..\Somewhere\Else" /> <!– ^^^^^^^^^^^^^^^^^^^^^^^^^^^ –> </application> … </site> 我发现如图所示指定相对path似乎不起作用,将导致HTTP 500.19 Internal Server Error 。 IIS进一步报告错误代码0x8007007b ,在一些Googlesearch后,似乎表明一个无效的文件path语法。 有什么办法解决这个错误,以便我可以使用相对的物理path为我的网站的根?