PowerShellの動作がWindows 10で若干変更

Windows 8.1 から 10 にアップグレードして約2週間、ほとんどそのままの環境で使えています。支障が出たのが自作のファイル バックアップ スクリプトで、PowerShell から robocopy.exe を呼び出すときにエラーになりました。Windows 8.1 の PowerShell までは、バッドノウハウの一種なのでしょうが経験的に、外部プログラムに引数を渡すときに空白区切りの文字列にすれば動いていたのでした。

古いスクリプトの引数の渡し方(文字列による独自手法)は、こんな感じ:

$prms = """C:\org\documents""" + " " + """D:\bak\documents""" + " " + "/S" + " " + "/XD ""cache"" ""cache2""";
cmd /c robocopy $prms;

Windows 10 の PowerShell で動くように書きなおした現在のスクリプトは、こんな感じ:

$prms = ( """C:\org\documents""", """D:\bak\documents""", "/S", "/XD", """cache""", """cache2""" );
robocopy $prms;

配列に外部プログラムへの引数を入れて、そのまま渡しています。新しい方も、経験的に動くという手法ですが、多少は正統的な感じがしませんか?

ところで、PowerShell のバージョンですが、Windows 8.1 では、

PS C:\> $PSVersionTable

Name Value
---- -----
PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.34209
BuildVersion 6.3.9600.17400
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion 2.2

Windows 10 では、

PS C:> $PSVersionTable

Name Value
---- -----
PSVersion 5.0.10240.16384
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.42000
BuildVersion 10.0.10240.16384
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion 2.3

となっていました。つまり、Windows 8.1 は PowerShell 4.0 で、Windows 10 は PowerShell 5.0 ということになります。スクリプトが動かなくなったということは、どこかが、微妙に異なっているのですね。

(2015/9/1)

Windows 8.1 をクリーン インストールした

稼働中の Windows 8 を Windows Update で Windows 8.1 にするには不安があります。例えば、

さらに、手元のメインマシンでは Windows 8 の起動ドライブのパーティションを小さくしすぎて問題が起こっていたので、新しい HDD にクリーンインストールすることにしました。

かなり裏ワザっぽい設定ファイルですが、ともかく、無事にクリーン インストールできました。

インストールの最中、Microsoft アカウントにサインインせずにローカル アカウントだけで使いたい場合は、既存の Microsoft のアカウントを設定せずにオプションを選び、新たに Microsoft アカウントを作るオプションの画面で、さらに小さくローカルアカウントを作るオプションがあるので、その画面で従来型のローカルアカウント設定を行います。OS インストール中に深い階層までひたすらオプションを探さないとローカルアカウントが作れないので、よほど Microsoft は Windows 8.1 で Microsoft にサインインさせたいんでしょうね。(2014/1/9 追記)

Windows 8.1 になってもスタートメニューは使いにくいので、

これで自前の [スタート メニュー] を作れます。(追記 2014/5/30: Windows 8.1 Update の 「スタートボタン」でほぼ十分になりました。オプションで、スタートボタンからアプリ画面に直行できます)

エクスプローラーの表示設定はイの一番に、拡張子表示、隠しフォルダもシステムファイルも表示するようにしてあります。ショートカットのフォルダの中に別のショートカットがうまく入らなかったので、

をみながら mklink /D … でショートカットを作成、ツールバーにあるショートカットの [スタート メニュー] フォルダに突っ込みました。

Windows 8.1 も相変わらず完全な電源OFFがやりにくいですね。

によれば、ショートカット [Ctrl] + [Alt] + [Delete] か [Win] + [I] で電源アイコンを表示させようというのですが、やはりスタートメニューにほしいもの。

などを見ながら、 shutdown /s /t 10 (電源オフ)、 shutdown /r /t 10 (再起動)、 shutdown /r /o /t 10 (詳細オプション)、shutdown /a (再起動取消・アボート)のショートカットを作って、上記 [スタート メニュー]  の中のフォルダに入れました。[スタート メニュー] の中のフォルダは三角矢印(▶) で中身が展開されるので便利です。フォルダへのショートカットが展開されない場合は上記 mklink で作成。

普通のシャットダウンやサインアウト等は、スタートボタンの右クリックか、[Win] + [X] で出てきます。便利になりました。(2014/1/13 追記) (2014/5/30 追記: 電源プランで高速起動をオフにしておくのもありです。)

環境設定は大まかには Windows 8 と同じでよいとして

最初に入れたソフトは Tween 。これは古いフォルダをまるごとコピーするだけです。(2014/5/30 追記: Tween を起動したままで運用したい場合は、電源プランを「高パフォーマンス」にするか、スリープしないように設定を変えておきます。)

Thunderbird はインストール後に、古いプロファイルのフォルダをもってきて、そこを指すように profile.ini を書き換えるだけ。(2014/5/30 追記: 直接書き換えるより、thunderbird -p で起動して、従来のプロファイル フォルダを選択するほうが楽です)

Firefox は Windows 8 のときから、アプリケーションを終了してもバックグラウンド プロセスに残ったままになり、そのたびにタスク マネージャーで強制的に [タスクの終了] をするようになっていました。Windows 8.1 に持ってきたプロファイルでは同じ不具合が発生しました。新規に作成したプロファイルではきちんと終了するので、古いプロファイルに問題があることになります。Web ブラウザは JavaScript の実行プラットフォームのようなものですし、このごろ Firefox はアップデートが激しいので古いプロファイルにも不整合が発生しやすいのでしょう。過去にもいろいろなトラブルが起こりました。そこで今回は、新しいプロファイルをデータドライブに作成し、古いプロファイルから必要なファイルだけ上書きコピーしました。今のところトラブルは起こっていません。

  • 古いプロファイルから必要な情報を復旧する | Firefox ヘルプ
    • ブックマークと閲覧履歴: places.sqlite
    • パスワード: key3.db 、 signons.sqlite (2つとも)
    • サイト別の設定: permissions.sqlite
    • 検索エンジン: search.json
    • 個人用辞書: persdict.dat (Firefox の辞書に単語を登録したことがなければ、このファイルは存在しません)
    • 自動補完履歴: formhistory.sqlite
    • Cookie: cookies.sqlite
    • セキュリティ証明書の設定: cert8.db
    • ファイルタイプとダウンロード設定: mimeTypes.rdf
    • ダウンロード履歴: downloads.sqlite

(2014/5/30 追記: 不調がなければ、従来のプロファイル フォルダを持ってきて、firefox -p で起動して場所を選択するのが楽です)

Windows 8 標準の付箋のデータは

  • Windows 7/8 の 付箋
    • C:\Users\(プロファイル名)\AppData\Roaming\Microsoft\Sticky Notes\StickyNotes.snt
    • %USERPROFILE%\AppData\Roaming\Microsoft\Sticky Notes\StickyNotes.snt

古いハードディスクからコピーして上書き。この付箋はショートカットキーを使うと 文字飾りを指定できたんですね。

VirtualBox 4.3.6 はインストールのあと、旧 Windows 8 からフォルダごとコピーしてきた Virtual Disk Image ( .vdi ) を指定したら仮想マシンが動きました。共有フォルダは再設定。

プリンタは Bullzip をインストール

このごろ、画面のメモは [Alt] + [Print Screen] でキャプチャしてに画像に保存するか、Bullzip で PDF にしています。Web ページなどは何度か試行錯誤で紙の大きさに合わせ込んで、どうしても紙にする必要があったらプリントアウト。プリントアウトもセブン-イレブンの

で、カラー A3 サイズ(80円)を利用することが増えました。うちのプリンターは Canon MP-810 なのですが、黒インクがまったく出なくなっていて、きれいなカラー印刷を行う設定でカラーのほうの黒インクを使うように指示して、だましだまし使っています。複合機で、スキャナは生きています。古いのでドライバも Windows 8 用が提供されていませんが、Windows 7 (64 bit) 用で使えています。

タッチパネルのないデスクトップPCでタイル UI(没入型 UI、全画面型UI)は使いたくないので、サインイン時にデスクトップになるような設定にしています。Windows 8.1 ではその設定のオプションができるようになっています。拡張子ごとのプログラムの関連付けも、一個ずつ右クリックで「プログラムから開く…」でデスクトップのほうのアプリに変えて「すべての (特定拡張子) ファイルをこのアプリで開く」にチェックを付けておくか、または、「既定のプログラムの選択…」で規定のプログラムを変えてしまいます。PDF は Windows 8.1 初期状態でタイルUIしかないので、

をダウンロードして入れました。

小寒も過ぎ、寒中になったので、喪中の人に年賀状代わりの寒中見舞いを出すことにしました。絵と文面用に、GIMP と Inkscape をインストール。ずっと Adobe Creative Suite (CS1) を使ってきましたが、Adobe Creative Cloud を契約したくなるほどには使っていません。CS の認証サーバの関係で動かなくなっているのですが、Adobe のサイトを読む限りでは、その場合は正規契約者のサポート用に公開されている CS2 のダウンロード版を使うようです。はっきり書いていないので、正式には未確認です。

フォントは IPA フォント (IPAex) をインストール。IPA フォントはライセンス上、たいていの用途にフリーで使えます。

印刷物用には、DynaFont Open Type 100 For Windows Standard をインストール。古い製品なのでサポート終了済み、同梱のインストーラが動きませんが、DynaFont Windows Vista/7対応インストーラ でインストールできます。

宛名印刷は Microsoft Office 2010 の Access の住所録を Word で宛名印刷です。Access の住所録は古い形式のまま使っているので、どうにかせねば。

(2014/1/5 – 1/8)

(追記)

地震速報は、Twitter で大きな震度を通知する bot を複数フォローして、発言時に Tween で音を鳴らすように設定。また、 SignalNow Express インストール(警報音の継続時間も設定できます)。

防災科学技術研究所 の「強震モニタ」・「新強震モニタ」へのショートカット(URL) をタスクバーにピン留め。新強震モニタを動かしておくと、地震発生時に(単発)チャイムが鳴ります。

レーダー・ナウキャストへのショートカットをピン留め。(2014/5/30 追記: XバンドMPレーダもよさそう)

(2014/1/9)

(追記)

Media Center Pack は別途、検索キーワード「機能の追加」にプロダクトキーを入力してインストールします。再起動必須。Windows 8 自体のプロダクトキーで Windows 8.1 をインストールするだけでは、Media Center は入りませんでした。なお、Windows 8.1 単体では DVD や MPEG-2 の視聴ができません。他の動画視聴ソフトを入れるほうが便利かもしれません。

(2014/1/11)

(追記)

  • Evernote
  • Dropbox

(2014/1/11)

(追記)

(2014/1/11)

(追記)

一部、文中に追記。

2014/4/9 の Windows 8.1 Update で、UI が Windows 8.2 ではないかというくらい変更がありました。だいぶ使いやすくなりました。

累積的な Windows Update が大量に存在するので、初期の状態からでは Windows Update に失敗することがあるようです(何度か失敗しました)。たまたまかもしれませんが、重要な更新でチェックが付いているものを手動で外し、小さくて無難そうな更新だけにしたら初回の更新が成功し、そのあとは普通に更新できるようになりました。何が起こっていたのかはわかりませんが、ここにメモしておきます。 (2014/5/30)

更新に失敗することがある件、追記。別の環境下での観察では、PCを起動して放置すること数時間、バックグラウンドの”Windows Modules Installer Worker”がタスクマネージャーでCPUもディスクも0になってからUpdateを再試行したら成功したことがあります。それとも、”Windows Problem Reporting”のほうか、ほかのスタートアップ プログラムか。とにかく、CPUやディスクが専有されている間に Windows Update をやると(必ず)失敗するものがあるように見受けられます。(2015/7/6)

 (追記)

ログイン時に PowerShell スクリプトを実行するには、「コンピュータの管理」→「タスク スケジューラ」でログオン時用のタスクを作って、

  • プログラム/スクリプト: powershell
  • 引数の追加: スクリプトのフルパスを二重引用符で囲む。 -NoExit を追加すると動作チェックに便利。

実行に管理者権限が必要なスクリプトなら、タスクのプロパティで「最上位の特権で実行する」にチェックを付加しておきます。

また、実行ポリシーはデフォルトで Restricted なので、RemoteSigned に変更しておきます。PowerShell で、

Set-ExecutionPolicy RemoteSigned

を実行。

(2014/6/3)

(追記)

タイムサーバの指定を変更。マザーボードの時計が狂いがちなので、タイムサーバ (NTP) との同期間隔を短くしています。

(2014/6/5)

Windows 8 Pro の環境を整える

昨日の Windows8 Pro アップグレードを入れてみた の続きです。Windows 7からWindows 8への環境以降に関する自分用の備忘録です。

Windows 7 で使っていたテーマや壁紙のある場所

  • 旧C:\Users\[ユーザ名]\AppData\Local\Microsoft\Windows\Themes\ の拡張子 .theme とサブフォルダ
  • 旧C:\Windows\Web\Wallpaper\ の拡張子 .theme とサブフォルダ
  • 旧C:\Windows\Web\Wallpaper\ のサブフォルダの .jpg

ガジェットはWindows 8で廃止されました。小細工をすれば使えるようですが、少々面倒です。後回し。私が使っていたのはCPUやネットワークの使用状況です。タスクマネージャーを起動させておけば、通知域にマウスオーバーでCPU、メモリ、ディスク、ネットワークが何%か数字で表示されます。当分はこれで代用します。

地震通知にSignalNow Express。

  • 高度利用者向け緊急地震速報専用受信ソフトウエア:SignalNow Express  「ストラテジー株式会社 – SignalNow Express ダウンロード」 http://www.estrat.co.jp/download.html

.NET Framework 3.5 をインストールする必要があります。都道府県を指定、震源地マグニチュード6以上、所在地推定震度3以上に設定しました。デフォルトは、千葉県、マグニチュード10.0以上、予想震度3以上。

強震モニタ(URL)を「ピン留め」(ショートカットを作成、ツールバーにドロップ) (Firefoxの場合、いったんフォルダにショートカットを入れ、名前を適当に変更、そのショートカットをピン留めしたほうが表示名でわかりやすくなります。2014/1/6 追記)

ツイッターでは地震速報のボットをいくつかフォローし、震度が大きいものの新着時にTweenで音を鳴らすようにしています。音が鳴ったときに強震モニタを開くと、地震の伝播が視覚的にわかります。

EPWING辞書

MS Office Professional 2010 には32ビット版と64ビット版があり、互換性から32ビット版が推奨されています。64ビット版は大きな数を扱うときに有利とのこと。もともと iTunes と Outlook との連携が目的だったので、32ビット(デフォルト)を選択。

なお、後継バージョンの 2013 は現在プレビューを公開中、発売予定日は2013年2月7日で、数量限定の優待アップグレード版の予約も始まっています。Windows 8との相性が良くなっているそうです。(Access の住所録データベースをほかのシステムに移植すればPro版はいらないのだけれど…どうにかしなければ)

iTunes

に従って行います。大雑把には、旧システムで”マイミュージック”以下にiTunes関連データを集約して外部HDDに一時的にコピー。それを新システムの”マイミュージック”以下にコピーしてiTunes起動。旧システムの認証は解除しておく。新システムでは認証取得。Outlookと同期するように設定変更。

――といったことをしていたら、パソコンの電源が切れなくなりました。何が起こっているのかわかりません。このまま原因を探ろうとするとエンドレスなので、また明日以降です。

(2013/01/24)

Windows8 Pro アップグレードを入れてみた

キャンペーン期間が1/31までなので、デスクトップ パソコンにWindows 8 Proアップグレードをいれてみました。以下、自分用の備忘録です。

ダウンロードなら3300円ですが、32ビットから64ビットに変えるにはディスクが必要で、パッケージ版(約五千円)を購入しました。来月2/1からは25,800円と桁違いに高くなります。DSP版なら価格維持で1万数千円のようです。

Windows 8からはDVD再生機能が外されているのでMedia Center Packも必要です。Window 8 Proなら、これも1/31まで無料です。ただし、数日かかるようです。

インストール前にPCから外せるものは外し、LANケーブルも外しました。HDDは、あらかじめパーティションを切ってフォーマットし、ルートに”\Windows” という空のフォルダを作りました。こうすると、以前のOSインストール済みHDDをつないでおくより楽です。32ビットから64ビットに変えるときは環境を引き継げないので、カスタムインストールです。

ライセンスを読むと窮屈で使う気がしなくなってきますが、やむをえません。マイクロソフトの案内ページと内容が微妙に異なるような気もしましたが、実用上は問題ないでしょう……、たぶん。案内・サポートのサイトを眺めるに、どのような組み合わせでインストールをするか、ライセンス数はいくつか、どんな条件で購入できるか等々、細かい規定と規制が絡み合っているので、よく確かめる必要があります。

LANケーブルを外してインストールすると、マイクロソフト アカウントではなく、ローカルアカウントでログインするように設定されるようです。インストール後にLANケーブルをつなぐと、いつの間にか(たぶん瞬時に)バックグラウンドでWindowsライセンス認証が実行されます。

インストール直後には、Windows Defender(ウィルス・スパム対策)とファイヤーウォールが有効になっています。Windows Defender は[スタート]右クリック→[すべてのアプリ]→[Windows システム ツール]から。ファイヤーウォールの設定は [Win]+[x] → [コントロール パネル] から。Windows Update も同じくコントロール パネルから。

Windows 8では電源を切ったつもりでも、実は完全にシャットダウンされていないことがあります。そんな状態でハードウェアをいじるとシステムが壊れることがあるのでご注意。shutdown コマンドの /full オプションはなくなったように見受けられます(cf. Windows 8 Consumer Preview の完全なシャットダウン方法)。GUI では、

  • [スタート] → [チャーム] → [設定] → [PC設定の変更] → [全般] → [今すぐ再起動する](この先、シャットダウンが実行されるので戻れない) → [電源を切る](または、オプションのどれかを選択)

一応インストール直後の確認が済んだところで、データドライブと以前のシステムHDDをつなぎ、Tween、Thunderbird、Firefoxのプロファイルを新システムに移しました。

Tweenはzip版で、.Net はもともとOSに入っているので、旧フォルダをそのまま(コピーして)実行。

ThunderbirdとFirefoxは、ダウンロードしてインストール。それぞれ、Profile.ini の IsRelative=1(相対)を0(絶対)に変更、旧プロファイルのファイル群(ディレクトリ)のパスをエクスプローラでコピーして Path= に絶対パスをそのまま貼り付け。絶対パスの区切りは \ で、相対パスは /。

(なお、Firefox については、「古いプロファイルから必要な情報を復旧する | Firefox ヘルプ」 のように、新しいプロファイルをデータドライブに作り、必要なファイルだけ上書きコピーしたほうが安全です。Firefox のアップデートが激しいので、古いプロファイルをそのまま引き継ぐと細かいトラブルがいろいろ発生します。) (2014/1/5 追記)

旧システムのFirefox のプロファイルはいつの間にか(たぶん設定をリセットしたときに)デフォルトの場所に移されていました。古いOSの C:\Users\…\AppData\Roaming\Mozilla\Firefox あたり。データは別ドライブだからといって、古いシステムを消してはいけないということですね。この旧ディスクを新OSにつないで読み込もうとすると、初回にアクセス権を新OSが取得しようとするのでハングしたかと思うほど時間がかかります。ともかく、データドライブにコピーしました。ちなみに、新OSをインストールするときに旧OSをつないだ状態で実行した場合は、(新) C:\Windows.old の下のほうに移動されているのではないかと思われます。

PDF の仮想プリンタは、Bullzip をインストールしました。日本語に対応しています。

Canon PIXUS MP810 (プリンタ・スキャナ複合機)のWindows 8ドライバはCanonでは対応予定なしでした。

Windows 7 (64ビット)用をダウンロードしてインストールしたら動きました。細かい不具合は出るのかもしれませんが、とりあえず、プリントとWIAスキャンはできました。

連続スキャンのための BTScan 3.07 をインストールしたら、TWAIN でも動きました。

古いソフトのヘルプ表示には WinHlp32.exe が必要です。Windows 8用もありました。

OSインストール、Twitter、メール、ウェブブラウザ、プリンタ・スキャナまではできました。最低限、これで使えます。

(2013/1/23)

Windows 8 Pro の環境を整える(2013/01/24) に続く