2013年6月27日木曜日

Office 2010 KMS Host ライセンスパックをWindows 8 Or Windows Server 2012にインストールする

  • このエントリーをはてなブックマークに追加


現行バージョンのOffice 2010 KMS ホストライセンスパックをWindows 8 Or Windows Server 2012にインストールすると、サポートされていないOSという旨のエラーが表示されます。

以下のステップで回避出来ます。

1)Office 2010 KMS Host License Packをダウンロードする。

2)KeyManagementServiceHost.exeを解凍し、"Unsupported operating system"メッセージを無視する。

3)%programfiles%\MSECache\OfficeKMSフォルダを開く(64-bitのOSの場合、%programfiles(x86)%)。

4)kms_host.vbsをkms_host.oldにリネームする

5)Office Deployment Support TeamのSkyDrive(http://sdrv.ms/RiZ8Q9)からkms_host.zipファイルをダウンロードする。(自分のLive ID、Microsoft IDが必要)

6)ダウンロードしたkms_host.zipを解凍し、kms_host.vbsファイルを%programfiles%\MSECache\OfficeKMSフォルダーにコピーする。

7)cmdを起動し、%programfiles%\MSECache\OfficeKMSにナビゲートする。以下のコマンドを実行

cscript kms_host.vbs

8)KMSホストでインタネット接続があれば、「Yes」をクリックし、オンラインでOffice KMS ホストプロダクトキーをActivateする。でなければ、「No」→「Enter」をクリックし、Command Windowを閉じる

9)最後に以下のコマンドを実行し、正しくインストールされていることを確認する

cscript slmgr.vbs /dlv bfe7a195-4f8f-4f0b-a622-cf13c7d16864

 

参考:

How to install the Office 2010 KMS Host License Pack on Windows 8 or Windows Server 2012

2013年6月26日水曜日

Exchange 2010 トランスポートルールで特定のユーザーが特定の外部メールドメインにしか送信できないように構成する

  • このエントリーをはてなブックマークに追加


Exchange 2010のトランスポートルールを使って特定のユーザーから外部への送信を制御することができます。

今回以下の条件を満たしたトランスポートポートルールを作成してみます。

・特定のユーザーから組織内部への送信はできる。

・特定のユーザー(Ex10user01@contoso.com)から特定の外部メールドメイン(@Gmail.com、@Hotmail.com)にしか送信できない。

・NDRが返ってくる

1)Exchange 管理コンソールを開き、「組織の構成」→「ハブトランスポート」→「トランスポートルール」をクリックします。「操作」ペインで「トランスポート ルールの新規作成」をクリックします。2013-06-26_16h32_27

2)適当な名前を入れて、「次へ」をクリックします。
2013-06-26_16h33_36

3)条件画面で「差出人がユーザーの場合」をチェックし、「ユーザー」を選択します。
2013-06-26_16h42_16

4)条件画面で「メッセージを組織の内部または外部、あるいはパートナーのユーザーに送信する場合」をチェックし、「組織外」を選択します。
2013-06-26_16h42_45

5)「次へ」をクリックします。
2013-06-26_16h42_55

6)処理画面で「send rejection message to sender with enhanced status code」をチェックし、「rejection message」に"You are not allowed to send mail to outside"のような分かりやすいメッセージを入力します。
2013-06-26_16h44_11

7)処理画面で「Enhanced status code」をチェックし、拡張状態コードを入力します。終わったら「次へ」をクリックします。
image

8)例外画面で「受信者のアドレスがテキストパターンと一致する場合を除く」をチェクし、「テキストパターン」を設定します。テキストパターンの自体は正規表現です。
@gmail.com$ → "@gmail.com”で終わる文字列
image

9)「次へ」をクリックし、「新規作成」をクリックします。
2013-06-26_16h45_37
2013-06-26_16h45_51

10)トランスポートルールの作成ができたら、Ex10user01でOWAにログオンし、メールを送信してみます。
宛先はGmail メールアドレス、Hotmailメールアドレス、許可されない外部メールアドレス、内部メールアドレス
image

11)送信許可された内部、Gmail、Hotmailにメールは送信されました。送信制限された外部メールアドレスへの送信はできなく、NDRが返って来ました。設定したRejection MessageもNDRに表示されています。
image

image

 

特定の外部メールドメインへの送信を許可する手順を紹介して来ましたが、特定の外部のユーザーへの送信も同じようなやりかたで制御できます。

2013年6月24日月曜日

「VMware Player 5 Windows Server 2012」にVMware Toolsインストールしても、NICが表示されない

  • このエントリーをはてなブックマークに追加


VMware Player 5でWindows Server 2012をインストールするときに、「ゲストOSの選択」画面でバージョン選択の項目があります。よく見てみたらWindows Server 2012はないです。クライアントOSしかないようですね。

で、ここが重要です。

Windows 8 /Windows 8 x64を選択してください。Windows 8とWindows Server 2012は同じカーネルを利用しているので、問題有りません。
image

しかし、ここでWindows 8以外のバージョン(XPとか)を指定したら、問題が起きます。別のバージョンの場合、あとでインストール必要なVMware Tools(ドライバーなど)も古いバージョンになる可能性があります。VMware Toolsが正しくインストールできたように見えますが、「ネットワーク接続」でNICがなかなか認識されません。ドライバーがWindows8/Windows Server 2012に対応していないため、NICや他のハードウェアが正しく動作しないことがわかります。十分に気をつけてください。

2013年6月20日木曜日

仮想ハードディスク(VHD/VHDX)内のボリュームを縮小する

  • このエントリーをはてなブックマークに追加


クライアントOS Windows 7/8、サーバーOS Windows Server 2008 R2/Windows Server 2012の「ディスクの管理」に「VHDの作成」「VHDの接続」という機能が提供されています。

「VHDの作成」はVHDの作成を行う機能で、ここで省略しますが、注意点としては、Windows 7/2008 R2ではVHDXの作成ができなく、Windows 8/Windows Server 2012からできるようになったことです。

「VHDの接続」は言葉通り、VHDに接続して、いろいろ操作(ボリュームの作成、ボリュームの拡張、縮小など)ができます。

で、今回紹介したいのは、VHD/VHDXのボリュームを縮小する方法です。

主なステップは以下です。

・「コンピューターの管理」を起動し、左ペインの下にある「ディスクの管理」を選択します。

・「ディスクの管理」を右クリックし、「VHDの接続」をクリックします。
image

・VHD ディスクが表示されて、右クリックをし、「ボリュームの縮小」を選択します。
image

・「縮小後の合計サイズ」の値を確認しながら、「縮小する領域のサイズ」で適当な値を指定します。
image

・「縮小」をクリックして、縮小処理を開始します。
VHDのサイズによってかかる時間は変わります。
image

 

上記のステップを経て正常に縮小できるはずです。

しかし、うまくいかないケースもあります。

VHDファイルのサイズが大きかったり、コンピューターの負荷が高かったりする場合、以下のエラーが出る可能性があります。

十分なディスク領域がないので、この操作を完了できません。

たまに、VHDの切断をして、再度接続したら、解決することもあると思いますが、なかなか解決できないこともあります。「ディスクの管理」はまだまだ不安定で、Perfectな機能とはいえないですね。そういう場合は、「ディスクの管理」での縮小を諦めるしかない、別のツールを使う必要があります。

ここでご紹介するのは、MiniTool Partition Wizard Home Edition という専用のディスク操作ツールです。

ダウンロードはこちらから

Home Editionですが、基本的なディスク操作機能が揃っています。

ディスクのMove、Resize、Merge、Delete、Format、Copy、などがあります。

ディスクを縮小するには、Resizeを使います。

・まず、VHDをマウントします。
windows8は右クリックし、「マウント」を選択するだけでいいですが、Windows 7の場合はディスクマウント用のソフトが必要みたいです。VHD Attachというツールがあって、インストールしたら、VHDファイルを右クリックし、マウントできます。

・VHDマウントできたら、MiniTool Partition Wizard を起動して、ディスク一覧が表示されます。
image

・VHDを選択して、右クリックして、「Move/Resize」をクリックします。
image

・Partition Sizeを指定します。直接赤枠で横にドラッグすることもできます。
image

・「OK」をクリックして、メイン画面に戻ります。ここまで、変更がまだ適用されないため、メイン画面の左上にある「Apply」をクリックします。
image

・「Apply changes?」確認用Messageが表示され、「Yes」をクリックします。
image

・処理詳細が表示されたあとに、成功のメッセージが表示されます。
image
image

これで完了です。

使いやすい、信頼性があるツールだと思っています。もちろん、VHD,VHDXだけではなく、普通のハードディスクにも使えます。ぜひ使ってみてください。

2013年6月19日水曜日

「ディスクの管理」 仮想ディスクサービスに接続中

  • このエントリーをはてなブックマークに追加


ディスクの管理を選択したら、”仮想ディスクサービスに接続中”のままでディスクを表示出来ません。

原因はいろいろありますが(前回VHDに接続していて、「ディスクの管理」を正常に閉じていないとか)、私の場合は、VDSサービスを再起動することで直りました。

「サービス」管理コンソールを起動して、”Virtual Disk”を再起動する。

2013年6月14日金曜日

Windows Server 2012 Azure Powershell install

  • このエントリーをはてなブックマークに追加


Windows Azure Powershellのダウンロードはこちらをクリック

Windows 7、8にダウンロードしたら、すぐにインストール出来ますが、Windows Server 2012にインストールする場合、エラーが出ます。

image

.Net Framework 3.5 SP1正常にインストールされませんでした。。。

これを解決するには、Windows Server 2012に.net framework 3.5機能をインストールする必要があります。

・Windows Server 2012のISOファイル右クリックでをマウントする(例えばDドライブにマウント)

・Powershellを管理者として起動する

・以下のコマンドを実行する

Add-WindowsFeature –Name NET-Framework-Features –Source d:\sources\sxs

インストール完了したら、再びAzure Powershellをインストールします。

2013年6月12日水曜日

Windows Server 2012 R2 新機能と強化された機能

  • このエントリーをはてなブックマークに追加


Windows Server 2012 R2では既存機能の強化のほか、いくつか新機能も追加されました。日本語の正式な名前がわからないので、英語で書いておきます。

・Live migration compression
 仮想マシンのディスクファイル(VHD/VHDXファイル)を圧縮することで、ライブマイグレーションの転送スピードをアップする。

・Live migration with RDMA
 転送処理をハードウェアにオフロードし、Remote Direct Memory Access(RDMA)技術を利用することによって、10GBit以上のネットワーク接続で高パフォーマンスを実現できる。56GB/sまでの転送速度をサポートする。

・Shared VHDX files
 クラスタ構築に、Fibre Channel, iSCSI, SMBの他、Shared VHDX filesも提供されています。Shared VHDX filesはファイルサーバークラスターやCluster Shared Volumes(CSV)に保存できます。

・Online resizing of VHDX
 仮想マシンが実行中の状態でディスクファイルVHDXを拡張・縮小することができる。

・Hyper-V Replica
Windows Server 2012から導入されたHyper-V レプリカが強化されました。可変な(設定可能な)レプリケーション頻度(30Seconds ~15Minutes)をサポート。複数ノード、第三のレプリカサイトもサポートする。

・Hyper-V Recovery Manager
 Windows Azureと統合して、複数サイトの間でリカバリを管理する

・Live Virtual Machine Cloning / Exporting
 仮想マシンが起動している状態でクローニングやエクスポートができる。

・Linux ゲストOSへのサポート強化
1,Full dynamic memory support for Linux guests
 Linux ゲストOSでの動的メモリをサポート。最小メモリ設定、Hyper-V スマートページング、メモリバルーニング、Runtime Configurationなど
2,Linux Integration Services(LIS)が標準で含まれている。手動でダウンロード/インストールは不要。

・Storage tiering
 低いスペック、低コストのハードウェアを使うときに最大限にハードウェアの性能を引き出す。Storage tieringを使って、低コスト、大容量のspinning disksで使用頻度の低いデータを保存、一方、ハイスピードのディスク(SSDなど)で使用頻度の高いデータをストアする。

・Storage Quality of Service (QoS)
仮想マシンごとにストレージのIOPSを制限する

・Multi-tenant VPN gateway
 2012R2に組み込まれている機能で、複数の外部組織とSite-to-Site VPNリンク上のシームレスな接続を提供する。また、物理ネットワークと仮想ネットワーク、エンタプライズデータセンターとホスティング組織、エンタプライズネットワークとWindows Azure、間の接続も実現できる。

・他に強化された機能
 AD,VDI,NIC Teaming,などあります。

詳細はホワイトペーパーをご参照ください。

Windows_Server_2012_R2_Overview_White_Paper

VM-GenerationIDとmsDS-GenerationID

  • このエントリーをはてなブックマークに追加


VM-GenerationIDをサポートしているハイパーバイザー(Hyper-V)の仮想環境で、仮想マシンを作成するときにハイパーバイザーが各仮想マシンのためユニークなIDを生成します。これはVM-GenerationIDです。

Windows Server 2012を実行しているDCを仮想マシンとして構成した時に、仮想DCがVM-GenerationIDの値をDCコンピューターオブジェクトの属性に保存します。保存用の属性はmsDS-GenerationIDです。

この2つの値を比較することで、従来のUSN ロールバック問題を解決することができます。こちらを参照ください。

Windows Server 2012 Active Directory 新機能

ここでは、VM-GenerationIDとmsDS-GenerationIDの確認の仕方を紹介します。

まず、VM-GenerationIDを確認してみましょう。

仮想マシンの構成ファイル(<GUID>.xml,、通常Virtual Machinesフォルダーにある)を開いて"generation_id"で検索すると、下記のような一行が出てきます。

<generation_id type="string">405145306c70333b051f62fee0f46a02</generation_id>

 

次に、msDS-GenerationIDを確認します。

1)「イベントログ」⇒「アプリケーションとサービスログ」⇒「Directory Service」⇒「現在のログをフィルター」をクリックし、フィルター画面の「イベント ソース」で"ActiveDirectory_DomainService"を選択し、「タスクのカテゴリ」で”内部構成”を選択してOKをクリックします。
image

2)以下のようなイベントログを特定します。

ドメイン コントローラーのコンピューター オブジェクトの msDS-GenerationId 属性を読み取ります。
 
msDS-GenerationId 属性の値:
369122541302999554

3)369122541302999554は長整数になっているため、これを16進数に変換する必要があります。cmdでLDPを起動します。「ユーティリティ」⇒「長整数コンバーター」で369122541302999554を文字列フィルドにコピーし実行すると、上位、下位で数字が出てきます。
image
上位、下位の両方の数字を電卓で16進数に変換します。
image ⇒ image
image ⇒ image

上位と下位を結合して51F62FEE0F46A02になります。上位の16進数が7文字になっているため、頭に0を追加すると、051F62FEE0F46A02になります。VM-GenerationIDの後ろの16文字と比較してみると、051f62fee0f46a02と同じIDであることを確認できる。

もっと簡単な方法があります。ADSIエディターなどで直接DCコンピューターオブジェクトの属性で確認する方法です。ただ注意点としては、値が逆になっていることです。

02  6A  F4  E0  FE  62  1F  05    ⇒    05  1F  62  FE  E0  F4  6A  02

image

Windows Server 2012 仮想DC クローニング

  • このエントリーをはてなブックマークに追加


Windows Server 2012の新機能の一つ、仮想DCクローンの実施手順を書いておきます。

※前提条件

1、ハイパーバイザーがVM-GenerationIDをサポートしている
 VM-GenerationIDはVMのユニークなIDで、Windows Server 2012を実行しているDCのVM-GenerationIDはDCコンピューターオブジェクトのmsDS-GenerationID属性に保存される。
2、ソース仮想DCがWindows Server 2012を実行している
3、PDC EmulaterがWindows Server 2012を実行している、かつオンラインになっている

1)Cloneable Domain Controllers Groupにソース仮想DCを追加。「Users」コンテナにある。
既定では、Cloneable Domain Controllers グループにメンバーがない。DCクローンを実施する際に、対象ソースDCをメンバーとしてグループに追加する。クローンが正常に終了したら、グループからメンバーを削除する必要がある。

2)クローンに互換性がないコンポーネントやアプリケーションがあるかを確認
Get-ADDCCloningExcludedApplicationListで確認
image
該当アプリケーションのベンダーにクローンできるかを確認する。
クローンできるのであれば、Get-ADDCCloningExcludedApplicationListに-GenerateXMLをつけてもう一回実行し、該当アプリケーションを許可リストに追加する。実行したら、CustomDCCloneAllowList.xmlというファイルが生成され、C:\Windows\NTDS\フォルダに保存される。
クローンできないのであれば、アプリケーションをアンインストールする必要がある。
image

3)DCcloneConfig.xmlを生成
互換性のないアプリケーションがないことを確認できたら、New-ADDCCloneConfigFileでDCcloneConfig.xmlファイルを生成する。

New-ADDCCloneConfigFile -IPv4Address 10.10.3.64 -IPv4DefaultGateway 10.10.0.1 -IPv4DNSResolver 10.10.3.64,10.10.3.63 -IPv4SubnetMask 255.255.248.0 -Static -SiteName DefaultSite

IPアドレス、ADサイト等情報を設定できる。ファイル自体はC:\windows\NTDSフォルダーに保存される。
image

4)ソース仮想DCをコピー(エクスポート)とインポート
DCCloneConfig.xmlファイルもあり、サポートされていないアプリケーションもない状態で、クローン処理を開始する。
ソース仮想DCをシャットダウンして、エクスポートする。Hyper-V管理コンソールでエクスポートする、またはホストサーバー上でExport-VMを実行する、2つの方法がある。Powershellの場合、以下です。

Export-VM -Name WS1204 -Path C:\ExportedVMs

仮想マシンをインポートする
Import-VM -Path "C:\exportedvms\WS1204\Virtual Machines\CD3D730A-DB3C-41D2-89B7-F8E26B18C832.XML" -Copy -GenerateNewId -VhdDestinationPath C:\Hyper-V\WS1205
image

5)クローニング処理を行う
クローニング処理に時間がかかるが、やっていることは主に2つ。
a、クローンConfigファイルを作成
b、ソースDCのコピーを作成

最後にコピーされたDCを起動して、正常完了を待つ。
image

再起動できたら、ログオンして、ホスト名やIPアドレスを確認する。ホスト名に”-CL0001”のような文字列が付いている。最大 "-CL9999"、9999台クローンしたことを意味する。Active DirectoryユーザーとコンピューターでクローンされたDCがDomain Controllersに入っているかも確認できる。

 

参考情報

Virtual Domain Controller Cloning in Windows Server 2012

2013年6月11日火曜日

Windows Server 2012 Active Directory 新機能

  • このエントリーをはてなブックマークに追加


・GUIで「ゴミ箱」「細かい設定可能なパスワードポリシー」を管理

・Safely Virtualize DCs

・Clone DCs

・Implement Kerberos claims identity

・Control Access to files and folders with Dynamic Access Control

・Protect the RID Pool

・User Powershell for everything

 

今までDC仮想化にあったUSN問題

・USN rollback

image

image

Windows server 2012ソリューション
・ハーパーバイザが仮想DCのためVM-GenerationID(DC コンピュータオブジェクトのmsDS-GenerationIDに保存される)を作成
・仮想DCのインポート、コピー、またはスナップショット適用の時に、VM-GenerationIDがセットされる。
・仮想DCが起動された時に、VM-Generation IDとmsDS-GenerationIDが異なると、仮想DCが自分自身がリストアされたことを判断し、以下の操作を行う
 InvocationID Changes
 RID pool discarded
 Non-authoritative restore of SYSVOL

image

クローニングステップ

image

2013年6月5日水曜日

Exchange 2010からExchange 2013にパブリックフォルダーを移行

  • このエントリーをはてなブックマークに追加


Exchange 2010とExchange 2013の共存環境でパブリックフォルダーの移行をやってみました。
最初は日本語のTechNet上にのっている手順に沿ってやってみたが、手順にミスがあり、なかなか進められませんでした。なので、日本語の手順を参照しないでください。

以前のバージョンから Exchange 2013 にパブリック フォルダーを移行する

そして、英語のサイトを参照してうまく移行出来ました。

Migrate Public Folders to Exchange 2013 From Previous Versions

手順は細かいところまで書いてあるので、ここでポイントだけ書いておきます。
1)移行用のスクリプトをダウンロードし、4つのPowershellスクリプトを作業用フォルダに保存
Download all four of the Microsoft Exchange 2013 public folder migration scripts.
Export-PublicFolderStatistics.ps1
PublicFolderToMailboxMapGenerator.ps1
PublicFolderToMailboxMapGenerator.strings.psd1
Export-PublicFolderStatistics.strings.psd1



2)移行の準備パブリックフォルダーの構造、Statistics、ClientPermissionなどの情報をエクスポートする
前に成功した移行がないことを確認し、あったら下記コマンドで$falseに設定
Set-OrganizationConfig -PublicFoldersLockedforMigration $false -PublicFolderMigrationComplete $false



3)レガシーExchange サーバーで移行用のCSVファイルを作成
a、Export-PublicFolderStatistics.ps1スクリプトを実行し、フォルダー名からフォルダーサイズへのマッピングファイルを作成
.\Export-PublicFolderStatistics.ps1 <FQDN of source server> <Folder to size map path>
例:
[PS] C:\temp>.\Export-PublicFolderStatistics.ps1 -ExportFile ExpPFSta.csv 
-PublicFolderServer w8r2ex10.contoso.local

b、PublicFolderToMailboxMapGenerator.ps1スクリプトを実行し、パブリック フォルダーとメールボックスとのマッピング ファイルを作成します。 このファイルは、Exchange 2013 メールボックス サーバー上に正しい数のパブリック フォルダー メールボックスを作成するために使用されます。
.\PublicFolderToMailboxMapGenerator.ps1 <Maximum mailbox size in bytes> 
<Folder to size map path> <Folder to mailbox map path>

[PS] C:\temp>.\PublicFolderToMailboxMapGenerator.ps1 -ExportFile pftombx.csv
-MailboxSize 25GB -ImportFile .\ExpPFSta.csv

パブリックフォルダーメールボックスマッピングファイルは以下のような感じです。
image


4)Exchange 2013でパブリックフォルダーメールボックスを作成
Nameはパブリックフォルダーメールボックスマッピングファイル内の名前になります(既定でMailbox1、必要に応じてCSVファイルを編集し名前を変更できます。)。
最初のパブリックフォルダーメールボックスにはPFの階層情報が含まれ、マスター階層メールボックスになります。そのため、最初のメールボックスの作成はHoldForMigrationパラメータを指定する必要がある。
パブリックフォルダーの数が多く、データ量が大きい場合、複数パブリックフォルダーメールボックスを作成する必要がある。
New-Mailbox –PublicFolder <Name> –HoldForMigration $true




5)移行を開始
a、Exchange 2013MBXサーバーで以下のコマンドを実行
New-PublicFolderMigrationRequest -SourceDatabase (Get-PublicFolderDatabase -Server 
<Source server name>) 
-CSVData (Get-Content <Folder to mailbox map path> -Encoding Byte)


b、移行の状況を確認する
Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatistics -IncludeReport | Format-List


1時間に移行できるデータ量は約2,3GB。
移行が開始したら、移行要求のステータスがQueued,InProgressに変わります。AutoSuspendedになったら、(以下の情報が上記コマンドで確認した場合)ステップ6)に移動する

情報: メールボックス e02e93a9-46c5-4240-9ed8-64e552bd9824 の移動要求を完了する準備が
できましたが、SuspendWhenReadyToComplete パラメーターが $true に設定されているために
、自動的に中断されました。


以下のメッセージが出た場合、Resume-PublicFolderMigrationRequest –Identity \PublicFolderMigration を実行し解消できるかもしれない。

情報: メールボックスがロックされたため、要求が一時的に延期されました。2013/06/04 16:
22:53 後に Microsoft Exchange Mailbox Replication サービスは要求処理の続行を試みます




6)移行の最後にレガシーExchangeサーバーでパブリックフォルダーをロックダウンする
Set-OrganizationConfig –PublicFoldersLockedForMigration $true




7)移行を終了する
Set-PublicFolderMigrationRequestでPreventCompletion flagをFalseにしないと、移行が完了できません。
Set-PublicFolderMigrationRequest -Identity \PublicFolderMigration –PreventCompletion $false
Resume-PublicFolderMigrationRequest -Identity \PublicFolderMigration


8)テストして、移行をアンロックするa、Set-mailboxのコマンドでパブリックフォルダーメールボックスをユーザーに関連付ける
Set-Mailbox -Identity <Test User> -DefaultPublicFolderMailbox <Public Folder Mailbox Identity>


b、OWAにログオンして、「お気に入り」を右クリックし、移行されたパブリックフォルダーを追加するimage     ⇒              image


c、レガシーExchange サーバーで移行が終了したことを通知
Set-OrganizationConfig –PublicFolderMigrationComplete $true