2010年12月30日木曜日

知音食堂 服务态度感慨

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


我一直在想,为什么日本料理店跟中国料理店的服务态度就是给人感觉不一样呢?
有的时候态度真的决定一切,也许料理不是很好吃,但是环境跟服务态度会给味道增添菜色。
也许许多料理吃起来味道都一样,但是服务的态度,跟环境,也许会让顾客流连忘返。
今天我一直在想,如果4月末的那天,我跟小猪一起约在“知音食堂”而不是"乐乐屋"那我们还会走到今天吗?
中国有句古话,近墨者黑,以我现在非常人一样的思想,会不会觉的,小猪本人的人品跟那料理店的食堂一样呢.哈哈
来日本2年多了,虽然一直很讨厌日本人,但是日本人的礼仪真的让我万抚摸从。当然也有很无理的日本人,
不过我不会一棒子打死一堆,有好日本人的,就像八代阿姨,从认识那天开始,我们几个留学生就一直受她的照顾,帮我找工作,送东西给我们,让我们参加留学生交流会,从来就没有嫌弃过我们,在这里我要声明,不是在替日本人说好话,我本人还是很讨厌日本人的,但是中国人有句话,受人恩惠千年不忘,只要我能活到一千岁,我就不会忘哈哈。
话回风转,回到主题,日本马上就要过年了,小猪会社也放假了,我忍痛割爱,请了一天的假跟小猪一起去逛街,买了2件保暖衣服,一件外套(中国制)我实在是怕冷,本来想回国买,可是实在是冷的受不了,不能总是丝罗罗明天再垒窝,我会冻死的哈哈。中午我们吃了吉野家,2个人吃了780,晚上小猪说我们去外面吃吧,回家懒的做,我们就决定去池袋的“知音食堂吃,虽然来日本2年多了,但是还是吃不习惯日本的料理,对中国料理还是情有独钟,说实话以前来过一次,那时候是夏天,吃的是爆炒活鱼,吃的那可是汗流浃背啊,我一直在想为什么没用空调呢,说实话来日本第一次吃饭吃的这么痛苦,不过那时候感觉没有今天这么难受,也许我那时候的眼里只有你,我的小猪哈哈。今天我们又去,同样的气氛,同样的服务员,同样的客座,同样的厨师吧,我们点了梅菜扣肉和糖醋排骨。等了半天没见人招待,小猪招了下手,服务员才姗姗过来,拿来菜单,水也不上就走了,我们以为会上水,结果等了半天也没见他们问我们点什么菜也没上杯水,真是的,我说小猪,去叫2杯水来,叫了下服务员过了1分钟才过来,小猪说给我们上2杯水,结果那服务员给了我们2杯酒,无语了。我说咿呀,我们要的是热水,另一个服务员慢慢悠悠的去换了2杯茶过来,我看了下杯子,不是白开水,是茶,我对小猪说,这绝对要钱的,小猪说不会吧。我说真的,你看着吧,哈哈,结果真的。2杯水要了400。HOHO真黑
这还是小事,我们点的2个菜一个是980,另一个还是980.第一个糖醋排骨刚刚上,我就皱着眉头,不是很有食欲的盘子,大概就那么数的清的几块满甜的排骨,我吃了下,真的有点不想吃,不过算了,希望抱在第2个,梅菜扣肉上,这个时候白饭也上了,小小的碗,还不够我塞牙缝,150一碗,我无语了,5分钟后,梅菜扣肉上了,这我菜更无语了,那所谓的梅菜扣肉,就是酸菜上面盖几片肉片,盘子还是很让人没用食欲的那中,比我奶奶家的盘子还一般。算了,也许吃起来还好吃呢,我就想,人不可貌相,菜不可物色、我鼓起勇气吃了一口,哇哈哈,真咸啊,这菜,这肉,无语,我彻底无语了,糖醋排骨不美观太甜又少,梅菜扣肉没菜色又咸又油,哎呀,算了,吃吧,这2盘菜加饭跟水,合起来可是2880日元啊,人民币可也200多元啊。我就慢慢吃,实在是吃不下了,饭分点给小猪,今天逛街可把他累坏了,看这他可怜又可爱的样子,真心疼,吃饭还不能让吃个好的。无语无语,我发誓以后再去那里吃,我就是猪。哎呀,到现在我想起来那菜那饭,那服务,那空间,我还感觉恶心,无语。
明天就是2010年的最后一天了,明天还要上班,晚上调整心态好好睡觉。毕竟那饭店不是唯一不可原谅的,加油。新的一年,新的生活,新的目标,新的我,加油加油,跟小猪一起加油,OYE哈哈

2010年12月25日土曜日

SharePoint 2007/2010 Upgrading from standard edition to enterprise edition ERROR

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


ERR Exception: Microsoft.SharePoint.Administration.SPUpdatedConcurrencyException: 更新の競合が発生したため、この操作を再度実行してくださ い。オブジェクト DiagnosticsService Parent=SPFarm Name=SharePoint_Config は、contoso\test に よってマシン WFE1 のプロセス PSCONFIG で 更新処理中です。競合の詳細については、トレース ログを参照してください。

解决方法
1. SQL Server を再起動します。
2. サーバーの全体管理サイトより Office Server 機能のアップグレード ジョブの削除を行います。
3. ファーム内のすべてのサーバーにおいて、タイマ ジョブのキャッシュを削除を行います。

以下に手順をご案内いたしますが、詳細につきましてはサポー ト技術情報をご確認ください。
タイトル: Error message when you try to modify or to delete an alternate access mapping in Windows SharePoint Services 3.0: "An update conflict has ccurred, and you must re-try this action"
URL: http://support.microsoft.com/kb/939308/en-us
URL: http://support.microsoft.com/kb/939308/ja (機械翻訳)

--- 手順の概要 ---
1. Windows SharePoint Services Timer サービスを停止します。
2. GUID フォルダにアクセスします。
C:\Documents and Settings\All Users\Application Data\Microsoft\SharePoint\Config\GUID (Windows 2003)
C:\ProgramData\Microsoft\SharePoint\Config\GUID (Windows 2008)
3. Cache.ini のバックアップを取得します。
4. GUID フォルダ内の XML ファイルをすべて削除します。
5. Cache.ini の開き、値を 1 に書き換えます。
6. Windows SharePoint Services Timer サービスを開始します。
7. GUID フォルダ内に XML ファイルが作成されていることを確認します。
8. Cache.ini の開き、値を 1 でないことを確認します。

4. 再度アップグレードを実施します。

Windows 7 カスタムWindows PEイメージ作成 - WinPE3.0版

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


※あらかじめ作業用PCにWindows AIKをインストールしておくこと

1. Windows PE Tools起動
* [スタート]→[すべてのプログラム]→[Microsoft Windows AIK]→[Windows PE Tools コマンド プロンプト]を起動する

UACが有効になっているVistaでは「管理者として実行」すること
※以下の作業はWindows PE Toolsコマンドプロンプト上で実施する

2. カスタムWinPE作業フォルダの作成

copype.cmdを使用し、カスタムWinPE作成用の作業フォルダを作成する
copype.cmd [プラットフォーム("x86"or"amd64")] コピー先フォルダ
例:x86版WinPEファイルをC:\winpe_x86にコピーする

* >copype.cmd x86 C:\winpe_x86

※通常はx86版を使用する

3. 基本WinPEイメージのマウント

※WinPE2.0と同様に基本WinPEイメージ(winpe.wim)をベースに作成するが、操作コマンドの変更に伴い手順も若干変わっている

1. WinPE基本イメージ"Winpe.wim"を"Boot.wim"に名前を変えてコピーする

>copy Winpe.wim Boot.wim

2. コピーしたBoot.wimをDISM.exeを使いmountフォルダにマウントする

>DISM.exe /mount-wim /wimfile:C:\winpe_x86\boot.wim /index:1 /mountdir: C:\winpe_x86\mount
※ちなみにImageXでも同様の操作は可能
>imagex /mountrw C:\winpe_x86\boot.wim 1 C:\winpe_x86\mount
上記コマンドで、C:\winpe_x86\mount以下に基本WinPEのイメージがマウントされる。ここにWinPEイメージに追加したいバッチファイルやツールをコピーする。

4. 必要なツールなどのコピー
1. ImageX
1. ImageX.exeのコピー

ImageXは基本WinPEイメージに含まれていないのでWindows AIKのインストールフォルダからコピーする
>copy "C:\Program Files\Windows AIK\Tools\x86\imagex.exe" "C:\winpe_x86\mount\Windows\System32"
※mountフォルダ以下ならどこでもいいが、system32だとWinPE上でパスが通っているので楽

2. wimscript.iniの編集

Wimscript.iniは、Imagexでイメージを取得する際の例外ファイルや圧縮の対象外ファイルを指定するファイルで、 ImageX.exeと同じフォルダに置くことで自動的に適用される。
以下、Wimscript.iniのサンプル
[ExclusionList]
ntfs.log
hiberfil.sys
pagefile.sys
"System Volume Information"
RECYCLER
Windows\CSC
[CompressionExclusionList]
* .mp3
* .zip
* .cab
* .lzh
\WINDOWS\inf\*.pnf

2. その他、必要なバッチファイルやツールがあればコピーする
5. WinPEイメージへのドライバ追加

WinPEが認識できないNICやストレージアダプタがある場合、以下のコマンドでドライバを追加する
>DISM.exe /image=:[基本WinPEイメージマウント先] /add-driver /driver:[ドライバーのInfファイルがあるフォルダ]
※C:\winpe_x86\mountにマウントしている場合の例
ドライバーはC:\Driverに展開していると仮定
>DISM.exe /image:c:\winpe_x86\mount /add-driver /driver:C:\Driver\xxx_driver.inf

6. イメージの作成準備

boot.wimのマウントを解除する
>DISM.exe /unmount-wim /mountdir:c:\winpe_x86\mount /commit
/commitで変更を保存する。変更を破棄する場合は/discardと指定する。

7. ブータブルCDの作成
1. カスタマイズしたboot.wimをISO\sourcesフォルダにコピーする

>copy C:\winpe_x86\boot.wim C:\winpe_x86\ISO\sources

2. カスタムしたboot.wimを含むWinPE実行環境を以下のコマンドでISOイメージファイルにする

>oscdimg -n -bC:\winpe_x86\etfsboot.com C:\winpe_x86\ISO C:\winpe_x86\ImageFile.iso

3. 作成されたISOイメージファイル"ImageFile.iso"をCDライティングソフトでCD-Rなどに書き込む。

※ISOイメージをCDに書き込む方法はライティングソフトのマニュアルを参照

Powershell Start-Transcript

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


Powershell  Start-Transcript

Start-Transcript コマンドレットは、Windows PowerShell セッションの全体または一部を記録したテキスト ファイルを作成します。このトランスクリプトには、ユーザーが入力するすべてのコマンド、およびコンソールに表示されるすべての出力が含まれます。

使い方

Powershellコマンドプロンプトを起動
>Start-Transcript d:\temp\st.txt
このコマンドを実行すると、トランスクリプトが開始します。これから、プロンプトで入力したpowershellコマンドや、コマンド実行の出力などがファイルに書き込まれます。

例:すべてのプロセスを取得
>Get-Process

最後にトランスクリプトを終了する
>Stop-Transcript

生成されたファイルの中身は、以下のような感じになります。

2010年12月23日木曜日

Linux ホスト名の変更

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


コマンドでLinuxのHostnameを変更する方法を紹介します。

一時的にホスト名を変更する(この場合は、ホスト名を変更しても、システムを再起動したら、元のホスト名に戻ってしまう、つまり今の変更は無効になります)。

①コマンドラインTerminalを起動(ubuntu:Terminal; openSUSE:GNOME Terminal)
②#sudo hostname [hostname]を実行する
③ホスト名が変更されたかどうかをチェック、#hostnameを実行
④/etc/hostsファイルを編集。元のホスト名を新ホスト名に変更

そして、永久に変更する場合は
/etc/hostname(openSUSEの場合、/etc/HOSTNAME)ファイルの中身を変更する必要があります。
ファイルには一行あるので、それを変更したいホスト名に書き換えて保存します。これで再起動しても、ホスト名の変更は有効になります。


2010年12月19日日曜日

Linux NTP Configuration

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


Linux上でNTPの構成と言うのは、基本的に/etc/ntp.confファイルを編集することです。
既定でNTPのパッケージが入ってないので、NTPサーバーをインストールすることが必要です。(root)
#apt-get install ntp

インストールしたら、/etc/init.d/ntp,/etc/ntp.confファイルが作成されたことが確認できます。

ntp.confファイルの中身です。

# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift

# Enable this if you want statistics to be logged.
#statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# You do need to talk to an NTP server or two (or three).
server ntp.ubuntu.com
server ntp.nict.jp

# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details. The web page
# might also be helpful.
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated.
#restrict 192.168.123.0 mask 255.255.255.0 notrust

# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
#broadcast 192.168.123.255

# If you want to listen to time broadcasts on your local subnet, de-comment the
# next lines. Please do this only if you trust everybody on the network!
#disable auth
#broadcastclient

ntpサービスを起動、停止、再起動するには、下記コマンドを実行すればいい。
$sudo service ntp start/stop/restart
あるいは
#/etc/init.d/ntp restart



2010年12月18日土曜日

Tera TermでWindowsからLinuxに接続

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


自己勉強のため、VMware Playerを使ってubuntu(最も人気なLinux Distributionとも言われる)を仮想マシンとしてインストールしてみました。
WindowsからLinuxに接続し、コマンドで操作したりするケースが結構多いので、ここでTera Termを紹介したいと思います。

①Tera Termのダウンロードとインストール
②ubuntuにssh serverが入っているかをチェック

cye@cye-ubuntu:~$ dpkg -l | grep ssh
ii openssh-client 1:5.5p1-4ubuntu4 secure shell (SSH) client, for secure access to remote machines

※ubuntu server 10.10で既定ではssh clientが入っている状態です。

③ssh serverがインストールされていない場合は、ssh serverをインストールする。opensshはsshのフリーバージョンなので、opensshを使います。下記のコマンドを実行します。

cye@cye-ubuntu:~$ sudo apt-get install openssh-server

④ssh serverのインストールが成功かを確認

cye@cye-ubuntu:~$ ssh localhost
The authenticity of host 'localhost (::1)' can't be established. RSA key fingerprint is d3:23:d4:31:46:4d:04:5c:73:3e:92:62:18:7a:cc:24. Are you sure you want to continue connecting (yes/no)? ^

⑤ssh serverのインストールが成功したので、最後にWindows側のTeraTermを起動し、IPアドレスを入力します。次にユーザー名とパスワードを入力し、ubuntuに接続できるようになります。


ちなみに、ssh localhostコマンドを実行すると、下記のエラーが表示された場合は

ssh: connect to host localhost port 22: Connection refused

考えられる原因としては、以下のいくつかあります。
①ssh serverがインストールされていない
②sshd daemonが起動していない
cye@cye-ubuntu:~$ ps aux | grep sshd
③ファイアフォールがssh接続用のポートをブロックしている。
cye@cye-ubuntu:~$ sudo iptables -L
④ssh serverがポート22番をリッスンしていない。
cye@cye-ubuntu:~$ sudo netstat -nap | grep :22


2010年12月7日火曜日

Linux File System

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


The following directories, or symbolic links to directories, are required in /.

DirectoryDescription
binEssential command binaries
bootStatic files of the boot loader
devDevice files
etcHost-specific system configuration
libEssential shared libraries and kernel modules
mediaMount point for removeable media
mntMount point for mounting a filesystem temporarily
optAdd-on application software packages
sbinEssential system binaries
srvData for services provided by this system
tmpTemporary files
usrSecondary hierarchy
varVariable data

Filesystem Hierarchy Standard

2010年12月1日水曜日

C# Powershellスクリプトを実行

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


Exchangeコマンドを含むPowershellスクリプトを実行するコードです。
 System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
//ComSpecのパスを取得する
psi.FileName = System.Environment.GetEnvironmentVariable("ComSpec");
//出力を読み取れるようにする
psi.RedirectStandardInput = false;
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;
//ウィンドウを表示しないようにする
psi.CreateNoWindow = true;
//コマンドラインを指定("/c"は実行後閉じるために必要)
psi.Arguments = @" /c powershell.exe -PSConsoleFile ""C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1"" -command "".'" + psFile + @"'"" 2> """ + logFile + "\"";
//起動
System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);
p.WaitForExit()
p.Close();

あるいは

System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = System.Environment.GetEnvironmentVariable("ComSpec");
process.StartInfo.RedirectStandardInput = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.Arguments = @" /c powershell.exe -PSConsoleFile ""C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1"" -command "".'" + psFile + @"'"" 2> """ + logFile + "\"";
process.Start();
process.BeginOutputReadLine();
process.WaitForExit();


Windows PowerShellクックブック

新品価格
¥4,200から
(2012/12/20 21:06時点)

2010年11月26日金曜日

Hyper-V仮想NICを削除する方法(その2)

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


久しぶりの投稿です。
結構前にHyper-V仮想NICを削除する方法を紹介しました。下記のリンクです。


今回もっと簡単なやり方が発見しました。以下のステップになります。

①「コンピューター管理」→「デバイスマネージャー」→「ネットワークアダプター」に辿りづく。
②削除したい仮想NICを右クリックし、「プロパティ」を選択する。
③「プロパティ」画面の「詳細」タブを選択する。画面上の「プロパティ」のところで、ドロップダウンして、「ドライバーキー」を選択したら、下の「値」で{4d36e972-e325-11ce-bfc1-08002be10318}\0012
のような文字列が表示される。これがまさに仮想NIC対応のレジストリキーです。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}のサブキー0012中のCharacteristicsの値を0に変更する。
⑤デバイスマネージャーから削除。



Windows Server 2012 Hyper-V Cookbook

新品価格
¥4,330から
(2012/12/20 20:55時点)

2010年11月11日木曜日

VBScriptのRun、Exec関数

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


VBScriptでコマンドを実行するRun、Exec関数
Set objWshShell = Wscript.CreateObject("WScript.Shell")
objWshShell.Run "ipconfig /all", 0, true

ipconfig /all    実行するコマンド
0 ウィンドウを表示しない
true コマンド実行終了を待つ

Exec関数を使って、コマンドの出力(output)文字列を取得することが可能。
Set objWshShell = Wscript.CreateObject("WScript.Shell")
command = "ipconfig /all"
Set objExec = objWshShell.Exec(command)
Do Until objExec.StdOut.AtEndOfStream
result = result & objExec.StdOut.ReadLine
Loop

StdOut 標準出力

取得した文字列がresult変数に保存される



2010年8月19日木曜日

Visual Studio 2005で作成されたプロジェクトをVisual Studio 2008で開けない

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


VS2005で作成したC#プロジェクトをVS2008で開こうとすると、下記のようなエラーが出てしまいました。

"[プロジェクトの保存パス][プロジェクト名].csprojを開けません。このバージョンのVisual Studioではサポートされないプロジェクトの種類(.csproj)です。
この種類のプロジェクトをサポートするバージョンを使用してください。"

調べてみたところ、下記URLに紹介してくれた方法で解決することが出来ました。

Visual Studio 2008で.csprojを開けない

一言言えば、一度devenv.exe /ResetSkipPkgsをコマンドプロンプトで実行することです。
devenv.exeはインストールフォルダMicrosoft Visual Studio 9.0\Common7\IDEの下にあります。

2010年8月6日金曜日

Windows 7 Cボリュームを縮小し、新たなボリュームを作成

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


  新しく購入したPCの場合、既定ではCボリュームしかない状態がほとんどです。Cボリュームだけだと、なんか気持ち悪いですね。しかもCボリュームにデータがどんどんたまっていくうちに、システムのパフォーマンスにも影響を与えてしまう。どうしてもこのような状況を発生させたくないというのが本音です。じゃどうすればいいのでしょうか。

  普通に考えればOSを再インストールすればいいですね、D、Eボリュームなどがインストール前に作れるからです。ただし、ここが問題です。OSを再インストールするのに、手間がかかるし、PC出荷時の状態を事前にバックアップしないと出荷時の状態に戻すのは難しい。これは誰でもやりたくないことだと思います。で、一体どうしたらいいのでしょう。

  実はWindows vista,7,server 2008, server 2008 R2ではボリュームの圧縮機能が提供されています。この機能を使って、ボリュームを縮小し、空領域をD,Eボリュームに割り当てることが出来ます。
以下の図はWindows 7上での操作のイメージです。

「スタート」→「コンピューター」を右クリック→「管理」→「記憶域」→「デスクの管理」の順でクリック。Cボリュームを右クリックし、ボリュームの縮小を選択。

縮小する領域のサイズは 今29780MBになっています。「縮小」ボタンをクリックすると、未割り当て領域が作成されます。

未割り当て領域で、通常のように、新しいシンプルボリュームを作成することが出来ます、ボリュームのサイズも指定できます。
以下の図にEボリュームを作成しました。サイズは10000MBです。(CD-ROMがDドライブになっているので、新規ボリュームにE文字を割り当ている。あらかじめCD-ROMのドライブ文字をGなどに変更しておいて、ボリューム新規時に、D,Eなどの文字が選択できる。変更方法:図中の「CD-ROM 0」を右クリック、「ドライブ文字とパスの変更」を選択)

ちなみに、ディスクに未割り当て領域がある限り、Cボリュームを拡張することも出来ます。

Windows 7上級マニュアル [ 橋本和則 ]

価格:2,709円
(2012/12/20 21:14時点)
感想(39件)

2010年8月5日木曜日

iPhone向けアプリ「Firefox Home」 ダウンロード開始

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


Firefox のブックマークや履歴を参照できる iPhone アプリ「Firefox Home」、日本の App Store からダウンロード開始!

From Firefoxブログ

Windows 7 Language Pack download

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


The following URL is downloading for Windows 7.
Please have a look!

Windows 7 Language Pack Download MultiLanguages

Windows 7上級マニュアル [ 橋本和則 ]

価格:2,709円
(2012/12/20 21:14時点)
感想(39件)

2010年7月30日金曜日

PowerShell 指定期間内のイベントログを表示、エクスポート

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


PowerShellを使って、指定した期間内のログを取得する。

例:七月分のWindows PowerShellに関するイベントログを表示

PS U:\> $beginDate = Get-Date -Date "2010/07/01 00:00:00"
PS U:\> $beginDate

2010年7月1日 0:00:00

PS U:\> $endDate = Get-Date -Date "2010/08/01"
PS U:\> $endDate

2010年8月1日 0:00:00

PS U:\> Get-EventLog -LogName "Windows PowerShell" -After $beginDate -Before $endDate

七月分のWindows PowerShellイベントログをCSVファイルに出力する

PS U:\> Get-EventLog -LogName "Windows PowerShell" -After $beginDate -Before $endDate | Export-Csv c:\temp\ps.csv

Windows PowerShellクックブック

新品価格
¥4,200から
(2012/12/20 21:06時点)

VBscriptで レジストリキーを操作

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


今レジストリキーを操作するVBscriptを書いているので、忘れないうちに、メモをしておきたい思います。

VBでレジストリを操作するためのWSH(Windows Scripting Host)のオブジェクトWscript.Shellを使用すると、レジストリキーを管理することが出来ます。

'Wscript.Shellオブジェクトの定義
Dim objWsh
Set objWsh = CreateObject("Wscript.Shell")

Wscript.Shellにはいくつかメソッドがあるので、気軽にレジストリキー、値の作成、変更および削除などの操作が出来ます。
RegWrite
RegRead
RegDelete など

Wscript.Shellオブジェクト詳細

'1つキーと二つ値を作成
'値名は(既定)、値は1
objWsh.RegWrite "HKCU\Software\Test\", 1, "REG_DWORD"
'値名は"testValueName"、値は"testValue"
objWsh.RegWrite "HKCU\Software\Test\testValueName", "testValue", "REG_SZ"

'キー名または値名の値を取得
'(既定)の値
Wscript.Echo objWsh.RegRead("HKCU\Software\Test\")
'testValueNameの値
Wscript.Echo objWsh.RegRead("HKCU\Software\Test\testValueName")

'testValueNameの値をtestValueChangedに変更
objWsh.RegWrite "HKCU\Software\Test\testValueName", "testValueChanged"

'testValueNameを削除
objWsh.RegDelete("HKCU\Software\Test\testValueName")
'キーTestを削除
objWsh.RegDelete("HKCU\Software\Test\")

※注意:RegWriteに複数引数を渡す場合は、括弧をつける必要はない

Wscript.Shellは便利ですが、機能としては十分ではありません。たとえば、サブキーの列挙やREG_MULTI_SZ型の値の変更などは出来ない。じゃ、どうしましょう。これからWMIを使う方法をご紹介いたします。

'サブキーの列挙
'キーHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSetのサブキー一覧を取得

const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set StdOut = WScript.StdOut
'WMI サービスに接続し、さらに StdRegProv クラスに接続しています
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet"
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
'すべてのサブキーを出力する
For Each subkey In arrSubKeys
StdOut.WriteLine subkey
Next

コマンドラインモードで実行すれば、サブキー名が表示される
   cscript.exe [script Name]

'キーまたは値の存在確認、取得、変更
'strValueはnullの場合に、キーまたは値は存在しない。取得した値をstrValue変数に保存
oReg.GetMultiStringValue HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Test", "testValueName", strValue
if IsNull(strValue) Then
  Wscript.echo "not exist"
else
  Wscript.echo "exist"
end if

'変更。testValueNameが存在しない時に、新規作成する
oReg.SetMultiStringValue HKEY_LOCAL_MACHINE,"SYSTEM\CurrentControlSet\Test","testValueName", Array("a","b")
変更するには、管理者モードで実行する必要があります。

2010年7月29日木曜日

电车里的日志

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


现在是日本时间19:20,正在回家的路上。坐在电车里,看着iPhone。突然想写点东西,所以就打开iPhone Blogger程序,写第一个中文日志。
最近工作不曾么忙,回家也和平常一样挺准时。已经形成习惯了,18:45左右开始离开公司,所以现在再电车里。至今我都还没明白日本人为什么天天工作到很完,就感觉他们有时很磨蹭,效率不高,中途还不停地出去吸个烟,喝个饮料什么的,真是幽闲!
我就早点回家,回家吃饭,最近女朋友为我做,真好吃!!!昨天做个红烧肉,呵呵,说是红烧肉其实是不辣椒炒肉。因为女朋友从没做过,哈哈,不过超级好吃!!!
吃完饭,大概就是看看新闻,电视,想接触尽可能多的信息来扩充自己知识面。因为总觉得现在的积累很重要,趁着还挺闲的时候。时间的可贵已深有感触。
11点后就准备睡觉了。充足的睡眠是工作效率的保证,更是健康的保证。所以一直尽量把握睡眠时间。
之后就睡着了,并伴随着似好似坏的梦。好了,要下车了,到此结束!

2010年7月28日水曜日

Open DNS Server

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


ネットで公開されている無料DNSサーバー

①OpenDNS

優先DNSサーバー:208.67.222.222

代替DNSサーバー:208.67.220.220


②Google

優先DNSサーバー:8.8.8.8

代替DNSサーバー:8.8.4.4

手元のDNSサーバーがうまく動作しない、プロキシーサーバーが壊れているというような場合は、一時的に公開DNSサーバーを使えば助けになるかもしれない。

VBscriptについてのメモ

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


最近よくVBscriptを使って、システム管理用のスクリプトを書いています。ここにメモをしておきます。

①文字列、ログをファイルに出力。
    Set objFso = CreateObject("Scripting.FileSystemObject")
  '読み取り専用でファイルを開く
    Set objFile = objFso.OpenTextFile("c:\test.txt",1)
  '上書きモードで開く
    Set objFile = objFso.OpenTextFile("c:\test.txt",2)
  '追加モードで開く(ファイルが存在しない場合は、新規作成[true])
    Set obfFile = objFso.OpenTextFile("c:\test.txt",8,true)

  ※ログを残すときに、追加モードが一番使われる。

②LDAPを使って、ADオブジェクトや属性を操作
  'ユーザーオブジェクトの属性を取得する
    Set objUser = CreateObject("LDAP://CN=testuser,OU=testOU,DC=test,DC=local")
    objUser.Get([AttributeName])
    Wscript.Echo objUser.distinguishName
    Wscript.Echo objUser.displayname
    ......

  'アカウントの作成
    Set objOU = CreateObject("LDAP://OU=testOU,DC=test,DC=local")
    Set objUser = objOU.Create("User","CN=testUser")
    objUser.Put "sAMAccountName", "yechangyao"
    objUser.SetInfo

  '属性の設定、変更
    Set objUser = CreateObject("LDAP://CN=testuser,OU=testOU,DC=test,DC=local")
    objUser.Put "displayName", "ye changyao"
    objUser.Put "mail","cye@test.co.jp"
    objUser.Put "userPrincipalName", "cye@test.local"
    objUser.SetInfo

  'ユーザーパスワードの設定
    objUser.SetPassword "Password!"

  'ユーザーアカウントの無効化
    objUser.AccountDisabled = TRUE

  '"DC=test,DC=local"のような文字列を取得
    Set objRootDSE = GetObject("LDAP://RootDSE")
    Wscript.Echo objRootDSE.get("defaultNamingContext")

VBscript リファレンス MSDN

ADSI LDAP Provider MSDN
    
  

2010年7月21日水曜日

VMware Host Agentサービスを起動できない

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


今日はopenSUSEを操作してみたいと思います。しかし、VMware Web Accessで仮想マシンに接続しようとするときに、以下のエラーが出てきました。
サービスの状態をチェックしたところ、VMware Host Agentサービスが開始されたいないことが確認でした。これが原因でVMサーバーにアクセスすることはできませんでした。開始しようと思って、またイベントエラー出ました。イベントID 7000

    VMware Host Agent サービスを、次のエラーが原因で開始できませんでした:
    そのサービスは指定時間内に開始要求または制御要求に応答しませんでした。

イベントID 7000を調べてみたら、Detailsが見つかりました。
   To display the WIN32_EXIT_CODE error that SCM encountered when trying to start the program, at the command prompt.
   type sc query service name
   The information displayed can help you troubleshoot possible causes for the error.
   If the WIN32_EXIT_CODE is zero, then SCM did not attempt to start the service because the error was detected first.

   sc query VMwareHostd を実行したところ、Win32_Exit_codeの値は0でした。

同じ現象にあった方も結構いるんです。しかも、解決方法もそれぞれでした。

IPv6を無効にしていないことが原因であるケースもありました


私の場合は、自分でインストールしたファイアウォール(COMODO)がD:\Program Files (x86)\VMware\VMware Server\vmware-hostd.exeをブロックしたことが原因でした。vmware-hostd.exeを信頼アプリリストに追加して、正常にサービスを起動することができました。

ようやく解決できました。本当によかったです。

2010年7月20日火曜日

openSUSE11.3をインストールしてみた

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


2010年7月15日、openSUSE 11.3がリリースされました。早速自宅PCで仮想マシンとしてインストールして、触ってみたいと思います。Linuxの初心者なので、いろいろわからない点があるが、少しずつ勉強していこうと思っています。そして、ここにインストール時のスクリーンショットを貼っておきます。

以下のURLから、openSUSE 11.3のisoファイルを入手する。

openSUSE 11.3 ダウンロード

VMware仮想マシンを作ってから、isoファイルをマウントする。ブート画面が表示される。インストールと言語設定、TimeZoneの指定、それが終わったら、以下の図の示したパーティションの作成のステップに入る。
推奨されたままでいいし、自分で設定しても当然問題ないです。個人の好みによって、設定すればいいでしょう。ユーザーの作成
全般インストール設定のチェック
インストール開始、予想以上時間がかかりました。一時間以上でした。
再起動したら、自動構成が始まる
自動構成が完了したら、ログオン画面でパスワードを入力し、ログオンする
ここまで、インストールが終了。
これから、試してみたいと思います。

2010年7月17日土曜日

無料ソフトWebサイトを紹介

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


今日は、いくつかの無料ソフトWebサイトをご紹介したいと思います。普段無料ソフトを使っている方も多いでしょう。無料ソフトはある程度機能が制限されている場合が多いと思いますが、普通のユーザーさんにとって、機能的には十分だと考えております。

これからご紹介するサイトには、ブラウザー、マルウェア対策から、写真と画像の処理、ドライバまで、幅広く無償ソフトが揃っています。人気ソフトランキングも表示されるので、選ぶ際に参考になると思います。ぜひご覧になって見てください。

FileHippo.com

k本的に無料ソフト フリーソフト

2010年7月15日木曜日

Windows Error をスキャン

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


コンピュータの動作が遅くなったり、クラッシュの回数も増えたりしていませんか、こうした現象は多くの場合は、時間がたつにつれレジストリの肥大化と関連しています。

Microsoftが提供するレジストリエラースキャンツールRegistryBoosterがあります。気軽にレジストリエラーを検出し、修復することができます。定期的にスキャンにより、レジストリのクリーンな状態を保ちます。ぜひ使ってみてください。

RegistryBoosterをダウンロード(CNET)


残念ながら、無料ツールではない。無料で使用できるなら、いいなぁ!

Hyper-V仮想NICが削除できなくなった場合

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


Hyper-V仮想ネットワークがちゃんと構成されていない などの原因で、作成された仮想NICが削除できなくなる場合があります。このような現象が起こったら、【ネットワーク接続】で仮想NICのアイコンがずっと消えないまま表示されます。なんか気持ち悪い、どうしても削除したいと思われる方もいるでしょう。

ここで削除方法をご紹介いたします。レジストリを編集する必要があるので、十分注意して作業を実施していただきたいと思います。事前にレジストリをバックアップするのが最善でしょう。

①【ネットワーク接続】の画面で、削除したい仮想NICのデバイス名を確認する。
  表示モードを「詳細」にして、探しやすくなると思います。


②レジストリエディタ(regedit.exe)を起動する。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\VMSMP\NicListの中のキー(651E1842-B451-42CB-A2FE-EBA933D3FB22のような文字列)から、FriendlyNameの値が①で確認したデバイス名である項目を探します。同じキーの中に、DeviceGuidの値を確認して、記録します(\Device\{F66840F8-9807-4B1F-B4CA-A119794C33A7}のような文字列)。


③HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}の中のキー(0000のような文字列)から、NetCfgInstancesIDの値がDeviceGuidの値の{}の部分と同じである項目を探します。探したら、同じキーの中に、Characteristicsの値を0に変更します。


④デバイスマネージャーから、アンインストール(削除)が出来るようになります。

2010年7月14日水曜日

Hyper-V ネットワーク

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


Hyper-Vには以下三種類のネットワークが提供されています。

1:外部ネットワーク → ゲストの間、ゲストとホストの間、ゲストと外部端末の間でお互いに接続できる
2:内部ネットワーク → ゲストの間、ゲストとホストの間でお互いに接続できる
3:プライベートネットワーク → ゲストの間でお互いに接続できる

Hyper-Vネットワーク未構成時
  物理NICが通常のように使われる


Hyper-Vプライベートネットワーク構成時
  プライベートネットワークを構成したら、目に見えない仮想スイッチが作成される。物理NICは外との通信に使用される。ゲストたちは仮想NICを使って、お互いに通信する。



Hyper-V内部ネットワーク構成時
  内部ネットワーク構成後、ホスト側で仮想NICが作成される。
  物理NICは外と接続している。
  仮想NICはゲストと通信するのに使われる。
  物理NIC、仮想NIC、両方ともIPアドレスの設定が可能。



Hyper-V外部ネットワーク構成時
  外部ネットワークが構成されたら、物理NICは仮想スイッチの役割を担うことになったので、IPアドレスの割り当てはできません。その代わりに、もう一個仮想NICが作成され、こちらでIPアドレスの設定作業を行います。仮想NICはゲストとホスト、ホストと外の通信に使用されることになりました。責任が重いですね。



注意
  物理NICの個数と構成できる外部ネットワークの個数は一対一の関係。

ARP, GETMAC, MSG コマンド

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


ARPテーブルとは、Ethernetの通信に必要なIPアドレスとMACアドレスの対応情報のことです。。これらの情報は通常OSが管理しているので、ユーザーが内容を変更する必要はありません。

ヘルプを表示
  arp -?

GETMACコマンドは、名前のとおり、コンピュータのMACアドレスやトランスポート名を表示するコマンドです。

MSGは、ユーザー名あるいはセッション名やセッションIDを指定して、相手にメッセージを送信するためのコマンドです。

Diigo

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



Posted from Diigo. The rest of my favorite links are here.

Exchange Server データベースとデータベース可用性グループを削除

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


GUIでメールボックスデータベースを削除しようとする時に、エラー画面がよく出てきます。エラーが出るのがすごく嫌いです。PowerShell コマンドで実施したほうがいいと思います。しかもこれもMSの推奨のやり方です。

1:メールボックスデータベースを削除するには、事前にデータベース中のメールボックスを無効、別のデータベースに移動、または削除する必要があります。

まずは、データベース内のメールボックスを削除する
  Get-Mailbox -Database [database name] | Foreach{ Remove-Mailbox -Identity $_ }

次に、データベース自体を削除する
  Remove-MailboxDatabase -Identity [database name]


2:DAGを削除するには、先にDAGに参加しているメンバーサーバーを削除する必要があります。
  
メンバーサーバーを一つずつ削除する
  Remove-DatabaseAvailabilityGroupServer -Identity [DAG name] -MailboxServer [mailbox server name]

DAGを削除
  Remove-DatabaseAvailabilityGroup -Identity [DAG name]

2010年7月13日火曜日

SQL Server 2005 フェールオーバークラスタリング

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


SQL Server 2005の高可用性を実現してみよう。下記のリンクは構築手順になります。

1:Sql Server2005のクラスタリングで実現する高可用性

2:Vistual Serverでクラスタリング環境を構築

3:仮想的なクラスタリングの実現

4:SQL Server 2005をクラスタ化する











FireFox 4 ベータ版が公開された

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


私は最近FireFoxの大ファンになりました。FireFoxの安全性や、低メモリ消費量、豊富なPlug-in、綺麗なデザインなどが非常に気に入ってます。これからも使い続けていこうと思います。

さてFireFox 4 Beta 英語版が既に登場しました。早速PCにインストールしました。
使ってみて、一番印象に残っているのは、デザインがもっと簡潔になったということ。なかなかいい感じがします

FireFox 4 Beta ダウンロード

2010年7月12日月曜日

Net Shareコマンドでフォルダを共有する

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


C:\Windows\system32>net share ?
このコマンドの構文は次のとおりです:

NET SHARE
共有名
共有名=ドライブ:パス [/GRANT:ユーザー,[READ | CHANGE | FULL]]
[/USERS:ユーザー数 | /UNLIMITED]
[/REMARK:"テキスト"]
[/CACHE:Manual | Documents| Programs | BranchCach
e | None ]
共有名 [/USERS:ユーザー数 | /UNLIMITED]
[/REMARK:"テキスト"]
[/CACHE:Manual | Documents | Programs | BranchCache | None ]
{共有名 | デバイス名 | ドライブ:パス} /DELETE
共有名 \\コンピューター名 /DELETE


例:c:\temp フォルダを共有し、everyoneにフル権限を与える

    net share shareFolderName=c:\temp /grant:everyone,full

例:フォルダ共有の削除

    net share shareFolderName /delete

USBメモリから、Windows7をインストール

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


DVD-ROMドライブを搭載しないノートPCにWindows7をインストールしたい時に、ドライブがない、外付けドアライブを買わなければならないと悩んでいる方もいると思います。実はWindows Vista以降のOSを安価なUSBメモリからでも、インストールできるようになりました。これを実現するには、Diskpartコマンドを使用して、ブート可能なインストールUSBメモリを作成する必要があります。

1:前提条件
①Windows vista以降のOS
②インストールDVD
③USBメモリ(容量はOSイメージファイルのサイズより大きい、4GBでOK)

2:操作方法
①「管理者として実行」でcmdを起動する
②diskpartを入力し、実行
③ディスク一覧を表示
  DISKPART> list disk
④USBメモリを選択
  DISKPART> select disk
⑤ディスクをクリーンな状態にする
  DISKPART> clean
⑥USBメモリにパーティションを作成
  DISKPART> create partition primary
⑦作成したパーティションを選択
  DISKPART> select partition <パーティション番号>
⑧パーティションをアクティブとしてマークする
  DISKPART> active
⑨パーティションをNTFS形式でフォーマット
  DISKPART> format fs=ntfs
⑩ドライブ文字またはマウントポイントを割り当てる
  DISKPART> assign
⑪diskpartを終了
  DISKPART> exit

その後、(Vista,7,Server 2008)インストールDVDの内容をUSBメモリにコピー
ここでは、USBメモリがDドライブ、インストールDVDがEドライブに割り当てられている例を示す。

⑫DVD内容をコピー、(Eから)
C:\> xcopy e:\*.* /s/e/f D:\
⑬USBメモリからブート可能にするには、インストールDVDのbootフォルダにあるbootsectコマンドを実行し、マスターブートコードを更新することが必要です。
C:\> cd /e e:\boot
E:\boot> bootsect /nt60 D:

※bootsect /help    コマンドヘルプが表示される

2010年7月11日日曜日

ROUTE コマンド

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


ROUTEコマンドは、ルーティングテーブルの表示や、ルートの追加、削除、変更を行うためのコマンドである。

ROUTEコマンドのオプション一覧

/?            ヘルプを表示
-f             ルートテーブルにあるゲートウェイのエントリをすべてクリアする
-p            [add]コマンドと併用された場合、システムの再起動後もルートは維持される
-4            IPv4の使用を強制
-6            IPv6の使用を強制

ROUTEコマンドのサブコマンド一覧

print          ルートを表示
add           ルートを追加
delete          ルートを削除
change         ルートを変更

①現在のルーティングテーブルを確認する
    route print

②ルートを追加、削除、変更する
    route add <宛先IPアドレス> mask <サブネットマスク> <ゲートウェイ> metric <メトリック> if <インタフェース>
    route delete <宛先IPアドレス>
    route change <宛先IPアドレス> mask <サブネットマスク> <ゲートウェイ> metric <メトリック> if <インタフェース>

※Metric: メトリック値(少ないほど優先度が高くなる)

2010年7月10日土曜日

NSLOOKUP コマンド

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


NSLOOKUPは、DNSサーバーに問い合わせを行うためのコマンドである。DNS(Domain Name System)サーバーの動作や設定内容を確認することができます。

NSLOOKUPコマンドのオプション一覧
-all            現在の設定オプションを表示した後、対話モードに入る
-debug          デバックモードに入る
-nodebug        デバックモードを解除する
-d2            詳細なデバックモードに入る
-nod2           詳細なデバックモードを解除する
-defname        指定したホスト名にデフォルトドメイン名を付加して検索
-nodefname       defnameオプションの動作を解除する
-recurse         再起検索を指定する
-norecurse        反復検索を指定する
-search          ドメインサーチリストを付加して検索する
-nosearch       searchオプションの動作を解除する
-vc            TCP接続による検索を行う
-novc           UDP接続による検索を行う
-domain=<ドメイン名>       ディフォルトドメイン名を指定する
-srchlist=<ドメイン名>        ドメインサーチリストを指定する
-root=       ルートDNSサーバーを指定する
-retry=<試行回数>      検索失敗時の試行回数を指定する
-timeout=<タイムアウト秒>  DNSサーバに対するタイムアウト時間を秒数で指定する
-querytype=<検索レコード>    名前解決の対象とするレコードを指定する
-query=<検索レコード>    querytypeと同じ
-type=<検索レコード>     querytypeと同じ
-port=<ポート番号>      DNSサーバーへ接続する際のポート番号を指定する、既定53
-class=<クラス名>      検索するレコードクラスを指定する
-msxfr            高速ゾーン転送モード(many-answers)を指定する
-nomsxfr           msxfrオプションの動作を解除する
-ixfrver=<シリアル番号>   IXFR(Incremental Zone Transfers)差分ゾーン転送モードの使用と、DNSゾーンのシリアル番号を指定する
<ホスト名>/IP/<ドメイン名>  名前解決の対象を指定する

ホスト名からIPアドレスを検索する(正引き)
  nslookup <ホスト名>

IPアドレスからホスト名を検索する(逆引き)
  nslookup

DNSサーバーから特定のレコード情報を取得する
  nslookup -type=<レコード> <ホスト名>
  nslookup -type=<レコード>
  例:nslookup -type=MX hostname.com

  レコードには、主に次のようなものがある。
    ◎A:  ホスト名に対応するIPアドレスを定義
    ◎PTR: IPアドレスに対応するホスト名を定義
    ◎NS:  ネームサーバの定義
    ◎SOA: ドメインの情報を定義
    ◎MX:  メールサーバの定義
    ◎SRV: ネットワークのサービスを定義
    ◎CNAME: ホスト名のエイリアス(別名)の定義

2010年7月9日金曜日

NETSTATコマンド

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


今日は、NETSTATコマンドの使い方を書いてみようと思います。
ネットワーク関連のトラブルシューティングにはまだ欠かすことができないツールと言えるでしょう。

Netstatは、ホストの各ポートの使用状況、EthernetおよびIP/TCP/UDP/ICMPの各プロトコルの統計情報の表示、およびルーティングテーブルなどを表示するためのコマンドである。

使い方
    NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval]

利用可能なオプションは下記のとおりです。
「オプション一覧」
/?            ヘルプを表示
-a            すべての接続とリッスンポートを表示 [all]
-b            接続中のポートや待機中のポートの作成に使われた実行可能ファイルを表示
-e            Ethernetの統計情報を表示
-n            アドレスとポート番号を数値形式で表示
-o            プロセスIDも表示
-p             指定したプロトコルの接続を表示、TCP,TCPv6,UDPまたはUDPv6を指定する
-r            ルーティングテーブルの内容を表示
-s            プロトコル(IP/ICMP/TCP/UDP)の統計情報を表示
-f            外部アドレスの完全修飾ドメイン名 (FQDN) を表示  
-t            現在の接続のオフロードの状態を表示       

①実行可能なファイルを表示する
netstat -b

アクティブな接続
プロトコル ローカル アドレス 外部アドレス 状態
TCP 125.0.10.178:50078 download:http CLOSE_WAIT
[cmdagent.exe]
TCP 125.0.10.178:50227 tz-in-f191:http TIME_WAIT
TCP 127.0.0.1:49216 cye-PC:49217 ESTABLISHED
[firefox.exe]

②各プロトコルの統計情報を表示する
netstat -s

IPv4 統計

受信したパケット = 1733016
受信したヘッダー エラー = 0
受信したアドレス エラー = 0
転送されたデータグラム = 0
受信した不明プロトコル = 0
受信後に破棄されたパケット = 364
受信後に配信されたパケット = 1748442
出力要求 = 1762634
ルーティング破棄 = 0
破棄された送信パケット = 4
ルートのない送信パケット = 523
再構築が必要 = 0
再構築 = 0
再構築エラー = 0
正常に断片化されたデータグラム = 0
断片化できなかったデータグラム = 0
作成された断片 = 0
......

-eオプションも併用すると、Ethernetに関する統計情報も表示される
netstat -se

③ポートの利用状況を確認する
netstat -an
-anオプションをつけて実行すると、TCPとUDPプロトコルに関して、各接続のローカルアドレス(IP:Port)と外部アドレス(IP:Port)、さらにTCP接続では状態が表示される。

TCPの接続の状態には、5種類がある。
・LISTENING:    待ち受け状態
・SIN_SENT:     サーバに対して通信開始の要求を送信したが、まだ応答を受け取っていないか、相手が無応答の状態
・ESTABLISHED:  TCPコネクションが確立して通信が行われている状態
・CLOSE_WAIT:   相手からFINを受け取った状態
・TIME_WAIT:   コネクションの終了待ち状態

PowerShell Read-Hostコマンド

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


PowerShellコマンドプロンプトから入力を一行読み取るためのコマンド。これを使って、ユーザーに入力を求めることができます。

$age = read-host "Please enter your age:"

説明:
このコマンドは、"Please enter your age:" という文字列をプロンプトとして表示します。値が入力されて Enter キーが押されると、その値は $age 変数に保存されます。

PowerShellでWindows Formを作成

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




C#で使えるもの(ライブラリ、クラス)をPowerShellでも使用できます。 PowerShellでWindows Formを作ってみました。以下のように一個の関数にまとめました。


function CreateInputBox($formText, $buttonText, $labeltext){
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

$objForm = New-Object System.Windows.Forms.Form
$objForm.Text = $formText
$objForm.Size = New-Object System.Drawing.Size(300,200)
$objForm.StartPosition = "CenterScreen"
$objForm.ForeColor = "blue"
$objForm.MaximizeBox = $false
$objForm.MinimizeBox = $false

$objForm.KeyPreview = $True
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Enter")
{$x=$objTextBox.Text;$objForm.Close()}})
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape")
{$objForm.Close()}})

$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(75,120)
$OKButton.Size = New-Object System.Drawing.Size(125,25)
$OKButton.Text = $buttonText
$OKButton.Add_Click({$x=$objTextBox.Text;$objForm.Close()})
$objForm.Controls.Add($OKButton)

$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Size(150,120)
$CancelButton.Size = New-Object System.Drawing.Size(75,23)
$CancelButton.Text = "Cancel"
$CancelButton.Add_Click({$objForm.Close()})
$objForm.Controls.Add($CancelButton)

$objLabel = New-Object System.Windows.Forms.Label
$objLabel.Location = New-Object System.Drawing.Size(10,20)
$objLabel.Size = New-Object System.Drawing.Size(280,20)
$objLabel.Text = $labeltext
$objForm.Controls.Add($objLabel)

$objTextBox = New-Object System.Windows.Forms.TextBox
$objTextBox.Location = New-Object System.Drawing.Size(10,40)
$objTextBox.Size = New-Object System.Drawing.Size(260,20)
$objForm.Controls.Add($objTextBox)

$objForm.Topmost = $True

$objForm.Add_Shown({$objForm.Activate()})
[void] $objForm.ShowDialog()

return $x
}

CreateInputBox "form" "button" "label"

実行すると、絵のようなFormが生成されます。TextBoxに入力された文字列を$x変数に保存し、関数の戻り値としてリターンされる。



$objForm,$OKButtonに対して、属性の設定もできます。