スティック PC をリモートで操作できるようにする

マウスコンピューターのスティック PC「MS-NH1-W10」を購入直後にセットアップしたときのメモです。
他の PC からリモートで接続できるように設定するところまでです。

スティックPC MS-NH1-W10
スティックPC MS-NH1-W10

搭載されている OS は Windows 10 Home です。
初回は USB 接続のキーボードまたはマウスが必要になります。ここではマウスのみで操作してみます。

 

OS 初期設定まで

初めて電源をオンにすると、OS の初期設定が始まります。

  • スティック PC 本体を電源、マウス、ディスプレイと接続する
  • 電源をオンにする
  • ネットワーク設定はスキップでよい
  • ユーザー名を入力する
    • 以降はパスワードの入力なしで OS を起動させるため、パスワードは設定しない
    • 入力にはスクリーン キーボードを利用

 

OS 起動後

OS が起動したら、まずは次のようなスクリーン キーボードを使えるようにします。

スクリーン キーボード

スクリーン キーボードを起動するには、[設定] → [簡単操作] → [キーボード] の画面で設定するか、
スタート メニューの [Windows 簡単操作] から選択します。

1-Keyboard-Settings

1-Keyboard-Start

 

スクリーン キーボードを使えるようになったら、コンピューター名 (PC 名) を変更して再起動します。

2-ComputerName

 

リモート接続

Windows 10 Home では、OS 標準のリモート デスクトップ接続を利用できません。
そこで、TeamViewer などを利用してリモート接続できるようにします。

  • ネットワークに接続 (ワイヤレス LAN)
  • TeamViewer を検索してダウンロード
  • TeamViewer をインストールしてリモート接続設定

以上の設定ができれば、このスティック PC に他の PC からリモート接続できるようになり、
これ以降、USB 接続のマウスは不要となります。

広告

Windows の開始・終了時刻を一覧にする

イベント ビューアーを利用して、Windows の開始・終了の時刻を収集する方法を紹介します。

イベント ビューアーは、[管理ツール] の中に存在します。
コマンドで "eventvwr" を実行しても起動します。

EventViewer-00

イベント ビューアーは運用管理向けのツールであり、
OS やアプリケーションで発生するイベントを閲覧するためのツールです。
とくにサーバーの運用では必須と言ってよいでしょう。

EventViewer-01

この中から、OS の開始・終了に関するイベントを取り出します。
[カスタム ビューの作成] をクリックします。

EventViewer-01-1

次に条件を指定するのですが、
どうやらハードウェアや OS の種類により、 開始・終了時に発生するイベントの種類が異なるようです。
[システム] のイベントの中からそれらしいものを目視で探して、
イベント ソースとイベント ID を把握しましょう。
とある PC の Windows 7 の環境では、次のように指定します。

[ソースごと] を選択して、さらに [イベント ソース] で [Kernel-General] を選択します。
[イベント ID] に [12,13] と入力します (12 は開始、13 は終了)。

EventViewer-02

適当にカスタム ビューの名前を付けます。

EventViewer-03

これで、Windows の開始・終了時刻の一覧ができました。

EventViewer-04

 

ちなみに別のある PC の Windows 8.1 の環境では、
イベント ソースとして Power-Troubleshooter (開始時) および Kernel-Power (終了時) を使います。
シャットダウンしても、内部的にはスリープの扱いになっているようです。

カテゴリー: OS. タグ: . Leave a Comment »

Surface Pro で開発環境のセットアップ

日本版の Surface Pro に開発環境 (主に .NET) をセットアップしました。 
Windows 8 を新規インストールした場合との違いは、
Office 2013 が最初からインストール済みであることくらいでしょうか。

以下は、そのときの簡易的なメモです。

■ OS セットアップ時

コンピューター名
Wi-Fi 接続
アカウント
    Microsoft アカウントでログインします。
    個人設定の同期もここでできます。 (8.1 用に追記)

■ 基本設定

BitLocker
Windows エクスペリエンス インデックス計測
Windows Update 設定・実行
Windows Defender クイック スキャン
Windows ストア アプリ更新
ファイアウォール (HTTP, HTTPS の許可)
外部キーボード・マウス

■ 個人設定

アカウントの画像
ピクチャ パスワード
フォルダー オプション
タスク バー、タスク マネージャー
電源オプション 
    初期設定では画面がかなり明るいため、明るさを落としました。
セカンド スクリーン、ディスプレイの拡大率
デスクトップ (背景、色、サウンド、スクリーン セーバー)
IME ユーザー辞書ツール
スタート画面 (主に 8.1)

■ 基本アプリケーション

Google Chrome
Mozilla Firefox
Adobe Reader
Dropbox

■ 開発用アプリケーション

Web Platform Installer 4.5
Internet Information Services 8
    Web Platform Installer で [IIS の推奨される構成] を実施したところ途中で失敗したため、
    [Windows の機能の有効化または無効化] から再実施しました。
    .NET Framework は、この時点で有効化されます。 

Office Home and Business 2013 (x86)
    最初からインストールされています。
    Office アプリケーションのうちいずれかを起動し、同梱されていたプロダクト キーを入力します。
    ここで SkyDrive も設定されます。
    Dr.シンプラー 2013 の無償版 (Lite) はまだのようです。
Project Professional 2013 (x86)
Windows Live Essentials

SQL Server 2012 R2 Express SP1 (x64)
    データベース エンジンのみインストールします。
SQL Server 2012 R2 Developer SP1 (x64)
    クライアント ツールのみインストールします。
    SQL Server Profiler をインストールするために Developer エディションを利用しています。

Visual Studio 2012 Ultimate (x86)
Visual Studio 2012 更新プログラム (KB2781514)
Visual Studio 2012 Update 2
Visual Studio Team Foundation Server 2012 Power Tools
Windows Phone SDK 8.0
    インストール後、ネットワークに接続できなくなりました。
    ここで構成される仮想ネットワークが原因のようです。
    Hyper-V マネージャーでそれらの仮想スイッチを削除することで、ネットワーク環境を元に戻しました。
    そのため、Windows Phone 8 の仮想マシンは作成できていません。
WebMatrix 3
    Web Platform Installer でインストールします。

Windows エクスペリエンス インデックスの計測結果を載せておきます。
MacBook Air (Mid 2013) の最小構成での計測結果にかなり近いです。

Windows エクスペリエンス インデックス

 

バージョン情報
Surface Pro 128GB (日本版)
Windows 8 Pro

参照
Microsoft Surface Pro
Surface Pro で外部キーボードが英語配列として認識される

カテゴリー: ツール, OS. タグ: , . 2 Comments »

MacBook Air (Mid 2013) で Boot Camp を利用する

MacBook Air (Mid 2013) で Boot Camp を利用して、Windows 8 をインストールしました。

基本的には、Boot Camp アシスタントで表示される通り、

(1) Windows 7 またはそれ以降のバージョンのインストールディスクを作成
(2) 最新の Windows サポートソフトウェアを Apple からダウンロード
(3) Windows 7 またはそれ以降のバージョンをインストール

にチェックを付けたまま進めていけば完了します。
これら 3 つの手順は個別に実行してもかまいません。

ですがやはり、Boot Camp 設定の概要を事前に読んでおくことをお奨めします (Boot Camp – インストールと設定ガイドより丁寧?)。
それでもなお初心者にはわかりづらいかなと思った点を以下に記述しておきます。

 

準備

  • Windows 8 (64bit) のインストーラーの ISO ファイルを MacBook Air に保存しておく
        保存する場所はどこでもかまいません。
        アップグレード版は利用できません。
  • 8GB 以上の USB メモリを 1 つ
        Boot Camp アシスタントが、手順 (1) で Windows のインストーラーを、
        手順 (2) で Windows サポートソフトウェア (約 500MB) を格納します。
        フォーマットされてしまうため、新規のもの、またはデータが消去されてもよいものを用意します。

Windows サポートソフトウェアのダウンロード

私は手順 (2) のダウンロードが完了しなかったため、(1)→(3)→(2) の順番で実行することになりました。
経験上、Apple に限らず米国などのサイトにアクセスする場合、23 時以降は非常に時間がかかる気がします。

Windows サポートソフトウェアのインストール

Windows サポートソフトウェアは Windows 上で動作するソフトウェアであり、
インストールは自分で実施しなければなりません。
Windows のインストールが完了したら、USB メモリ (WININSTALL) の中の BootCamp\setup.exe を実行します。

Windows サポートソフトウェア

 

Boot Camp Support Software とは?

「Windows サポートソフトウェア」と「Boot Camp Support Software」は同一のものを指しますが、
Boot Camp Support Software 5.0.5033 を自分でダウンロードしても、インストーラーが正しく動作しないようです。
Boot Camp アシスタントの手順 (2) に任せるのがよいでしょう。

Windows 用のパーティションの作成とフォーマット

Windows のインストール時にパーティションをフォーマットする必要があります。
ちなみに私は Boot Camp アシスタント上で [均等に分割] を選択して 60GB としたところ、
Windows のインストール時のパーティションには 56.0GB と表示されました。

MacOS と Windows の切り替え

Windows のインストール後、MacOS と Windows の切り替え方法を知らないと永久に Windows のままになってしまいます。
シャットダウンして電源ボタンを押した直後から、option キーをしばらく押したままにしておきます (再起動した場合も同様)。
するとハードディスクの画像が表示され、
MacOS 用のハードディスクか Windows 用のハードディスクかを選択できるようになります。

なお、ハードウェアの種類やバージョンなどの組合せが異なると、
Boot Camp の設定手順が若干異なる場合があるようです。

 

最後に、Windows エクスペリエンス インデックスの計測結果を載せておきます。
Surface Pro での計測結果にかなり近いです。

Windows エクスペリエンス インデックス

 

バージョン情報
MacBook Air (Mid 2013) 128GB (最小構成)
Boot Camp アシスタント 5.0.4

参照
Boot Camp 設定の概要
Boot Camp サポート
Boot Camp – インストールと設定ガイド (PDF)
新MacBook AirにWin8を入れてみた 完全ガイド
[Mac] BootCamp用のWindows 7 インストールディスクをSD or USBメモリに作る

カテゴリー: OS. タグ: , . 1 Comment »

現在のアプリケーションを管理者権限で再実行させる

.NET アプリケーションの実行時に、管理者権限で実行されていない場合は動的に昇格させて再実行させる方法について記述します。

ポイントは次の通りです。

  • WindowsPrincipal オブジェクトを利用して、現在の実行ユーザーが管理者グループに含まれているかどうかを判定する。
  • 現在のアプリケーションを新しいプロセスで実行する。
    動詞に runas を指定することで、UAC の権限昇格ダイアログが現れる。
  • UAC の権限昇格ダイアログで [いいえ] が選択された場合、呼び出し元に Win32Exception がスローされる。

以下がコードのサンプルです。コンソール アプリケーションとして作成しています。


using System;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Security.Principal;
using System.Text;

namespace ConsoleApplication1
{
    static class Program
    {
        static void Main(string[] args)
        {
            if (IsAdmin)
            {
                // 本来の処理を実行します。
                MainAsAdmin(args);
            }
            else
            {
                // 自身を runas で実行します。
                RunSelfAsAdmin(args);
            }
        }

        static void MainAsAdmin(string[] args)
        {
            // 例として、Program Files 内にファイルを作成します。
            var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Temp", "RunAsTest.txt");
            Directory.CreateDirectory(Path.GetDirectoryName(filePath));
            File.WriteAllText(filePath, "Test Text", Encoding.UTF8);
        }

        static bool IsAdmin
        {
            get
            {
                var principal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
                return principal.IsInRole(WindowsBuiltInRole.Administrator);
            }
        }

        static void RunSelfAsAdmin(string[] args)
        {
            var assembly = Assembly.GetEntryAssembly();
            var startInfo = new ProcessStartInfo(assembly.Location, ToCommandArgs(args))
            {
                UseShellExecute = true,
                Verb = "runas",
            };

            try
            {
                Process.Start(startInfo);
            }
            catch (Win32Exception ex)
            {
                // ユーザーが [いいえ] を選択すると例外が発生します。
                Console.WriteLine(ex.Message);
            }
        }

        static readonly Func<string, string> EscapeCommandArg = x => x.Contains(‘ ‘) ? string.Format("\"{0}\"", x) : x;
        static readonly Func<string[], string> ToCommandArgs = x => string.Join(" ", x.Select(EscapeCommandArg));
    }
}


このアプリケーションを通常の方法で (ダブルクリックなどで) 実行すると、UAC の権限昇格ダイアログが表示されます。
この時点では、「Process.Start(startInfo);」の部分で実行がブロックされています。

ユーザー アカウント制御

[はい] を選択すればアプリケーションが新しいプロセスで再実行され、IsAdmin プロパティの値が true になります。

なお、上記の場合は IsAdmin プロパティを一度だけしか呼び出していませんが、
これをアプリケーション内で頻繁に呼び出す場合は、
次のように最初に一度だけ WindowsPrincipal オブジェクトを作成して、スレッドに設定しておく方法が考えられます。


static bool isPrincipalInitialized;
static bool IsAdmin
{
    get
    {
        if (!isPrincipalInitialized)
        {
            AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
            isPrincipalInitialized = true;
        }
        var principal = (WindowsPrincipal)Thread.CurrentPrincipal;
        return principal.IsInRole(WindowsBuiltInRole.Administrator);
    }
}


バージョン情報
.NET Framework 4

参照
UACが有効の時、アプリケーションを管理者に昇格させて起動する (DOBON.NET)
管理者としてほかのアプリケーションを実行するには? (@IT)

カテゴリー: .NET Framework, OS. タグ: . Leave a Comment »

Windows 7 で C ドライブを共有する

Windows 7 で C ドライブを共有 (公開) するには、次のような手順で設定します。

  1. エクスプローラー上で対象のドライブを右クリックし、[共有] をクリックして、[詳細な共有] をクリックする。
    ([プロパティ] をクリックして、[共有] タブをクリックしても同様)
  2. [詳細な共有] をクリックする。
  3. [このフォルダーを共有する] チェック ボックスをオンにする。
  4. [OK] をクリックし、プロパティ ダイアログを閉じる。

詳細な共有

以上で、外部の PC からも「\\ComputerName\C」として、この PC の C ドライブにアクセスできるようになります。
Windows XP では「\\ComputerName\C$」としてアクセスできるように設定していましたが、
Windows 7 では最後の「$」は必要ありません。
フォルダーを共有する方法とほぼ同様ということになります。

なお、アクセス権限については、既定で Everyone に読み取りが許可されます。
これを変更するには、先ほどのダイアログで [アクセス許可] をクリックしてユーザーやグループに権限を割り当てます。

参照
他のユーザーとファイルを共有する

カテゴリー: OS. タグ: . Leave a Comment »