プロンプトでのKBのアンインストール

コマンドプロンプトでのKBのアンインストール(Windows7以降)

wusa.exe /uninstall /KB:893810 /quiet /norestart

コマンドからPowerShellを管理者権限で実行

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "Start-Process powershell.exe -Verb runas"

追記)powershell.exe -File [ファイルパス]  オプションで指定したスクリプト実行できるらしい・・・。
怖いな~、Set-ExecutionPolicy Restricted すとこ。

Vistaのアップグレード

Windows7 Professional 32bit 版にアップグレード、完了です・・・。

前回のエントリーでKBをアンインストールするコマンドをご紹介しましたが、パッケージマネージャーの /up オプションにファイル名を指定しないといけなかったのが原因だったようです。

結局、スタンドアロンのKB KB928439、KB968930 をダウンロードしてC:\TEMPに保存した後、管理者権限でコマンドプロンプトから

expand c:\temp\Windows6.0-KB968930-x86.msu –F: Windows6.0-KB968930-x86.xml c:\temp

して、.xml ファイルをメモ帳で開き属性値を変更

<package action="install">↓
<package action="remove">変更
start /w pkgmgr /n:c:\temp\Windows6.0-KB968930-x86.xml

pkgmgrしてpowershellを手動でアンインストールできました。KB928439も同様に。

Windows7 Professional のファイルの展開が20%で止まるというのは、私も体験しました。そのときは、Windows Defender を有効にしていた時でした。Defenderを無効にしたらスムーズにインストールできました。

(^ ^;

PowerShellの削除でハマッた

Xperia Z5のWi-Fi が「認証に問題」と出るので電源ボタン長押しして再起動したら治りました。

話は変わりますが、手元のVistaをWindows7 Professional にアップグレードしようとしたら、「PowerShellを削除してください」と言われて困りました。Windows Update がCPU100%になるからと言って更新履歴を削除してはいけない(戒め)
Vista の場合、KB928439、KB968930 をコマンドプロンプトから

ORFILES /P %WINDIR%\servicing\Packages /M *KB928439 *.mum /c “cmd /c echo Uninstalling package @fname && start /w pkgmgr /up:@fname /norestart”

叩く解決方法もあるんすねぇ。*KB928439 *.mumみたいなファイルはないって言われたゾ。おい、おかっしいなぁ。もうパッケージマネージャー(pkgmgr.exe)から手動で削除してやるからなぁ。

http://golorih.exblog.jp/20639234/

https://support.microsoft.com/ja-jp/kb/940410

システムの復元コマンドレット

今日もPowerShellの写経を致しました。(合掌)

Windows PowerShellによるシステムの復元コマンドレットのまとめ
PowerShellを管理者として実行

システムの復元を有効にする
Enable-ComputerRestore C:\

復元ポイントを取得する
Get-ComputerRestorePoint

復元ポイントを作成する
Checkpoint-Computer "20160726byPowerShell"

復元ポイントからシステムを復元する
Restore-Computer -RestorePoint 復元ポイント番号(Sequence Number)

【改訂新版】 Windows PowerShell ポケットリファレンス

Excelでファイルリストを取得する

今日はVBAのお勉強です。[ミュージック]フォルダのアーティスト、アルバム、曲名をワークシートにリスト出力します。曲名ファイルがカレントディレクトリの2段下にあるので、For Each文を3回ネストしています。

Public Sub get_music_list()
  Dim Obj, f, g, h As Object
  Dim DirName as String
  Set Obj = CreateObject("Scripting.FileSystemObject")
  Set DirName = Environ("UserProfile") & "\Music"
  Dim i, j As Long
  i = 1: j = 0
  
  For Each f In Obj.GetFolder(DirName).SubFolders
    For Each g In Obj.GetFolder(DirName & "\" & Obj.GetFolder(f).Name).SubFolders
        ActiveSheet.Cells(1, i).Value = Obj.GetFolder(f).Name
        ActiveSheet.Cells(2, i).Value = Obj.GetFolder(g).Name
        For Each h In Obj.GetFolder(DirName & "\" & Obj.GetFolder(f).Name & "\" & Obj.GetFolder(g).Name).Files
            ActiveSheet.Cells(3 + j, i) = h.Name
            j = j + 1
        Next h
        i = i + 1
        j = 0
        Set h = Nothing
    Next g
    Set g = Nothing
  Next f
  i = 0
  Set Obj = Nothing
  Set f = Nothing
End Sub

http://www.moug.net/tech/exvba/0060001.html
http://vba-geek.jp/blog-entry-52.html

ちなみにPowerShellでは、同じ様なことを以下のコマンドで可能です。

>cd $HOME\Music
>Get-ChildItem -Recurse -Name >C:\src\music.txt

http://www.atmarkit.co.jp/ait/articles/0808/22/news129.html

Wi-Fiアラートの原因

前回のエントリーではランダムなSSIDをルーターに設定することによるセキュリティの向上をお伝えしましたが、依然としてKasperskyから以下のアラートが表示されるので検索したところ、原因が判明したので書き記しておきます。

nortification

結果から申し上げると、Windows10の不適切なネットワークエリアの設定でした。

2016-07-06 (1)

http://www.atmarkit.co.jp/ait/articles/1509/07/news018.html

詳細は上記URLにアナウンスされていますが、Windows10のUIがWindows7では簡単だったネットワークの場所(パブリック|プライベート)の変更が難しくなっていたようです。

変更するには、[デバイスとコンテンツの検索]を表示させるとありますが、当方の環境では見当たりませんでした。解決するには、PowerShellを管理者として実行して以下のコマンドを打ちます。

Get-NetConnectionProfile (ネットワーク名確認)
Set-NetConnectionProfile -Name "ネットワーク名" -NetworkCategory PrivateまたはPublic

これで様子見ですかね。

OSのプロダクトキー

ある時ふと、プリインストールのVAIO ノートのOSのプロダクトキーが気になって、コマンドプロンプトで調べたことがあります。(コマンドプロンプトを管理者権限で実行 slmgr /dlv)結果は、25桁の末尾5桁が表示されており、本体裏のシールとは異なるものでした。

そこで本当のプロダクトキーを調べたくなって、フリーソフトのWindows Productkey Viewer をダウンロード解凍して表示したところ、やはり本体裏のシールとは違うキーが表示されていました。プロダクトキー表示ソフトには他にも、Magical Jelly Beens のKeyFinder などがありますがその時、セキュリティソフトのウイルス検知が作動して自動的に削除されてしまいました。

そのせいかどうか分かりませんが、再びプロダクトキーを見てみるとBBBBB-BBBBB-BBBBB-BBBBB-BBBBB と表示されます。Google で調べてみると、MAK (Multiple Activation Keys)あるいはVLK (Volume License Keys)の場合そのように表示されるとのことです。(最初に調べた時にバックアップを取って置いて良かったです。)OSのプロダクトキーは通常、ローカルのレジストリに暗号化されて保存されるそうですが、レジストリから削除されると表示ソフトでも見られないようです。

安全にプロダクトキーを知る方法として、PowerShell のスクリプトを使う方法があります。(PowerShell:Windows に登録されている25桁のライセンス キーを表示させる for Windows 7 / 8.1

PowerShell を管理者権限で、> Set-ExecutionPolicy RemoteSigned してスクリプトの実行セキュリティポリシーを変更する – @IT した後、上記スクリプトをメモ帳で、”Get-ProductKey.ps1″ として保存したものをコンソールから、> .\Get-ProductKey として実行するとプロダクトキーが表示できました。(PowerShell スクリプトの作成と実行)実行後、ポリシーを>Set-ExecutionPolicy Restricted して元に戻すことを忘れずに。

フリーソフトを使うときは、自己責任と痛感しました。ちなみに、使用しているWindows OS が正規品かどうかを確認するには、[マイ コンピュータ] を右クリック、[プロパティ] から[システム情報] を表示して、[Windows ライセンス認証] という項目から[オンラインで詳細情報を表示する] リンクをクリックして正規のWindows かどうかを[検証] して見て下さい。