2008/10/17(Fri)Vista 電源制御周りのコマンド

2008/10/17 3:03 Software::Windows
VistaにもXPと同じくshutdownがあるが、多少オプションが拡張され、XPではできなかった休止状態への移行などができるようになっている。

C:\Users\Kero>shutdown /?
使用法: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f]
    [/m \\コンピュータ][/t xxx][/d [p|u:]xx:yy [/c "コメント"]]

    引数なし   ヘルプを表示します。「/?」と入力するのと同じです。
    /?        ヘルプを表示します。オプションを入力しないのと同じです。
    /i        グラフィック ユーザー インターフェイース (GUI) を表示します
                このオプションは最初に指定する必要があります。
    /l        ログオフします。/m または /d オプションとは併用できません。
    /s        コンピュータをシャットダウンします。
    /r        コンピュータをシャットダウンして再起動します。
    /g        コンピュータをシャットダウンして再起動します。システムの
                再起動後に、登録したアプリケーションを再起動してください。
    /a        システムのシャットダウンを中止します。
                これは、タイムアウト期間にのみ使用できます。
    /p        タイムアウトまたは警告なしでローカル コンピュータの電源を
                切ります。
                /d および /f オプションと併用できます。
    /h        ローカル コンピュータを休止状態にします。
               /f オプションと併用できます。
    /e        コンピュータの予期しないシャットダウンの理由を記録します。
    /m \\コンピュータ 対象となるコンピュータを指定します。
    /t xxx    シャットダウンまでのタイムアウト期間を xxx 秒に設定します。
                有効範囲は 0 から 600 までで、既定値は 30 です。
                /t xxx を使用すると /f オプションも指定されます。
    /c "コメント" 再起動またはシャットダウンの理由にコメントを付けます。
                最高 512 文字まで入力できます。
    /f        ユーザーに警告せずに実行中のアプリケーションを強制終了します。
                /f は、/t xxx と共に使用されると自動的に設定されます。
    /d [p|u:]xx:yy  再起動またはシャットダウンの理由を指定します。
                p は再起動またはシャットダウンが計画されていたことを示します。
                u は理由がユーザーにより定義されることを示します。
                p と u のどちらも指定されていない場合は、再起動または
                シャットダウンは計画されていません。
                xx は主因の番号です (256 未満の正の整数)。
                yy は副因の番号です (65536 未満の正の整数)。

理由:
(略)


なお、従来のXPから使える以下のコマンドでも実現可能。
DLL名はpowerprofではなく、powrprof.dllなのでミスタイプに注意。

休止状態
rundll32.exe powrprof.dll,SetSuspendState

ハイブリッドスリープ

ハイブリッドスリープが有効な環境では、スリープ状態に入るための呼び出しがないようなので、APIを呼んでいる系のツールを準備する必要がありそう。
一部では、SetSuspendStateの後に、<スペース>Sleepを入れるとか、<スペース>0,1,0と指定するとよい、とあったものの、こちらの環境ではうまくいかず。


なお、自分のシステムが、どのようなスリープをサポートしているかは次のコマンドで確認できる。

C:\Users\Kero>powercfg /a
以下のスリープ状態がこのシステムで利用可能です:
   スタンバイ ( S3 ) 休止状態 ハイブリッド スリープ

以下のスリープ状態はこのシステムでは利用できません:
スタンバイ (S1)
   システム ファームウェアはこのスタンバイ状態をサポートしていません。
スタンバイ (S2)
   システム ファームウェアはこのスタンバイ状態をサポートしていません。

2008/10/15(Wed)VistaからMessengerサービスが消えたらしい

2008/10/15 2:38 Software::Windows
先日、泣く泣くXP x64システムの不安定さ*1からVista x86に戻ってきたのですが、「チューンして高速化♪、まずはサービス当たりから~」とか考えつつサービスを開いてみると……

disappear_messenger_service.png


あれ、見慣れたMessengerサービスが居ない……。


今回Vista x86に戻したPCは、XP x64の時代から毎朝バックアップジョブが走っており、その完了通知を別PCにMessengerサービスで投げていたので、使えなくなるとちょっと困るなぁ。

と思ったものの、これはMSのセキュリティ対策なんですかね、Alerterとかも居ませんし。

そもそも、net sendコマンドが存在しなくなったようです。

C:\Users\Kero>net help /?
このコマンドの構文は次のとおりです:

NET
[ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |
  HELPMSG | LOCALGROUP | PAUSE | PRINT | SESSION | SHARE | START |
  STATISTICS | STOP | TIME | USE | USER | VIEW ]


というわけで、某端末のIPPプリンタのMessengerサービスによる印刷通知、Vistaにシステムが変わったら別の方法をとらざるを得ないようですね……。

*1 : というか、Kasperskyとの兼ね合いでよくBSODになる

2008/10/13(Mon)MSゴシックの数字の2

2008/10/13 3:58 Software::Windows
Vistaで標準で、XPもWindows UpdateのJIS2004対応フォントをインストールすると、MSゴシックの9ptと10ptで、数字の2だけおかしな形になるという問題があります。
比べてみれば歴然。

▼正常
strange_font_1.png

▼おかしい
strange_font_2.png


ちなみに画面は、Vistaのメモ帳のフォント設定ダイアログです。
なぜこんなことになったかというと、小数点を表すドットの位置が右に寄ったことで、数字の2の左下と隙間がなくなるため、こういう措置になったらしいですが……。
小数点の位置だけを比べてみても、明らかに「正常側」のほうが自然に見えますよねえ?
Vistaでは多くの部分がアンチエイリアス処理がかかっているので、この2を見る機会はそうないといえばそうなのですが、ダイアログ系にはまだ多く使われているのが現状です。

続きを読む

2008/10/12(Sun)Vistaの管理共有にアクセスする

2008/10/12 3:20 Software::Windows
Windows 2000やWindows XP Professional、Windows Vistaに搭載されているファイル共有には、「管理共有」という特殊な共有がある。

Sambaネットワークでは、共有名の末尾に$を付けると隠し共有となって、一覧に現れないのだが、管理目的のためデフォルトでドライブレター+$という名前で、全固定ディスクのルートディレクトリが共有されている。
つまり、コンピュータ名をワークグループで見つけられれば、\\ComputerName\C$でCドライブが丸見えと言うわけだ。
勿論、セキュリティ的には保護されていて、管理者権限がないとアクセスできない。
Administratorのパスワードが空だとドライブ丸ごとがそのまま見えたりということもあり*1、やはりセキュリティ上の観点からか、Vistaではローカル以外からは、たとえ管理権限を持っていたとしても参照できなくなったようだ。

というわけで、再度自分でドライブごとに共有を作る*2しかないかと思っていたのだが、やはり面倒。
閉じた家庭内LANなどでファイルをやり取りする場合は、やっぱりドライブごと共有していた方が楽ということもある。
そういうときには、このレジストリエントリを追加すれば良い。
手早くやりたい人は、share_policy.regをどうぞ。
キー名
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
名前
LocalAccountTokenFilterPolicy
種類
DWORD(32ビット)
1
ちなみに0に戻すかエントリを削除すれば、デフォルトの動作に戻る。

*1 : XPでは空パスの場合は拒否されるはずだが、2000は通ってしまう

*2 : ただし管理共有で使われているC$, D$, ...という名前は使えない