Windows Vistaでセキュリティが強化されたことにより、Windows Vista以降でLabVIEWアプリケーションビルダを使用するには、次の2つのことに注意する必要があります。

  • LabVIEWは、すべてのスタンドアロンアプリケーションとインストーラにアプリケーションマニフェストを埋め込みます。
  • スタンドアロンアプリケーションとそのインストーラに署名は付きません。

このヘルプトピックの他に、Windows Vista以降でのLabVIEWアプリケーションビルダの使用に関する最新情報については、「User Account Control, Digital Signing, and Manifests in LabVIEW Built Applications」を参照してください。

アプリケーションマニフェスト

LabVIEWは、すべてのスタンドアロンアプリケーションとインストーラにアプリケーションマニフェストを埋め込みます。マニフェストはアプリケーションに埋め込まれているため、ディレクトリにアプリケーションとともに表示されるには、マニフェストを取得する必要があります。マニフェストは、拡張子 .manifestが付いたXMLファイルです。マニフェストには、Windows用のアプリケーションプロパティ情報が含まれています。マニフェストは、これまでもWindowsで使用されていましたが、マニフェストのセキュリティセクションは新しい機能です。この機能により、Windows Vista以降でデプロイするアプリケーションに必要な実行レベルを対応するマニフェストで指定できるようになりました。

アプリケーションを起動するには、指定された実行レベルをもつセキュリティ権限が必要になります。アプリケーションの実行レベルによって、アプリケーションの起動時に管理者として同意することをユーザに要求するか、管理者パスワードを入力することを要求するダイアログボックスが表示されるかが決まります。管理者権限が必要なアプリケーションには、アプリケーションアイコンにセキュリティシールドのオーバーレイが表示されます。ユーザがアプリケーションを管理者として実行するか、標準ユーザとして実行するかにより、アプリケーションが書き込めるディレクトリなど、アプリケーションの複数のプロパティが決定します。標準ユーザとしてアプリケーションを起動した場合、アプリケーションは保護されているディレクトリとレジストリにデータを書き込むことはできません。たとえば、Program Filesディレクトリは、Windows Vista以降で保護ディレクトリになりました。

Microsoft社は管理者権限の必要なしにアプリケーションを実行することを推奨しています。したがって、アプリケーション開発者は、オペレーティングシステムの保護領域にアクセスしようとしないようにアプリケーションを設計する必要があります。管理者権限なしで実行すると、すべてのユーザが意図されたとおりにアプリケーションを実行することができます。

以下のコードは、スタンドアロンアプリケーションのマニフェストの例です。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

<assemblyIdentity version="1.0.0.0"

processorArchitecture="X86"

name="National Instruments.LabVIEW.LabVIEW "

type="win32"/>

<description> LabVIEW Development System </description>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">

<security>

<requestedPrivileges>

<requestedExecutionLevel

level="asInvoker"

uiAccess="false"/>

</requestedPrivileges>

</security>

</trustInfo>

</assembly>

スタンドアロンアプリケーションの必要な実行レベルは、以下の値のいずれかになります。

  • asInvoker―(デフォルト) スタンドアロンアプリケーションは、ユーザとして同じアクセス権限 (標準または管理者) で実行されます。アプリケーションの実行前に承認を促すダイアログボックスを表示しません。標準ユーザとしてアプリケーションを実行する場合、アプリケーションは保護されているディレクトリには書き込みできません。管理者としてアプリケーションを実行する場合、アプリケーションは保護されているディレクトリにも書き込みできます。
  • highestAvailable―スタンドアロンアプリケーションは最高のアクセス権限で実行されます。標準ユーザの権限しかない場合、アプリケーションは承認を促すダイアログボックスを表示しないため、保護されているディレクトリに書き込みできません。管理者の権限を持つ場合、アプリケーションは承認または管理者パスワードの入力を促すダイアログボックスを表示し、保護されているディレクトリにも書き込みできます。
  • requireAdministrator―スタンドアロンアプリケーションは管理者レベルで実行されます。標準ユーザの権限しかない場合、アプリケーションは管理者パスワードの入力を促すダイアログボックスを表示し、保護されているディレクトリにも書き込みできます。管理者の権限を持つ場合、アプリケーションの実行前に承認を促すダイアログボックスが表示されます。アプリケーションは、保護されているディレクトリに書き込みできます。

LabVIEW 8.2.1以降でスタンドアロンアプリケーションを開発し、Windows XP以前のバージョンにそのアプリケーションを配布する場合、マニフェストや必要な実行レベルを持つスタンドアロンアプリケーションは、Windows Vista以降での動作を保証しません。Windows XPはマニフェストのセキュリティセクションを無視します。

LabVIEWビルドインストーラのinstall.exeにもマニフェストが含まれています。デフォルトの必要な実行レベルはrequireAdministratorです。install.exeはシステムレベルのファイル、設定、および構成を更新するため、install.exeの必要な実行レベルの変更は回避してください。install.exeの必要な実行レベルの変更は、不正に動作するインストーラの原因になる可能性があります。

デジタル署名

デジタル署名により、アプリケーションまたはインストーラの作成者、およびアプリケーションまたはインストーラの安全性をユーザに示すことができます。Windows Vista以降ではセキュリティがさらに強化されているため、署名されていないアプリケーションまたはインストーラをインストールまたは実行した場合の危険性について警告するダイアログボックスが表示される可能性があります。LabVIEWでは、ユーザがデジタル署名をカスタマイズできるよう、デフォルトではスタンドアロンアプリケーションおよびインストーラへの署名が行われません。ユーザに対して表示されるダイアログボックスの数を減らすには、ビルド時にアプリケーションプロパティダイアログボックスのウィンドウセキュリティページまたはインストーラプロパティウィンドウセキュリティページでスタンドアロンアプリケーションとインストーラに署名をします。

アプリケーションやインストーラに署名するには、以下のツールが必要になります。

  • 署名証明書―Verisign社を含む複数のベンダーから署名証明書を購入できます。企業または組織にのみ署名証明書を購入できます。個人は署名証明書を購入できません。署名証明書は、PFX (Personal Information Exchange) ファイルでなければなりません。
  • 署名ツール―Windowsドライバキットに署名ツールが含まれています。署名ツールはデジタル署名の適用に使用します。

スタンドアロンアプリケーションに署名するには、.exeファイルにのみ署名する必要があります。LabVIEWビルドインストーラに署名するには、install.exeにのみ署名する必要があります。スタンドアロンアプリケーションおよびインストーラについては、他のファイルに署名する必要はありません。デジタル署名はデジタル証明書について他社のプロバイダでの購入を伴うため、署名コードの手順が一律ではありません。