PowerShellでのエラー
半日たっても閲覧数0でしたので、タイトルとカテゴリーを変えました。
MBSAを用いてWindowsUpdateのオフライン適用に挑戦しています。
コマンドプロンプトで
mbsacli.exe /xmlout /unicode /nd /nvc /catalog wsusscn2.cab > Updatecheck.xml
により出力されたUpdatecheck.xmlの中身は
<XMLOut>
<CatalogInfo><CreationDate>2017-08-07T03:17:51Z</CreationDate></CatalogInfo>
<Check ID="500" Grade="2" Type="5" Cat="1" Rank="1" Name="Developer Tools, Runtimes, and Redistributables のセキュリティ更新プログラム" URL1="Help/Check5311.html" URL2="Help/Check5311fix.html" GroupID="48ce8c86-6850-4f68-8e9d-7dc8535ced60" GroupName="Developer Tools, Runtimes, and Redistributables"><Advice>不足しているセキュリティ更新プログラムが 2 個あります。</Advice><Detail><UpdateData ID="MS11-025" GUID="bb49cc19-8847-4986-aa93-5e905421e55a" BulletinID="MS11-025" KBID="2538242" Type="1" IsInstalled="false" Severity="3" RestartRequired="false"><Title>Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージのセキュリティ更新プログラム (KB2538242)</Title><References><BulletinURL>http://www.microsoft.com/technet/security/bulletin/MS11-025.mspx</BulletinURL><InformationURL>http://go.microsoft.com/fwlink/?LinkId=216804</InformationURL><DownloadURL>http://download.windowsupdate.com/msdownload/update/software/secu/2011/06/vcredist_x86_b8fab0bb7f62a24ddfe77b19cd9a1451abd7b847.exe</DownloadURL></References></UpdateData><UpdateData ID="MS11-025" GUID="729a0dcb-df9e-4d02-b603-ed1aee074428" BulletinID="MS11-025" KBID="2538243" Type="1" IsInstalled="false" Severity="3" RestartRequired="false"><Title>Microsoft Visual C++ 2008 Service Pack 1 再頒布可能パッケージのセキュリティ更新プログラム (KB2538243)</Title><References><BulletinURL>http://www.microsoft.com/technet/security/bulletin/MS11-025.mspx</BulletinURL><InformationURL>http://go.microsoft.com/fwlink/?LinkId=216803</InformationURL><DownloadURL>http://download.windowsupdate.com/msdownload/update/software/secu/2011/05/vcredist_x64_a7c83077b8a28d409e36316d2d7321fa0ccdb7e8.exe</DownloadURL></References></UpdateData></Detail></Check>
とずらずらと続いていっています。
これを読むのにExcelViewerのインストールはしたくないので
linuxのxmltoを使おうとしました。
xmlファイルをutf8に変換後、
(最初"parser error : Input is not proper UTF-8, indicate encoding !"というメッセージが出たため)
$ xmlto -o ./html_xml/ html Updatecheck_utf8.xml
xmlto: /home/mess/Desktop/Updatecheck_utf8.xml does not validate (status 1)
xmlto: Fix document syntax or use --skip-validation option
/home/mess/Desktop/Updatecheck_utf8.xml:16: parser error : Specification mandate value for attribute teData
teData ID="MS11-025" GUID="729a0dcb-df9e-4d02-b603-ed1aee074428" BulletinID="MS1
^
<以下略>
こんな感じでhtml変換に失敗します。
LibreOfficeCalcでメニューから「データ」、「xmlソース」を選択し
ソースファイルでこのxmlファイルを選んでも「インポート」ボタンが暗いままで先に進めません。
ただ、結局やりたかったことは
<DownloadURL>
と
</DownloadURL>
に挟まれた部分を次々に抜き出していって、さらに行頭にwgetをつけて
wget *ttp://download.windowsupdate.com/msdownload/update/software/secu/2011/06/vcredist_x86_b8fab0bb7f62a24ddfe77b19cd9a1451abd7b847.exe
wget *ttp://download.windowsupdate.com/msdownload/update/software/secu/2011/05/vcredist_x64_a7c83077b8a28d409e36316d2d7321fa0ccdb7e8.exe
(ここは最初の投稿時にサポート担当の方に編集されたようです)
と続いていくスクリプトを自動生成したいということです。
ここまで書いた後、
http://dolls.orz.hm/?p=12070
http://dolls.orz.hm/?p=6166
にPowerShellを使ったやり方が書いてあるのに気づき、ここを参考にして管理者権限でPowerShellにおいて次の2行のコマンドを実行したのですが
$xml = [XML](Get-Content Updatecheck.xml)
$xml.XMLOut.Check.Detail.UpdateData | Where-Object {$_.IsInstalled.Contains("false")} | Select-Object {$_.References.DownloadURL} | Out-File downloadlist.txt> type .¥downloadlist.txt
Out-File : パラメーター 'Encoding の引数を確認できません。引数 "type" は、ValidateSet 属性で指定されたセット "unicode、
utf7、utf8、utf32、ascii、bigendianunicode、default、oem" に属していません。このセットの引数を指定して、コマンドを再度
実行してください。
発生場所 行:1 文字:141
+ $xml.XMLOut.Check.Detail.UpdateData | Where-Object {$_.IsInstalled.Contains("false")} | Select-Object {$_.References.
DownloadURL} | Out-File <<<< downloadlist.txt> type .¥downloadlist.txt
+ CategoryInfo : InvalidData: (:) [Out-File]、ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.OutFileCommand
1行目は問題ないですが、2行目がご覧のようになります。
どのようにすればいいでしょうか?
よろしくお願いします。
お礼
ウィンドウズコンポーネントの追加と削除から、ルート証明証の更新の チェックをはずしたら、エラーがでなくなりました。 素人の自分には、よくわからないのですが、なんとか自己解決?致しました。 お返事が遅れまして申し訳ございません。 有難うございました。