liujia 发布的文章

DCImanager 5 - Windows 10 - Unattend.xml

因为 ispsystem 官方文件源中的 metainfo.xml 中,仅写了支持 DCImgr6,5版本的 DCImanager 系统不能自动获取到 Windows 10 的模板。但可以自己下载文件后,尝试修改一下。

a. 修改 metainfo.xml 文件,让它支持 dcim5,如下例内容:

<?xml version="1.0"?>
<doc>
  <osname>Windows 10</osname>
  <version>5.130</version>
  <tags>windows,windows10,windows10-pro-en-21h2</tags>
  <support>
    <elem version="5.130.0">DCImgr</elem>
  </support>
  <rebootcount>1</rebootcount>
  <type>ostemplate</type>
  <ipxeconf type="tftp">ipxe.conf</ipxeconf>
  <loader>undionly-kpxe.0</loader>
  <loaderefi64>ipxe.efi</loaderefi64>
  <pxelinuxcfg>pxelinux.conf</pxelinuxcfg>
  <installcfg>install.bat</installcfg>
  <file>Unattend.xml</file>
  <file>UnattendEFI.xml</file>
  <samba>win10</samba>
  <macro>
    <!-- See all langs in win2019/sources/\$OEM\$/\$\$/SETUP/SCRIPTS/langpacks -->
    <elem name="($LANG)"/>
    <elem name="($WINNTSETUP)"/>
    <!-- See in the OS "tzutil /l" -->
    <elem name="($TIMEZONE)"/>
  </macro>
  <size>10175</size>
  <date>2022-02-03 13:59:55</date>
  <install_result>ok</install_result>
</doc>

b. Unattend.xml 的文件内容:

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="windowsPE">
        <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <UserData>
                <ProductKey>
            <!--Key>($PRODUCTKEY)</Key-->
            <Key></Key>
            <WillShowUI>Never</WillShowUI>
                </ProductKey>
                <AcceptEula>true</AcceptEula>
            </UserData>
            <DiskConfiguration>
                <WillShowUI>OnError</WillShowUI>
                <Disk wcm:action="add">
                    <CreatePartitions>
                        <CreatePartition wcm:action="add">
                            <Order>1</Order>
                            <Size>100</Size>
                            <Type>Primary</Type>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Extend>true</Extend>
                            <Order>2</Order>
                            <Type>Primary</Type>
                        </CreatePartition>
                    </CreatePartitions>
                    <ModifyPartitions>
                        <ModifyPartition wcm:action="add">
                            <Active>true</Active>
                            <Format>NTFS</Format>
                            <Label>System</Label>
                            <Order>1</Order>
                            <PartitionID>1</PartitionID>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>2</Order>
                            <PartitionID>2</PartitionID>
                            <Label>Windows</Label>
                            <Letter>C</Letter>
                            <Format>NTFS</Format>
                        </ModifyPartition>
                    </ModifyPartitions>
                    <DiskID>0</DiskID>
                    <WillWipeDisk>true</WillWipeDisk>
                </Disk>
            </DiskConfiguration>
            <ImageInstall>
                <OSImage>
                    <InstallTo>
                        <DiskID>0</DiskID>
                        <PartitionID>2</PartitionID>
                    </InstallTo>
                    <InstallFrom>
                        <MetaData wcm:action="add">
                            <Key>/IMAGE/INDEX</Key>
                            <Value>1</Value>
                        </MetaData>
                    </InstallFrom>
                    <WillShowUI>OnError</WillShowUI>
                    <InstallToAvailablePartition>false</InstallToAvailablePartition>
                </OSImage>
            </ImageInstall>
        </component>
        <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <SetupUILanguage>
                <UILanguage>en-US</UILanguage>
            </SetupUILanguage>
            <InputLocale>0409:00000409</InputLocale>
            <SystemLocale>en-US</SystemLocale>
            <UILanguage>en-US</UILanguage>
            <UILanguageFallback>en-US</UILanguageFallback>
            <UserLocale>en-US</UserLocale>
 </component>
    </settings>
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <UserAccounts>
                <AdministratorPassword>
                    <Value>($PASS)</Value>
                </AdministratorPassword>
            </UserAccounts>
            <OOBE>
                <HideEULAPage>true</HideEULAPage>
            <SkipMachineOOBE>true</SkipMachineOOBE>
            <SkipUserOOBE>true</SkipUserOOBE>
            <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
            <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
        <ProtectYourPC>3</ProtectYourPC>
            </OOBE>
        </component>
        <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <InputLocale>en-US</InputLocale>
            <SystemLocale>en-US</SystemLocale>
            <UILanguage>en-US</UILanguage>
            <UserLocale>en-US</UserLocale>
        </component>
    </settings>
    <settings pass="offlineServicing">
    </settings>
<settings pass="specialize">
    <component name="Microsoft-Windows-TCPIP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <Interfaces>
            <Interface wcm:action="add">
                <Ipv4Settings>
                    <DhcpEnabled>false</DhcpEnabled>
                    <RouterDiscoveryEnabled>false</RouterDiscoveryEnabled>
                </Ipv4Settings>
                <Ipv6Settings>
                    <DhcpEnabled>false</DhcpEnabled>
                    <RouterDiscoveryEnabled>false</RouterDiscoveryEnabled>
                </Ipv6Settings>
                <Identifier>($WIN_MAC)</Identifier>
                <UnicastIpAddresses>
                    <IpAddress wcm:action="add" wcm:keyValue="1">($IP)/($NETMASK_SHORT)</IpAddress>
                    <IpAddress wcm:action="add" wcm:keyValue="2">($IPv6)/($NETMASKv6)</IpAddress>
                </UnicastIpAddresses>
                <Routes>
                    <Route wcm:action="add">
                        <Identifier>1</Identifier>
                        <Metric>10</Metric>
                        <NextHopAddress>($GATEWAYv4)</NextHopAddress>
                        <Prefix>0.0.0.0/0</Prefix>
                    </Route>
                    <Route wcm:action="add">
                        <Identifier>2</Identifier>
                        <Metric>10</Metric>
                        <NextHopAddress>($GATEWAYv6)</NextHopAddress>
                        <Prefix>::/0</Prefix>
                    </Route>
                </Routes>
            </Interface>
            <!--Interface wcm:action="add">
                <Ipv4Settings>
                    <DhcpEnabled>false</DhcpEnabled>
                    <RouterDiscoveryEnabled>false</RouterDiscoveryEnabled>
                </Ipv4Settings>
                <Ipv6Settings>
                    <DhcpEnabled>false</DhcpEnabled>
                    <RouterDiscoveryEnabled>false</RouterDiscoveryEnabled>
                </Ipv6Settings>
                <Identifier>Ethernet 2</Identifier>
            </Interface-->
        </Interfaces>
    </component>
    <component name="Microsoft-Windows-DNS-Client" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <Interfaces>
            <Interface wcm:action="add">
                <Identifier>($WIN_MAC)</Identifier>
                <DNSDomain>($HOSTNAME)</DNSDomain>
                <DNSServerSearchOrder>
                    <IpAddress wcm:action="add" wcm:keyValue="1">($NAMESERVER)</IpAddress>
                </DNSServerSearchOrder>
                <DisableDynamicUpdate>false</DisableDynamicUpdate>
                <EnableAdapterDomainNameRegistration>false</EnableAdapterDomainNameRegistration>
            </Interface>
        </Interfaces>
    </component>
    <component name="Microsoft-Windows-TerminalServices-LocalSessionManager" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
          <fDenyTSConnections>false</fDenyTSConnections>
      </component>
      <component name="Microsoft-Windows-TerminalServices-RDP-WinStationExtensions" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
          <UserAuthentication>0</UserAuthentication>
      </component>
    <component name="Networking-MPSSVC-Svc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <FirewallGroups>
            <FirewallGroup wcm:action="add" wcm:keyValue="RemoteDesktop">
                <Active>true</Active>
                <Group>@FirewallAPI.dll,-28752</Group>
                <Profile>all</Profile>
            </FirewallGroup>
        </FirewallGroups>
    </component>
    <component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <RunSynchronous>
           <RunSynchronousCommand wcm:action="add">
              <Description>Delete route</Description>
              <Order>1</Order>
              <Path>cmd /c echo IF "($IPv4)"=="" (route delete 0.0.0.0/0) ELSE IF "($IPv6)"=="" (route delete ::/0) >> %windir%\setup\scripts\SetupComplete.cmd</Path>
              <WillReboot>OnRequest</WillReboot>
           </RunSynchronousCommand>
           <RunSynchronousCommand wcm:action="add">
                       <Description>Disable Network Discovery</Description>
                       <Order>2</Order>
                       <Path>cmd /c echo cmd /c %windir%\System32\WindowsPowerShell\v1.0\powershell.exe -command "&amp; {&amp;'Disable-NetFirewallRule' –DisplayName '@FirewallAPI.dll,-32752'}" >> %windir%\setup\scripts\SetupComplete.cmd</Path>
                       <WillReboot>OnRequest</WillReboot>
           </RunSynchronousCommand>
                   <RunSynchronousCommand wcm:action="add">
                       <Description>Setting multiple nameservers</Description>
                       <Order>3</Order>
                       <Path>cmd /c echo cmd /c %windir%\setup\scripts\nameservers.cmd ($NAMESERVERS) >> %windir%\setup\scripts\SetupComplete.cmd</Path>
                       <WillReboot>OnRequest</WillReboot>
                   </RunSynchronousCommand>
           <RunSynchronousCommand wcm:action="add">
                       <Description>Enable language</Description>
                       <Order>4</Order>
                       <Path>cmd /c %windir%\System32\WindowsPowerShell\v1.0\powershell.exe %windir%\setup\scripts\lang.ps1 "($LANG)" >>%windir%\setup\scripts\lang.log 2>&amp;1</Path>
                       <WillReboot>Never</WillReboot>
                   </RunSynchronousCommand>
           <RunSynchronousCommand wcm:action="add">
              <Description>finish</Description>
              <Order>5</Order>
                      <Path>cmd /c echo cmd /c %windir%\setup\scripts\wget.exe -O- "($FINISH)" >> %windir%\setup\scripts\SetupComplete.cmd</Path>
              <WillReboot>OnRequest</WillReboot>
           </RunSynchronousCommand>
           <RunSynchronousCommand wcm:action="add">
                      <Description>Postinstall script listener</Description>
                      <Order>6</Order>
                      <Path>cmd /c IF "($HAS_RECIPE)"=="1" (echo cmd /c %windir%\System32\WindowsPowerShell\v1.0\powershell.exe  %windir%\setup\scripts\winrm_listener.ps1 "($HOSTNAME)" "($LOCATIONIP)") >> %windir%\setup\scripts\SetupComplete.cmd</Path>
                      <WillReboot>OnRequest</WillReboot>
                   </RunSynchronousCommand>
                   <RunSynchronousCommand wcm:action="add">
                       <Description>Put key</Description>
                       <Order>7</Order>
                       <Path>cmd /c echo ($PRODUCTKEY) >> %windir%\setup\key</Path>
                       <WillReboot>OnRequest</WillReboot>
                   </RunSynchronousCommand>
                   <RunSynchronousCommand wcm:action="add">
                       <Description>Activating windows</Description>
                       <Order>8</Order>
                       <Path>cmd /c echo cmd /c %windir%\setup\scripts\activate.cmd >> %windir%\setup\scripts\SetupComplete.cmd</Path>
                       <WillReboot>OnRequest</WillReboot>
                   </RunSynchronousCommand>
                   <RunSynchronousCommand wcm:action="add">
                       <Description>TZ setup</Description>
                       <Order>9</Order>
                       <Path>cmd /c IF NOT "($TIMEZONE)" == "()" ( IF NOT "($TIMEZONE)" == "" (tzutil /s "($TIMEZONE)"))</Path>
                       <WillReboot>OnRequest</WillReboot>
                   </RunSynchronousCommand>
           <RunSynchronousCommand wcm:action="add">
                  <Description>Enable administrator</Description>
                  <Order>10</Order>
                  <Path>net user administrator /active:yes</Path>
                  <WillReboot>OnRequest</WillReboot>
               </RunSynchronousCommand>
        </RunSynchronous>
    </component>
</settings>
    <cpi:offlineImage cpi:source="catalog:c:/distr/7601.17514.101119-1850_x64fre_server_eval_en-us-grmsxeval_en_dvd/sources/install_windows server 2008 r2 serverstandard.clg" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

c. 因为启动的boot.wim和安装的install.wim都缺少机子所需的英特尔网卡驱动,所以替换之

参考:

买芹菜、红萝卜,准备过年

农历二十八,过两工就系年初一。上昼十点,我出门到果园市场买菜,准备过年食。我走进巷道,睇到常买的菜摊。问吖姨。

“(红)萝卜几多钱?”我指了一下。
“两吊把尔。称几多来?”
“三斤。”
“尔来拓咪?”
“尔帮我拓就得。”我敞来胶袋,吖姨熟练地从萝卜堆中挑拣出好看些的萝卜放进来。
“芹菜几多钱?”我又问。
“芹菜捞蒜一齐称,四吊钱。单芹菜,三吊。”
“买滴芹菜来。”
“吖够了?称齐五吊钱来咪?把两条蒜尔,一样价钱了。”吖姨大方地说。
“好。”
“吖每其它菜了?”吖姨称好芹菜,又问。
“够了,够了。顶里可以食好多工了。”
“几只人食啊?”
“一只啊。”

我本还想买截“手撕鸡”来食嘅。乃知得,老板常在的摊位不见到。我又走到市场后背巷,也不曾见到。“手撕鸡”摊档跟不到,我又走到市场路口,想买“骨香鸡”。走到一睇,“骨香鸡”摊档的门不曾开。吖咪嘅早就卖完归昼了?我心里想。果园市场的人流量,相对平时,多了一些,但差别不算大。

我买到三斤红萝卜、差不多两斤芹菜。如果按一工食一斤青菜,那我可以食到年初三了。以前过年时,我妈会做一盘“杂锦菜”,就系将红萝卜切成丝,跟芹菜、蒜等一齐煮,又甜又香,好好食嘅。一大盘都食得光。

hp_sh_guo-nian-2023_10.jpg

兴银理财 - 稳利季季增利A - 持有约六个月 - 算得年化收益率约 2.14%

产品:兴银理财 - 稳利季季增利A - 兴业银行天天万利宝稳利6号G款
购买平台:微众银行
购于:2022-07-12,净值1.04049
赎回于:2023-01-12,净值1.05172
持有:184天,约六个月
年化收益率:2.14%

评价:终于有一款季开产品,持有半年后,年化收益率能超过“七天通知存款”1.85%的了。相比杭银理财的曾经明星热度产品“幸福99”好得多。

杭银理财 - 幸福99添益90天1250197 - 持有约六个月 - 算得年化收益率约 1.38%

产品:杭银理财 - 幸福99添益90天
购买平台:微众银行
购于:2022-07-11,净值1.0412
赎回于:2023-01-10,净值1.0484
持有:183天,约六个月
年化收益率:1.38%

评价:以前“幸福99”产品的热度很高,可以说是杭银理财的明星产品。但自11月开始下跌后,持有半年的收益仅1.38%,比不上“七天通知存款”1.85%的年化收益率。

在恒信口腔医院有限公司洗牙

盼到了周一,我高兴地吃完早餐,撑着伞向县人民医院走,想洗牙。上周四,肖医生交待过我,“周日来洗牙。不,周一吧,周一人少些”。

天灰蒙蒙的,下着小雨,山头绕着水汽,分不出边。路面不仅湿,不少地方还有积水。我低着头,虽然想走快些,但不得不放慢脚步来,因为要挑干些的地方落脚。走了约四十分钟,我到了口腔科室前,看表约十点十分。我看到门口三排凳都坐了人,心里喊不妙,今天就诊的人多。我往玻璃门靠,想问一下护士能不能洗牙。护士很忙,正拦住一个想往里走的人问话。我看到那人取下口罩,张开嘴,让护士瞧了瞧。我听到了个大概,那人想拔牙,且现在非拔不可。然后护士教他在手机上挂号。我又等了等,伸侧个头,问护士。
“前几工,肖医生话,今日来洗牙嘅。”
“上昼不得了,好多人。佢不曾话系下昼来咩?”护士答。
“不曾啊。佢话星期一较得闲,我争来嘅啊。”
“等不到嘅了。尔睇,里下嘅多病人。冇时间洗牙嘅了。”
“吖可以帮我问下肖医生啊?”我还想争取一下。
“洗牙也系我齐家护士来洗。医生不得闲嘅。尔下昼来哈。”护士说完就忙其它了。

我心里觉得别扭。如果我知道周一上午很忙,那我会在下午来。我不知道这里哪个时间段忙,哪个时间段不忙,非得来了现场才知道。如我原本1日就想来看牙的,但看到想要的医生没有排班就推迟到了2日。手机上在1日明明显示2日有那个医生排班的,但到了2日的排班又没了。所以我就又推迟挂了5日的医生号。5日到现场时,才知道这个医生被调到其它科室。我不得不在5日看其他医生。原本是周日洗牙的,但医生说周一空闲些,让周一来。今天周一上午我来了,护士又说忙,要我下午来。原本有预约系统,你医院不按预约系统的排班来坐班。那我就按着医生的口头交待来洗牙吧,护士你却又说这个时间段忙。预约系统的排班不算数,医生的口头交待也不算数。我知道病有轻的、有急的,我也愿意让急的人先看病,但总不能让我来来回回,心里没个定数吧。

我从医院里出来时,天还下着小雨。我闷闷地走了一小段路,踩着了好几个水坑,水渗进鞋里,脚趾头和脚弓明显感觉到冷。我到十字路口时,看见有小车来。我就停步,让它先过。身旁也有摩托车开过。车轮驶过,嘶唰几声。我不由想起网上说的一句话,“有一种病,是穷出来的,叫‘穷病’”。是啊,如果我有小轿车,就不会如现在这样怨天怨人了。我连五吊钱的摩托车钱也不舍得出。我用又湿又冷的脚,慢腾腾地走在公路上。我扯下了口罩,因为室外冷,嘴里呼出的气从口罩上边冒出,使眼镜起了雾,我看不清路了。

我边走边想,如果医院没空洗牙,不如去路边的牙店洗,反正洗牙一般不是医生操作的,有操作经验的人就行。我就顺着和平大道走,走到聚隆旁的“恒信口腔”。上楼一看,呀,前台两边也坐了不少人。我犹豫着,前台一个姑娘远远地喊我。
“做惹?”她问。
“洗牙。”我答。
“以前吖曾来过?”
“不曾。我本想在县医院洗,佢话好忙,就来顶里睇下。”
“填下表。”
“洗牙有两只价钱。120和150。尔爱乃种?”
“有惹区别?”
“国产和进口设备区别。用进口的,会舒服滴。”
“120。”我想了一会儿,答。

前台收走我填写的表后,让我等。我站在厅里等,看墙上贴的画报。约五分钟后,有人喊我的名字,我迈腿走向她,跟着她到了一个隔间。这个隔间是半开放式的,有四张躺凳。那边不时传来一个小孩的哭声。我躺下,侧头,问她。
“你是属于护士,还是医生?”
“护士。”
“你选择的是120元的。这还有一次性的托盘等用品,费用是8块钱。先告诉你。”她说。
“好。”既然我已经躺下了,估计也不好意思说不要了。

其间,姑娘说我的牙松,不能使劲洗。我点头。牙周病这么多年,我或多或少对自己这一口烂牙有些了解,如知道最近哪颗牙最易受刺激。连咧嘴笑,换吸气那会儿功夫,都会觉得牙冷得疼。果然,当姑娘处理我那个右上板牙时,痛得我牙那儿似乎有针在灼,小腿上的血像沙子一样往上澷。我想把注意力放在别的地方,减轻些痛感。我转着眼球,看了看头顶上的灯。灯光主体是白的,但右上角有一盏黄光的灯泡。我又往眼角瞄,看到戴着眼镜的她,眼镜前边还有一张塑料的护面罩。我的眼光透过护面罩,穿过了镜片,看到了她的眼睛。黑黑的眼球一动也不动。啊……眼珠子多黑,多漂亮啊。如果通过微信朋友圈积点赞可以免费洗牙,那么我愿意在心里大声地赞你二十次,“姑娘,你好漂亮喔”。
“牙垢清除了。有些烟渍因为牙比较松,所以没清。”护士停下了操作,对我说。“你的牙还是有些发炎。一般建议洗牙后,涂上些消炎药。”
“嗯……几多钱?”我坐了起来,但没看她,低着头问。
“150元。整支的。”
“那先不上药了。多谢。”我站了起来。“驷前台交钱就得咪?”

我走到前台,要交钱。姑娘从间隔室里出来,对前台说128元。我在手机上支付了。我边下楼梯边想,这里年轻人多些,洗牙不用排队。但如我这样的中老年人,可能还是去医院洗牙适合些,操作上也规范些。奈何县医院放我几次飞机,欲洗不能。