ラベル Windows Tips の投稿を表示しています。 すべての投稿を表示
ラベル Windows Tips の投稿を表示しています。 すべての投稿を表示

2026年2月13日

Windows 11のWindowsサンドボックスでフォントリンクを有効にする

Windows上でプログラムを作っていて、検証、特にインストーラ関係の検証をしようとすると、開発用のPC以外の環境が欲しくなることがあります。検証用のPCを別途用意する、というのが一番簡単ですが、お金もかかりますし、そのPCを適切にメンテナンスする必要もあり、あまりお手軽ではありません。
またVMware WorkstationVirtualBoxHyper-Vなどの仮想マシン環境を使う、という方法もありますが、これらはゲストOSに別途ライセンスを用意するか、評価版を使用する必要があります。MSDNに入っていれば検証用のライセンスが含まれていますが、そうでなければリテール版のライセンスを購入するか、評価版(サーバOSは180日、クライアントOSは90日有効)ということになります。ところが現時点(2026年2月)で評価版のVM(VHD)がダウンロードできるのはWindows Server 2025(英語版)のみで、クライアントOSはISOのみとなっています。このため評価期間が過ぎるとISOからインストールし直すことになり、これもあまりお手軽とは言えません。
そこでもう一つの選択肢として考えられるのがWindowsのPro/Ent/Edu SKUで使用できるWindowsサンドボックスです。これはホストのWindowsのOSファイルを使用するため軽量で、OSのインストールも不要です。その代わり再起動、シャットダウンで全ての変更が破棄されるため、インストール後に再起動が必要なケースには使用できません。Windows 11 22H2以降でWindowsサンドボックスは再起動にも対応するようになりました(シャットダウンで全ての変更が破棄されることに変わりはありません)。とはいえPro版であれば追加のライセンスも不要で、必要なときにすぐ起動して使える、というのはなかなか便利です。

と、ここまでは前置きで、Windows 10では特に問題ないのですが、Windows 11では起動したWindowsサンドボックスのゲストOSのレジストリ上にフォントリンクが"SimSun-ExtG"(宋体拡張G)に対してしか登録されておらず、日本語をTahomaやSegoe UIで表示するGDIアプリケーション(DelphiのVCLアプリケーションなど)では正しく表示されなくなってしまっています。上に書いたようにWindowsサンドボックスではシステムファイルはホストOSのものをそのまま使用するため、フォントファイルもホストOSにあるものは全てゲストOSにも存在しています。つまりフォントリンクに関するレジストリをゲストOSに登録すればよい、ということになります。そこでカスタムWindowsサンドボックスでこれを解決してみます。

まずホストOSのフォントリンクのレジストリ設定をエクスポートします。レジストリエディタで HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink を開き、右クリック→エクスポートでファイルに保存します(ここでは"SystemFontLink.reg"とします)。

次に.wsbファイルを作成します。ここでは現在のユーザのドキュメントの下にWindowsSandboxというフォルダを作成し、その下にエクスポートしたファイルと、エディタで以下のようなXML形式のファイルを作成して置きます。.wsbファイルの文字コードはUTF-8(BOM付)かASCIIにしてください。
<Configuration>
  <VGpu>Enable</VGpu>
  <Networking>Enable</Networking>
  <AudioInput>Disable</AudioInput>
  <VideoInput>Disable</VideoInput>
  <ProtectedClient>Enable</ProtectedClient>
  <PrinterRedirection>Disable</PrinterRedirection>
  <ClipboardRedirection>Enable</ClipboardRedirection>
  <MemoryInMB>4096</MemoryInMB>

  <MappedFolders>
    <MappedFolder>
      <HostFolder>%USERPROFILE%\Documents\WindowsSandbox</HostFolder>
      <SandboxFolder>C:\Users\WDAGUtilityAccount\Documents\WindowsSandbox</SandboxFolder>
      <ReadOnly>true</ReadOnly>
    </MappedFolder>
  </MappedFolders>

  <LogonCommand>
    <Command>reg import C:\Users\WDAGUtilityAccount\Documents\WindowsSandbox\SystemFontLink.reg</Command>
  </LogonCommand>
</Configuration>
作成した.wsbファイルをダブルクリックすることで、ホストOSと同じフォントリンクが設定されたWindowsサンドボックスが起動します。Windowsサンドボックスが起動し、フォントリンクがレジストリに登録されますが、これを反映するためにWindowsサンドボックスを再起動します。

ポイントは2つあります。1つ目は<MappedFolders>でホストOS上のフォルダをゲストOSにマッピングすることで、ホストOS上のファイルを参照できるようにしています(ここではホストOSの現在のユーザのドキュメントフォルダの下のWindowsSandboxフォルダを、Windowsサンドボックス上の既定のユーザ("WDAGUtilityAccount")のドキュメントフォルダの下のWindowsSandboxフォルダにマッピングしていますが、ホストOS、ゲストOSとも、どこに配置しても構いません)。
2つめは<LogonCommand>でゲストOSのログオン後にレジストリをインポートすることでフォントリンクの情報を登録しています。

これ以外の設定(特にメモリの割り当て)についてはWindows サンドボックスを使用して構成する | Microsoft Learnで確認してください。

注: Windows 11 22H2以降でWindowsサンドボックスが再起動にも対応していることがわかったため、一部の記述を修正しました。

2026/02/16追記: レジストリに登録したフォントリンクを反映するにはWindowsサンドボックスの再起動が必要という記述を追加しました。

2013年8月20日

コマンドプロンプトのSTARTコマンドで優先順位を指定してプログラムを起動する

プログラムを実行するときに、そのプロセスの優先順位クラス (Priority class)を外部から指定するには、コマンドプロンプト(cmd.exe)のSTARTコマンドを使用します。
start /<PriorityClass> <program>

ここで/<PriorityClass>には

/REALTIME
REALTIME_PRIORITY_CLASS (リアルタイム/24)
/HIGH
HIGH_PRIORITY_CLASS (高/13)
/ABOVENORMAL
ABOVE_NORMAL_PRIORITY_CLASS (通常以上/10)
/NORMAL
NORMAL_PRIORITY_CLASS (通常/8)
/BELOWNORMAL
BELOW_NORMAL_PRIORITY_CLASS (通常以下/6)
/LOW
IDLE_PRIORITY_CLASS (低/4)
を指定可能です(括弧内の数字は同一の優先順位クラス内の相対的な優先順位を表す優先順位レベル (Priority level)をTHREAD_PRIORITY_NORMALに指定したときのベースプライオリティ)。

2012年8月24日

非ActiveDirectory環境でのWindows Timeサービス

ActiveDirectoryに属していない(スタンドアロンの)環境では、コントロールパネルの"日付と時刻"の"インターネット時刻"タブで"インターネット時刻サーバー"に有効なNTPサーバを指定してあってもOSの起動時にWindows Time(W32Time)サービスそのものが自動的に停止されてしまい、結果として時刻同期が正常に行われないことになります。

Windows 7 および Windows Server 2008 R2 のスタンドアロン環境で Windows Time サービスが自動的に起動しない

この記事にあるように、Windows Timeサービスのスタートアップの種類を"自動 (遅延開始)"にすることで正常にサービスを起動し、時刻同期が行われるようになります。

また指定するNTPサーバとしては、所属する組織内のネットワーク(あるいはプロバイダ)に用意されているNTPサーバを指定するか、日本国内であれば"ntp.nict.jp"(独立行政法人 情報通信研究機構 電磁波計測研究所 時空標準研究室 日本標準時グループ)、"ntp.jst.mfeed.ad.jp"(インターネットマルチフィード株式会社 時刻情報サービス for Public)、"ntp.ring.gr.jp"(Ring Server Project NTP service)のような公開NTPサーバがお勧めです(WindowsのデフォルトであるMicrosoftの"time.windows.com"はネットワーク的に遠い上にエラーになりやすいのでお勧めしません)。

2012年3月30日

[書籍]Windows Sysinternals徹底解説

MARUZEN&ジュンク堂書店 渋谷店Windows Sysinternals Administrator's Reference (amazon)の翻訳である

Windows Sysinternals徹底解説 (amazon)/Mark RussinovichAaron Margosis著/山内和朗訳/日経BP/ISBN 978-4822294649 (ISBN 4822294641)/4,935円

を購入。この本はWindows SysInternalsの各ツールについて、SysInternals生みの親であるMark Russinovichさん自身が徹底解説しています。またMark RussinovichさんのBlogは

Windows の内部を解き明かす | Mark's ブログ

として日本語に翻訳されています(全てのアーティクルではないようですが)。

この本(日本語版)については

Virtualization × Sysinternals (+ちょっとだけPR)|仮想化|ブログ|Computerworld

にも情報があります。

さらにWindows Sysinternalsについては国井傑さんによる"Windows Sysinternalsを使い倒せ(COMPUTERWORLD)"という連載も非常に参考になります。
2012/06/04追記: ITpro(要登録)にWindows Sysinternals徹底解説の一部抜粋が掲載されています。

2011年7月25日

Windows Vista/Server 2008/7/Server 2008 R2でIPv6コンポーネントを無効にする

Windows Vista以降のOSではIPv4とIPv6がデュアルIPレイヤという形で統合されて実装されていて、IPv6が不要であってもアンインストールできなくなっています。そこでIPv6が不要な(あるいは邪魔な)場合にIPv6コンポーネントを無効にする方法(ただしIPv6のループバックインタフェースは無効にならないので注意)。とりあえずメモ。

診断ツール Fix it: Windows Vista、Windows 7、および Windows Server 2008 で特定の IPv6 (Internet Protocol version 6) を無効にする方法に関する問題

直接レジストリ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents
の値(DWORD)を、
  • 0: IPv6有効(デフォルト)
  • 0xFFFFFFFF: IPv6無効
  • 0x20: プレフィックスポリシーでIPv4を使用
  • 0x10: IPv6ネイティブインタフェース無効
  • 0x01: IPv6トンネルインタフェース無効
と書き換えても問題ありませんが、レジストリの書き換えを行ってくれるFix itウィザードも用意されています。

またIPv6を無効にするまでもないけれどもIPv4を優先に設定したいような場合はコマンドプロンプトから

netsh interface ipv6 show prefixpolicies
で表示されるプレフィックス"::ffff:0:0/96"(IPv4-Mapped IPv6 Address)が最優先になるように、管理者権限を持つコマンドプロンプトから

netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 100 4
(最後から2番目の値が優先度(大きいほうが優先)で最後の値が当該プレフィックスのラベル)とすればいいようです(こちらはIPv6を有効にしたWindows XPでも使えます)。デフォルトの設定に戻すときは管理者権限を持つコマンドプロンプトから

netsh interface ipv6 reset
として再起動します。

元ねたはセキュリティホール memo2011/07/12の記事と、IPv4 を IPv6 より優先にするおよびWindows 7でIPv4をIPv6に対して優先にする方法 - 徒然日記(2011-03-30)

2011年4月25日

RAD StudioのIDEでConsolasとMeiryoKe Consoleを使う(Windows 7)

前回の続きでWindows 7の場合です。Windows XP/Vistaで使用できるメイリオはVer5.00でしたが、Windows 7に付属しているメイリオはVer6.02です。とはいっても手順としてはあまり変わらず、作業フォルダに"meiryo.ttc"と"meiryob.ttc"をコピーし、

ブログ内記事で取りあげたソフト・ファイルのDL情報 『ことば・その周辺』

からダウンロードした"meiryoKe_gen_6.02rev1.zip"を同じ作業フォルダに展開し、"meiryoKe_gen_6.02rev1.exe"を実行し、生成された"meiryoKe_602r1.ttc"と"meiryoKeB_602r1.ttc"を"meiryoKe.ttc"と"meiryoKeB.ttc"にリネームし(これは好みで)、右クリック→インストールでフォントフォルダにコピーします。あとはWindows XP/Vistaの場合と同様にレジストリエディタで

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink

を開き、新規作成で複数行文字列値を作成し、名前を"Consolas"として内容を

meiryoKe.ttc,meiryoKe_Console
mingliu.ttc,MingLiU
SimSun.TTC,SimSun
gulim.ttc,GulimChe

として設定して再起動します(Windows XP/Vistaと異なりフォントファイルがTTC形式なのでレジストリ上の指定方法も異なります)。あとはRAD StudioのIDEで使用するフォントを"Consolas"にするだけです(ClearTypeのチューニングはコントロールパネル→"ディスプレイ"→"ClearTypeテキストの調整"→"ClearTypeテキストチューナ"で)。

2011年4月22日

RAD StudioのIDEでConsolasとMeiryoKe Consoleを使う(Windows XP/Vista)

RAD StudioなどのIDEで使用するフォントは英語圏ではConsolasとだいたい相場が決まっている(個人的な感想です)のですが、日本語を使う、となると実に微妙な状況です。特にWindows XP以降のClearType (ja)を効かせた設定にしたい場合、選択肢はメイリオかそれなりに高価な商用フォントしかありません(商用フォントを買えばもちろん幸せになれそうですが)。メイリオはご存知のとおりWindows XPまでのフォントとはメトリクスが大きく異なり、更に英数字が等幅ではないためIDE用のフォントとしてはあまり適しているとはいえません。そこでメイリオのフォントデータをパッチで改変することで従来の(MS ゴシック/MS Pゴシック/MS UIゴシックシリーズの)メトリクスに近いMeiryoKe系フォントを生成し、これをConsolasにフォントリンクすることで、Consolas + MeiryoKe_ConsoleをIDEで使用する、という方法を試してみたのでメモ。まずはWindows XP/Vista(メイリオ Ver5.00)環境の手順を。

注意事項: MeiryoKeはライセンス的に相当グレーです。あくまで自己責任で。特にMeiryoKeのフォントファイルそのものを配布するのは明らかにまずいのでご注意ください。

Windows VistaにはConsolas、メイリオとも含まれていますが、Windows XPにはデフォルトではこれらのフォントが存在しませんので、まずこれらを入手します。Microsoft Visual Studio 2005/2008のどのSKUでもよいので(Express Editionでよい)インストールし、次に

Download details: Consolas Font Pack for Microsoft Visual Studio 2005 or 2008

をダウンロード、インストールします。続いて

ダウンロードの詳細 : Windows XP 向け ClearType 対応日本語フォント

(こちらはメイリオ)をダウンロード、インストールします。

材料が揃ったところで次にMeiryoKeの生成です。フォントフォルダから作業用フォルダに"meiryo.ttc"と"meiryob.ttc"をコピーし、

ブログ内記事で取りあげたソフト・ファイルのDL情報 『ことば・その周辺』

からリンクされているページで"meiryoKe_gen_5.00rev1.zip"と"meiryoKeConsole_gen_5.00rev1.zip"をダウンロードし、これも作業フォルダに展開します。次に"meiryoKe_gen_5.00rev1.exe"と"meiryoKeConsole_gen_5.00rev1.exe"を実行し、生成されたフォントファイル("meiryoKeGothic.ttc"、"meiryoKeGothicB.ttc"、"meiryoKeConsole.ttf")を右クリック→インストールでフォントフォルダにコピーします。

これでConsolas、MeiryoKe_Consoleを使用できるようになりましたが、IDEで指定できるフォントは通常1つだけです。そこでConsolasにフォントリンクを設定し、Consolasに存在しないコードポイントに対してMeiryoKe_Consoleを使用するようにします。

レジストリエディタで

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink

を開き、新規作成で複数行文字列値を作成し、名前を"Consolas"として内容を

meiryoKeConsole.ttf
SimSun.TTC,SimSun
gulim.ttc,GulimChe
mingliu.ttc,MingLiU

(普通に使用するならmeiryoKeConsole.ttfだけで十分ですが)として再起動します。これでIDEで使用するフォントをConsolasに設定することでConsolas + MeiryoKe_Consoleの組み合わせになります。ただしWindows XPの場合はClearTypeを有効にし、さらに

Microsoft Typography - ClearType Tuner PowerToy

からClearType Tunerをダウンロード、インストールして好みの状態に調整したほうがいいでしょう。このあたりについては@ITの

Windows XPの正体 : 文字表示を滑らかにする新技術「ClearType」
ClearTypeフォントの表示方法を調整する - @IT

あたりが参考になります。

2011年4月18日

VMware Player上のWindwos XPモードでマルチコアを有効にする

Windows 7のProfessional/Ultimate/Enterprise SKUで使用できるWindows XP モードVMware Playerにインポートして使用することができます。このときホスト側のCPUがマルチコアで、かつVMware Playerの設定でVMに複数のCPUコアを割り当てる設定にしてあっても、XPモードのHALがシングルプロセッサにのみ対応した状態のため、実際にはシングルコアでしか動作しません(Virtual PC上のXPモードがシングルプロセッサのみをサポートしているためと考えられます)。そこでHALを入れ替えることでマルチコアを有効にする方法を説明したページを見つけました。

VMware Player 3の XP Mode をマルチコアで動かす方法

要約:
  1. %systemroot%\Driver Cache\i386\sp3.cabに格納されているhalaacpi.dllおよびhalmacpi.dllを%systemroot%\system32にコピー
  2. boot.iniの起動オプションに
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional (ACPI/APIC)" /noexecute=optin /fastdetect /hal=halaacpi.dll
    を追加してシャットダウン
  3. VMの設定でプロセッサコア数を2に変更
  4. VMを起動してオペレーティングシステムの選択で下の項目("Microsoft Windows XP Professional (ACPI/APIC)")を選択して起動
  5. ハードウェアの変更が自動的に検出されドライバのインストール後に再起動を求められるので再起動
  6. オペレーティングシステムの選択で今度は上の項目("Microsoft Windows XP Professional")を選択して起動
  7. タスクマネージャでCPUが2つになっていることを確認
  8. boot.iniの起動オプションに追加した"Microsoft Windows XP Professional (ACPI/APIC)"を削除


このページの説明ではHALを入れ替えることなくVMのCPU割り当てを2以上にするとBSODになる、とされていますが、手元のAMD Phenom II X6環境では単純にシングルコア動作になるだけでした。

参考: VMware PlayerおよびXPモードに関する記事のリンク

Windows Server Insider 検証 - @IT
Windows XP Modeとディスク管理機能 - @IT

2010年10月15日

FFR yarai 脆弱性防御機能 for Windows 2000 動作検知用スクリプト

Windows 2000(Service Pack 4)は2010/07/13で延長サポートフェーズが終了しています。企業などでは延長サポートが終了したOSはPCごと更新してしまうのが望ましいわけですが、色々な(お金やリソースの)事情でなかなか更新できない、ということもあります。そのような場合の延命策のひとつとして、フォティーンフォティ技術研究所(FFR)のFFR yarai 脆弱性防御機能 for Windows 2000(yarai2000)を導入している場合もあるのではないでしょうか。ところがこのツール、異常な動作を検知してもイベントログにイベントを記録するだけで、ユーザに明示的に通知するようにはなっていません。そこでyarai2000がイベントログにイベントを追加するのを監視して、エラーダイアログを表示するスクリプト(VBS)をでっち上げてみました。
strComputer = "."

Set objWMIService = GetObject("winmgmts:{(Security)}\\" & _
                              strComputer & "\root\cimv2")

Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
                         ("Select * from __InstanceCreationEvent Where " & _
                          "TargetInstance ISA 'Win32_NTLogEvent' " & _
                          "and TargetInstance.SourceName = 'yarai ZDP' ")

Do
  Set objLatestEvent = colMonitoredEvents.NextEvent
  If objLatestEvent.TargetInstance.EventCode = 1 Then
    Call MsgBox("FFR yarai 2000が異常を検知しました。" & _
                vbCrLf & vbCrLf & _
                "メッセージ: " & _
                objLatestEvent.TargetInstance.Message & _
                "イベントコード: " & _
                objLatestEvent.TargetInstance.EventCode, _
                vbYes + vbError,"Error")
  End If
Loop
このスクリプトを拡張子.vbsで適当な場所に保存し、
%windir%\system32\cscript.exe <scriptfile>
(<scriptfile>は保存したスクリプトのフルパス名)という内容のコマンドラインをスタートアップで最小化状態で起動しておけば、yarai2000が異常を検知したときにエラーダイアログを表示して知らせてくれます。

元ねたはMicrosoft | TechnetHey, Scripting Guy! イベント ログで特定のイベントの発生を監視する方法はありますかHey, Scripting Guy! イベント ログ メッセージに特定の単語が含まれるかどうかを監視する方法はありますかスクリプトとは何ですか | スクリプト センターあたり。

2010年9月17日

Windows Updateのデータストアをクリアする(Windows 2000/XP/Server 2003)

Windows Update/Microsoft Updateはデータベースやログを%windir%\SoftwareDistribution\DataStoreに保存します。このデータが極端に大きくなったり、データの不整合が発生してWindows Update/Microsoft Updateでエラーが発生することがあります。このような場合は以下の手順でDataStoreの内容をクリアする必要があります。
  1. サービスマネージャで"Automatic Update"サービスを停止する。
  2. %windir%\SoftwareDistribution\DataStoreフォルダの内容の全て削除する。
  3. サービスマネージャで"Automatic Update"サービスを開始する。

ただしDataStoreの内容をクリアすると、Windows Update/Microsoft Updateで非表示にした項目などの設定がすべてクリアされるので注意が必要です。

元ねたはWindows Update サイトで利用可能な更新を検索すると 0x80248013 エラーが表示される

2010年9月8日

WindowsのSNP(Scalable Networking Pack)を無効にする

ITpro[Windows 7編]ネットワーク設定を標準で使ってはいけない - ITアーキテクトの「やってはいけない」:ITpro (要登録)という記事がありました。
SNP(Scalable Networking Pack)という機能がWindows Server 2003 Service Pack 2で導入されています。MicrosoftによるとSNP とは TCP に関するネットワーク処理を、ネットワーク インターフェース カード (NIC) および NIC のミニポート ドライバーを利用して最適化するためのテクノロジー及びその実装の総称です。ということですが、例によって熟成不足で、SNPを有効にしているとネットワーク関係が安定しなくなるなどの問題が生じているようです。この問題についてはMicrosoft日本法人のAsk the Network & AD Support Teamに詳しく解説されていますが、SNP の有効化により効果が期待できるような環境は、10 GbE 程度の NIC を搭載し、数 Gbps 程度の通信を頻繁に行うような環境となります。ということなので、通常の環境ではSNPを使用する必要は全くない、ということになります。ところがWindows Vista/7では標準でSNPが有効になっているため、以下のように明示的に無効化する必要があります。なおWindows 8/Server 2012ではRSSのみ既定で有効、TCP Chimney Offloadは既定で無効、NetDMAは機能削除となっています。

Windows Vista/Server 2008の場合
RSSおよびTCP Chimney Offloadを無効にするには管理者権限を持つコマンドプロンプトから
netsh int tcp set global rss=disabled
netsh int tcp set global chimney=disabled
とします。これに加えてNetDMAを無効にするためにレジストリの
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
のEnableTCPA(DWORD値)(存在しなければ作成する)の値を0に変更して再起動する必要があります。

Windows 7/Server 2008 R2の場合
RSS、TCP Chimney Offload、NetDMAを無効にするには管理者権限を持つコマンドプロンプトから
netsh int tcp set global rss=disabled
netsh int tcp set global chimney=disabled
netsh int tcp set global netdma=disabled
とします。

Windows 8/Server 2012の場合
RSS、TCP Chimney Offloadを無効にするには管理者権限を持つコマンドプロンプトから
netsh int tcp set global rss=disabled
netsh int tcp set global chimney=disabled
とします(NetDMAは機能削除されており、設定不要)。

現在の設定を確認するにはコマンドプロンプトで
netsh int tcp show global
とします。

なおWindows 7/Server 2008 R2以外でSNPをを有効にする場合は修正モジュール、修正プログラム、回避策の適用が必要ですので注意してください。

2011/07/01追記: 現在の設定の確認方法を追加しました。

2013/03/07追記: Windows 8/Server 2012に関する記述およびマイクロソフト Network & AD サポートチーム公式ブログのWindows 8/Server 2012に関する記事のリンクを追加しました。

2009年4月1日

NTPサーバの存在しないワークグループでPCの時刻を同期する

いまどきはPCの時刻同期に(S)NTPを使うのが普通ですが、NTPサーバが存在しない(アクセスできない)ワークグループ環境ではnet timeコマンドを使用する方法もあります。

net time \\<servername> /set /y
<servername>はリモート(時刻を合わせる相手)のコンピュータ名です。

この方法ではローカルのログオンユーザとパスワードの組み合わせでリモートにアクセスできる必要があります。ローカルのログオンユーザ以外のユーザでリモートにアクセスする必要がある場合はnet useコマンドでリモートの管理共有IPC$に接続してからnet timeコマンドで時刻を同期します。

net use \\<servername>\IPC$ <password> /user:<username> & net time \\<servername> /set /y
<username><password>はリモートに接続することができるユーザ名とパスワードの組み合わせです。

定期的(1日1回やログオン時など)に時刻同期を行いたい場合はこれらのコマンドをバッチにしてタスクスケジューラに登録するという方法があります(タスクスケジューラで起動時を指定しても、(少なくともWindows XPでは)うまく動作しなかったため、次善の策でログオン時を指定するのがよいと思われます)。

元ねたはITPro(要登録)の時刻を同期する「net time」/「w32tm」net timeコマンドnet useコマンドを使ってワークグループ環境で事前にWindows認証を受けるあたり。

2008年10月3日

レジストリのデータをエクスポートする

Windowsのレジストリに書き込んだ設定をファイルにエクスポートするには

REGEDIT.EXE /e "<exportfile>" "<keyname>"
<exportfile> ... 出力ファイル名(拡張子.REG)
<keyname> ... 出力する最上位のキー名(HKEY_CURRENT_USER\...)

を実行します。Windows Vistaではレジストリエディタ(REGEDIT.EXE)がUACで管理者権限を要求するため、管理者として実行する必要があります。

2008年7月16日

接続されていないデバイスの情報を表示させる

接続されていないデバイスのドライバを削除したい場合など、現在接続されていないものも含めて全てのデバイスをデバイスマネージャに表示させるには、コマンドプロンプト(UAC有効の場合は管理者として実行)から
set devmgr_show_nonpresent_devices=1
cd %SystemRoot%\System32
start devmgmt.msc
として、表示されたデバイスマネージャの表示メニューから"非表示のデバイスの表示"を選択します。
Windows XPやWindows Vistaではデバイスは追加できても削除できないようなので、そのような場合にはこの方法が有効です。以下に参考リンクを。

KB241257 Windows 2000 に現在存在しないデバイスがデバイス マネージャに表示されない
KB315539 Windows XP ベースのコンピュータに接続されていないデバイスがデバイス マネージャに表示されない
接続されていないデバイスの情報を表示させる - @IT