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

2014年6月4日水曜日

Certreq.exeで証明書を生成する

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


久しぶりの投稿です。
今日は、certreq.exeコマンドで証明書要求を作成し、証明機関(CA)に送信し、証明書を要求する手順をご紹介します。
証明書の要求(登録)には、幾つか方法があります。
・Web登録ページ(例:http://certserver/certsrv)を使用して証明書を生成する
・mmcの証明書スナップインで「新しい証明書の要求」からCAに証明書を要求する。
・今日紹介するcertreq.exeで要求する。

ステップとしては、以下になります。
1、証明書テンプレートを確認する。
「サブジェクト名」で「要求に含まれる」をチェックする必要があります。
image
チェックされていない場合は、要求が失敗し、以下のエラーが表示されます。
証明書は発行されていません (拒否) ポリシー モジュールによって拒否されました DNS
名は利用できないのでサブジェクト代替名に追加できません。 0x8009480f (-2146875377)
証明書要求のプロセッサ: DNS 名は利用できないのでサブジェクト代替名に追加できませ
ん。 0x8009480f (-2146875377)
ポリシー モジュールによって拒否されました


2、証明書設定情報を保存する.infファイルを作成する。
参照情報はこちら Creating a RequestPolicy.inf file
[NewRequest]
Subject="cn=test.contoso.local"
Exportable=TRUE
KeyLength=4096
KeySpec=1
KeyUsage=0xf0
MachineKeySet=TRUE
[RequestAttributes]
CertificateTemplate=wss
[Extensions]
2.5.29.17="{text}"
_continue_ = "dns=test.contoso.com&"
_continue_ = "dns=www.contoso.com"
※注意
サブジェクトの別名の設定について、
Vista、7、Windows Server 2008、2008 R2の場合は、上記のように[Extensions]にサブジェクトの別名を指定します。
XP、Windows Server 2003、2003 R2の場合は、以下のように[RequestAttributes]に記述します。
[RequestAttributes]
SAN="dns=test.consoto.com&dns=www.contoso.com"

3、.infファイルから.reqファイルを生成する
certreq.exe -new -f .\cert.inf .\cert.req
image

4、.reqファイルをCAに送信し、証明書を生成する
certreq.exe -submit -q -f –config  <CA Name>  <req file>  <cer file>
image

発行された証明書は以下の様なかんじです。
image

certreq.exeを使って自動化できるので、かなり手間を省けると思います。

2013年7月29日月曜日

PsExecでローカルコンピューター上のプログラムをリモートコンピューターにコピーして実行する

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


PsExecに-cオブションがあります。

これを使って、ローカルコンピューターにあるプログラムをリモートコンピューターにコピーして実行することができます。

普通実行するプログラムがリモートサーバー上においてあります。

例えば、

リモートコンピューター c:\tmp\mkdir.bat
ローカルコンピューター c:\temp\PsExec.exe
c:\temp\call.bat

PsExecコマンドをcall.batバッチに書きます。

rem プログラムがリモートコンピューターにある場合
c:\temp\psexec.exe \\10.10.3.60 -u contoso\administrator -p P@ssw0rd  c:\tmp\mkdir.bat

pause

image

call.batを実行すると、リモートコンピューターでc:\temp\testフォルダが作成されます。
image

 

-cオプションを使う場合、プログラムをローカルコンピューターに置きます。

リモートコンピューター なし
ローカルコンピューター c:\temp\PsExec.exe
c:\temp\call.bat
c:\temp\mkdir.bat

rem プログラムがローカルコンピューターにある場合
c:\temp\psexec.exe \\10.10.3.60 -u contoso\administrator -p P@ssw0rd -c c:\temp\mkdir.bat

pause

image

image

PsExecでリモートコンピューターで実行するプログラムの優先度を設定する

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


PsExecは、リモートコンピューター(サーバー、システム)でプログラムを実行できる強力なツールです。

詳細はこちらをご参照ください。

PsExec

PsExecでリモートコンピューター上のリモート実行対応のプログラムを実行出来ます。バッチ、Powershell、それから普通の.exe、ほとんど対応できます。

ただし、時にはリモートプログラムの実行が反応が遅かったり、途中で応答なし実行に失敗したりすることがあります。リモートコンピューターですぐにはプログラムを実行してくれないようです。

こういう時に、プログラムの実行優先度をHighなどに設定することで、解消できる可能性があります。

PsExecで設定できるプログラムの実行優先度は5つあります。

-low 優先度が低い
-belownormal 普通より低い
-belownormal 普通より高い
-high 優先度が高い
-realtime リアルタイムで優先度が適用される

例:優先度を高くしてリモートでプログラムを実行するコマンドは以下です。

c:\temp\psexec.exe \\server –u <user>  –p <password> –high <program>

c:\temp\psexec.exe \\10.10.3.60 -u contoso\administrator -high -p P@ssw0rd  c:\temp\hostname.bat

2013年7月11日木曜日

証明書の最長有効期間について

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


今日は証明書の最長有効期間についての話をしたいと思います。

certreq.exe –New –f c:\temp\win7.inf c:\temp\win7.req
※win7.infの中身を省略する
※certreqで証明書要求作成、発行について、こちらをご参照ください

certreq.exe –Submit  -q  -f  -config  ca01.test.local\test-ca01-ca   c:\temp\win7.req c:\temp\win7.cer

上記の証明書発行コマンド(Certreq.exe –submit…)をCAサーバー上で実行する時に、以下のようなメッセージが出る場合があります。

テンプレート有効期間が CA が許可する証明書の最長有効期間よりも長いため、証明書の有効期間は <テンプレート名> 証明書テンプレートが指定するよりも短くなります。CA 証明書を更新するか、テンプレートの有効期間を短くするか、レジストリ有効期間を長くしてください

メッセージ自体はエラーではありません。証明書が問題なく生成できます。ただし、作成できた証明書(win7.cer)の有効期限が証明書テンプレートで設定した有効期限と異なります。例えば、テンプレートで10年の有効期間を設定したのに、実際に作成できた証明書の有効期間が2年とか、5年未満になっていることがあります。

原因としては、証明書の有効期間が以下の3つ値と関連しているからです。

1、CAサーバー上のレジストリに設定された期間(既定2年)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA Name>\ValidityPeriod
値:Years

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA Name>\ValidityPeriodUnits
値:2

2、CAサーバーの有効期間

3、証明書テンプレートで設定された有効期間

1が2より、2が3より、優先順位が高いです。

 

例えば、
・2013年1月1日でルートCAサーバーを立てた。「このCAから生成された証明書の有効期間を選択」で5年に設定した。
image

・テンプレート作成で10年に設定した。

この場合、1~3の値は以下となります。
1、レジストリの有効期間が既定で2年
2、CAサーバーの有効期間は5年。(2013/01/01 ~ 2018/01/01)
3、テンプレートでの有効期間は10年。

●2013/06/01の時点でCertreqコマンドで証明書を生成した時に、1の制限が効くので、証明書の有効期間は2年(2013/06/01 ~ 2015/06/01)になる。

●1レジストリの値を10年に設定した場合、2の制限が適用される。有効期間は5年未満(2013/06/01 ~ 2018/01/01)になる。

●2CAの有効期間を15年に構成した場合(CAの有効期間:2013/01/01 ~ 2028/01/01)、3の制限が適用されるので、有効期間は10年(2013/06/01 ~ 2023/06/01)になる。

 

1のレジストリの有効期間の確認と設定はcertutilコマンドでもできます。

※確認
certutil –getreg ca\ValidityPeriod
certutil –getreg ca\ValidityPeriodUnits

※設定
certutil –setreg ca\ValidityPeriodUnits 10

※CertSvcサービスを再起動する

 

参考情報

How to Create Certificates with a Longer Validity Period

2013年7月10日水曜日

net useで共有フォルダをドライブにマッピングした場合、「管理者として実行」でCMDを起動するとドライブが認識されない

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


net useを使って共有フォルダをローカルのドライブにマッピングします。普通にCMDを起動すると、ドライブを普通に利用できますが、「管理者として実行」で起動した場合は、”指定されたドライブが見つかりません”というメッセージが表示されます。

image

 

以下のシナリオを考えてみます。

・Xドライブに、管理者権限に昇格し実行する必要があるVBScript(Test.vbs)がある

・Test.vbsを呼び出すバッチ(callVBS.bat)がある

image

Test.vbsの内容は以下です。

' 管理者権限に昇格 
' WScript.Arguemnts.Count = 0:GUI 1:CUI 
do while WScript.Arguments.Count = 0 and WScript.Version >= 5.7 
 
  ' Check WScript5.7~ and Vista~ 
  Set wmi = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2") 
  Set os = wmi.ExecQuery("SELECT *FROM Win32_OperatingSystem") 
  For Each value in os 
    if left(value.Version, 3) < 6.0 then exit do  'Exit if not vista 
  Next 
  
  ' Run this script as admin. 
  Set sha = CreateObject("Shell.Application") 
  sha.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas" 
  
  WScript.Quit 
loop 
 
' todo: 
Set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.RegWrite "HKLM\SOFTWARE\Test\Value", "Test", "REG_SZ" 

 

バッチを実行すると、UACのポップアップ画面が表示されて、「はい」を選択したら、”スクリプト ファイル <Script name>が見つかりません。”という旨のエラーが出ます。

image

 

なぜかわからないですが、どうやら、マッピングしたドライブに直接実行することができなくて、VBScriptをローカルにコピーして実行する必要があります。

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”を再起動する。

2012年9月28日金曜日

fsutil とEnter-PSSession

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


 

fsutilコマンドは一定のサイズのファイルを作成するためのコマンドです。構文は以下のような感じです。

>fsutil file createnew FileName Size

例:fsutil file createnew test.txt 1024

サイズが1024Bytesでファイル名がtest.txtというファイルを作成する

 

Enter-PSSessionはPowershellでリモート処理が行えるようにする時に使われるコマンドです。

ローカルマシンのPowershellからリモートマシンに接続するには、

Enter-PSSession <接続先コンピューター名>

という構文でコマンドを実行すればいいです。

もし接続できない場合は、

・ネットワーク的に繋がっていない

・リモート処理の構成がされていない(Enable-PSRemoting)

可能性があるので、確認が必要。

2012年6月27日水曜日

Office 2010評価版を延長する方法

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


通常Office2010評価版の使用期間は60日間になっているので、それ以降は使えなくなります。もうちょっと使ってみたいなぁと思う方もいらっしゃらると思いますので、こちらで評価期間を延長する方法を簡単にご紹介します。

 

Office 2010 Trail Extenderをダウンロード

インストールしたら、Rearmを実行すれば良い。

 

※注意

・この機能は実際は企業ユーザーのために作られたのですが、公式で備わっている機能ですので違法なことではありません。安心して使用して下さい。

・Rearmを五回まで繰り返し使えます。(毎回実行する時に、連続でクリックしないでください。)

・180日まで延長できます。

Windows 8 新機能徹底検証 (インプレスムック)

新品価格
¥1,890から
(2012/12/20 20:57時点)

2012年3月5日月曜日

Windows PE 2.0のブータブルUSBメモリを作成する - @IT

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



Windows PE 2.0のブータブルUSBメモリを作成する - @IT:

'via Blog this'

2011年12月6日火曜日

Windows 7 にMediaWikiをインストールしてみた

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


前提条件

Apache

php5

MySQL インストール済み。

 

Apacheの設定ファイルhttpd.confに下記の内容を追加する。

<Directory "C:/WebDevelop/Apache2.2/htdocs/wiki">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

</Directory>

 

ブラウザでhttp://localhost/wiki/mw-config/index.php を開いて、インストールプロセスに入る

 

wiki1

 

wiki2

 

wiki3

 

wiki4

 

wiki5

 

wiki6

 

wiki7

 

wiki8

 

wiki9

 

インストールが終わったら、ブラウザでwikiホームページを開く

image