Category: Windows Server 2012 R2


Hyper-V サーバー内の 仮想マシンを別の仮想ホストへ移動するためのPowerShell コマンドです

PowerShell を利用するメリットの一つとして、仮想マシンの移動を指定順序で実行することができます。
例えば、移動元仮想ホスト上仮想マシンをすべて移動先仮想ホストへ移動するといったことができます。
この場合、移動元仮想ホストのディスクに重複除去機能を使用している場合は、移動先仮想ホストのディスクの空き容量に注意する必要があります。

$VMname = “移動したい仮想マシン名”
$VMHost = “移動先ホスト名”
$Path = “移動先パス名”
Move-VM $VMname -DestinationHost $Host -DestinationStoragePath $Path

参考:
PowerShell を使って仮想マシンの保存場所を移動する

広告

Hyper-Vの記憶域の移行の機能を利用すると同時に複数台の仮想マシンの保存先を変更することができます。
既定では2台までとなっています。
この同時実行数を変更する場合は、Hyper-Vの設定にある記憶域の移行から行います。

64bit OS である Windows Server 2016 で ODBCドライバーを使ってテキストファイルを操作しようとしたところ、「データ ソース名および指定された既定のドライバーが見つかりません」とエラーとなってしまいました。
32bit-odbc-00

ODBCドライバーには 32ビット と64ビット の2種類があり、テキストファイルを操作するODBCドライバーは、32ビットにしかありません。
32bit-odbc-04

一方で、IISのアプリケーションプールは、32ビット アプリケーションが有効となっていないために、32ビットのODBCドライバーが使用できない状態になっています。

32bit-odbc-02

そこで、「32ビット アプリケーションの有効化」を False からTrue へ変更することで、32ビットのODBCドライバーが使用できるようになり、テキストファイルを操作することが可能となります。

 

Windows Server 2016へサインインすると、自動的にサーバーマネージャーが起動されます。Windows Server Essentials では、Windows Server Essentials ダッシュボードで管理を行うため、サーバーマネージャーを自動起動しないように設定します。
サーバーマネージャーを自動起動しないように設定するには、グループポリシーを利用します。

1.サーバーマネージャーのツールから「グループポリシーの管理」を選択します。
Azure043.png

2.グループポリシーの管理>フォレスト>ドメイン>ドメイン名>グループポリシーオブジェクトを展開します。
azure044

3.操作メニューの「新規」をクリックします。
Azure045.png

4.グループポリシーオブジェクトオブジェクト(GPO)の名前を入力し、「OK」をクリックします。
Azure046.png

5.作成したGPOを右クリックして、「編集」をクリックします。
Azure047.png

6.コンピューターの構成>ポリシー>管理用テンプレート>システム>サーバーマネージャーの順に展開し、「ログオン時にサーバーマネージャーを自動的に表示しない」をクリックします。
azure048

7.「有効」を選択し、「適用」をクリックします。
Azure049.png

8.作成したGPOをドメインにリンクします。
Azure050.png

Windows Server 2016/2012R2 Standard / DataCenter  へWindows Server Essentials エクスペリエンスを追加した後は、作成したネットワーク管理者アカウント(Admin)でサインインします。

サインインすると、サーバーマネージャーが自動的に起動されます。Windows Server Essentials の管理は、Windows Server Essentials ダッシュボードから行うため、サーバーマネージャーを自動起動しないように設定します。

Azure041.png

 

また、Windows Server Essentials ダッシュボードを起動すると、ユーザータブにはビルトインAdministrator(ws16Admin)が表示されています。
Windows Server Essentials では、ビルトインAdministratorを使用することはお勧めしていませんので、Windows Server Essentialsダッシュボードから表示させないようにします。

azure042

Windows Server 2016 Standard やDataCenter で、Windows Server Essentialsの機能を利用するには、Windows Server Essentials エクスペリエンスの役割を追加し、構成をする必要があります。
Windows Server Essentials エクスペリエンスの役割の追加と構成は、PowerShellを使うと簡単です。
【Windows Server Essentials エクスペリエンスの役割を追加】

Install-WindowsFeature ServerEssentialsRole
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS > Install-WindowsFeature ServerEssentialsRoleSuccess Restart Needed Exit Code      Feature Result
——- ————– ———      ————–
True    No             Success        {BranchCache, ファイル サービスおよび iSCS…
警告: Windows Server Essentials エクスペリエンスを構成する必要があります。

【Windows Server Essentials エクスペリエンスを構成】

Start-WssConfigurationService -NetBiosName 内部ドメイン名 -NewAdminCredential 管理者アカウント -Force

※コマンドを実行すると、認証ダイアログが表示されます。
管理者アカウントとパスワードを入力することで、コマンドが実行されます。
コマンドが実行されると途中でサーバーが再起動されます。
再起動後、構成中であるウィザード画面が自動表示され、構成を続けます。
構成が完了すると、下記のとおりとなります。
Azure040.png

Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS > Start-WssConfigurationService -NetBiosName Contoso -NewAdminCredential admin -Force

Status ErrorCode Message                                        Progress
—— ——— ——-                                        ——–
Running         0 Windows Server Essentials is being configured.        0

【Windows Server Essentials エクスペリエンスを構成の状況を確認】Windows Server Essentials エクスペリエンスを構成をPowerShellでした場合、進捗状況がわからなくなります。
PowerShell で進捗状況を確認するには以下のコマンドレッドを使用します。
サーバー再起動後は、構成ウィザードが自動実行されますので、進捗状況を確認することができます。

Get-WssConfigurationStatus
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS > Get-WssConfigurationStatus

Status ErrorCode Message                                        Progress
—— ——— ——-                                        ——–
Running         0 Windows Server Essentials is being configured.        18

Windows Server 2012 R2 Essentials のリモートWebアクセスのサイトで簡単な入力フォームを作成してみました。
その際に、入力欄へHTMLタグやスクリプトなどを入力すると「アプリケーションでサーバーエラーが発生しました。危険な可能性のある Request.Form 値がクライアントから検出されました」と表示され、先に進めなくなりました。これは、asp.net で、既定の動作です。今回は、この画面を表示させずに正しいページが表示させるようにします。
requestform_000

いろいろな対処方法があるとは思いますが、今回は次の2つを実行しました。

  • バリデーションを無効にする
  • 入力されたデータをHTMLエンコードする

【バリデーションを無効にする】
1.IIS マネジャーを起動し、管理の構成エディタをクリックします。
requestform_001

2.セクションで system.web > httpRuntime を選択し、「requestValidationMode」の欄を2.0へ変更します。
requestform_003

3.セクションで system.web > pages を選択し、「validateRequest」が false であることを確認します。
requestform_004

【入力されたデータをHTMLエンコードする】
入力されたデータをHTMLエンコードするには、以下の HttpUtility メソッドのHtmlEncode 関数を使用します。

HttpUtility.HtmlEncode(入力された値)

Windows Server Essentials には、リモートWebアクセスという機能があります。
この機能は、Webブラウザを使ってファイルサーバーのファイルをアップロードやダウンロードすることができます。
IISでは、既定でアップロードできるサイズは、約30MBですが、リモートWebアクセスでは約2GB(2,147,482,624バイト)に変更されています。

IISのアップロードサイズは、IISマネージャーの要求フィルター設定の編集から確認することができます。
remote
画像は、Windows Server 2012R2 Essentials のものです。

Windows Server Essentials のIIS サーバーに新しいサイトを構築すると、既定では「S-JIS」でサイトが作成されます。
そのサイトへ既定のエンコード以外のWebページは、文字化けを起こしていまいます。
例えば、「UTF8」で作成されたWebページはこんな感じになります。
20160619_142606000_iOS

これは、IIS の設定を変更することで、文字化けを解消することができます。
設定の変更は、以下の通りです。

1.IISマネージャーを起動し、「.NET グローバリゼーション」を選択します。
20160619_142622000_iOS

2.「エンコード」>「ファイル」の「shift-jis」を「utf-8」へ変更し、「適用」をクリックします。
20160619_142647000_iOS

適用が完了すると、「web.config」が作成され、以下の記述が追加されます。

<?xml version=”1.0″ encoding=”UTF-8″?>
<configuration>
<system.web>
<globalization fileEncoding=”utf-8″ />
</system.web>
</configuration>

 

ホームページなどの公開Webサイトでは、会員情報やIDパスワードなどの情報を表示入力したりする場合、暗号化された通信(SSL)します。
最近では、ホームページの改ざんやマルウエアの感染防止といった観点からサイトすべてを暗号化する常時SSLが求められるようになってきました。

常時SSLは、http をhttpsへリダイレクトすることで実現できます。
今回は、Microsoft Azure 上で稼働しているWeb サーバーでhttp をhttps へリダイレクトする設定についてです。
環境は、Windows Server 2012 R2 + IIS 8.5 です。

1.IIS マネージャーを起動し、Web Platform コンポーネント をクリックします。
IMG_1827

2.URL rewite 2.0 を 検索します。
選択ボタンをクリックし、インストールボタンをクリックします。
IMG_1829

3.「同意する」をクリックします。
IMG_1830

4.「完了」します。
IMG_1831

5.追加された「URL書き換え」をクリックします。
IMG_1832

6.「空の規則」をクリックします。
IMG_1834

7.規則の名前を入力します。

名前 http to https

IMG_1835

8.パターンに次の文字列を入力します。

パターン (.*)

IMG_1836

9.条件の追加ボタンをクリックします。
IMG_1837

10.条件の追加ダイアログに以下の文字列を入力します。

条件の入力 {HTTPS}
パターン ^OFF$

IMG_1840

11.アクションには、以下の文字列を入力します。

アクションの種類 リダイレクト
リダイレクトURL https://{HTTP_HOST}/{R:1}

IMG_1844

12.右側ペインの「適用」をクリックします。
IMG_1846

13.設定された規則
IMG_1848