2013年5月31日金曜日

DELL Dimension 4600C に Windows8 をインストールできるのか?

今まで、DELL Dimension 4600C のファンを交換し、メモリを増設し、SATAハードディスクを接続し、Windows7 をインストールしました。さてWindows7にしたのは、Windows8 にはできないものとあきらめていたからです。ところが、もしかすると Windows8 にもアップグレードできるかもしれないというような情報に接しました。

以下のフォーラムの一番下にひょっとしたらというような情報があったのです。

http://en.community.dell.com/support-forums/software-os/f/3524/t/19452189.aspx



その部分を抜粋すると以下のようになります。Dimension 4600 を持っている人が、Dimension4700CのBIOSにアップグレードすることによって、Windows8をインストールできるようになったというようにも読み取れるのです。でも私のつたない英語力では、はっきりとは言えません。それに4600に4700CのBIOSを入れるなんてことは非常に危険で大それたことだと思います。試してみるにはちょっとリスクが大きすぎると思いました。試してガッテンというわけにはいかないと思います。


I have a Dell Dimension  4600 and tried 3 times before to install Windows 8 Pro 64bit.  It always gave me the error for the execute bit not being set.  So after much research,  I went to Dell's Support site for the Dimension 4700C, and downloaded it BIOS update:
Now, I know what you are thinking.  I been in the business of computer repair since 1987 and I have NEVER cross flashed a BIOS with another version because it would be most likely that it would not work, or it would brick the motherboard.  
Well, I did it and then in the Security setting of the BIOS, sure enough, there was a place to set the execute bit.  I did that and have installed WIndows 8 32 bit and 64 bit and Windows 7 all on it without any issues.   Triple boot now......easy.......
MY DELL DIMENSION 4600 LIVES..........although now when it boots, it tells me it is a 4700C........what are the chances?





CPUが、NXという機能をサポートしているかどうか、またBIOSでNXが有効になっているかどうかが鍵のようです。もしCPUがサポートしていなければBIOSがどうこういう問題ではありません。その後、調べていて以下のようなサイトに行き当たりました。

http://temple-knights.com/pc/pentium4.html


少なくとも私の持っているDELL Dimension 4600C は、Pentium4 2.4GHz なので、NXはサポートしていないということがわかりました。BIOSの問題ではありません。やはりWindows8はあきらめなくてはなりません。Windows7がインストールできるのがせいいっぱいです。




 



2013年5月30日木曜日

IDE ケーブルに SATAのHDDを接続


2TBのSATAのハードディスクを持っているのですが、パソコン側についているのは、IDEのケーブルです。このため変換アダプタを使用して接続しています。ただしDELL Dimension 4600C のパソコンでこれを使うと箱の中で電源部分と干渉してしまうためふたを閉めることができなくなってしまいます。



VBScript で sleep

VBScript で一定時間、待機させたいときには、以下の例のように Wscript.sleep を使用します。単位は1000分の一秒なので以下の例では60秒間の待機となります。

Wscript.sleep 60000





DELL Dimension 4600C で PC2700のメモリを使用

DELL Dimension 4600CでFSBが800MHzのものでは、PC3200のメモリを使用しなくてはいけないという情報がありました。でも PC2700のメモリを使用しても起動できるのではないかというのが私の推測でした。

実際にやってみると、始めはボードからピーピーと警告音がして起動しませんでした。やっぱり駄目なのかといったんはあきらめました。

ただし、もしかするとメモリの差し込み方が甘くて、しっかり奥まで刺さっていなかったからかもしれないと気を取り直してもう一度やってみることにしました。メモリをしっかりと奥まで差し込んだことを確認してからスイッチを入れました。するとなんと、今度は警告音がなくて、無事に起動したのです。


普通はPC2700のPCに対して、PC3200のメモリを使用することは可能でも、PC3200のPCに対して、PC2700のメモリを使用することは問題ありとされます。しかしながら私の使っているDELL Dimension 4600C では、PC2700のメモリを使用することが可能だったのです。



2013年5月28日火曜日

UBCD でPCに搭載されているメモリのタイプを調べる

UBCDはUltimateBootCDの略です。

UBCDに含まれている機能で、メモリのタイプを調べるのに使っているDIMM_IDについてメモしておきます。使い方は以下のとおりです。

1.UBCDの初期メニューで Memory を選択します。
2.次に表示されるメニューでDIMM_IDを選択します。
3.画面が流れるのでそのままにしておきます。
4.コマンドプロンプトが表示されるので DIMM_ID とキー入力します。
5.その時点で搭載されているメモリの情報が表示されます。







UltimateBootCD(UBCD)には、非常にたくさんの機能がつまっているらしいのですが、私自身はそのほとんどを使用できていません。使い方が英語で書いてあるのでなんだか敷居が高いです。


UBCDのサイト
http://www.ultimatebootcd.com/



搭載しているメモリの情報を知りたいのであれば、CPU-Zというソフトウエアを使うという方法もあります。
http://chaos-fractal.blogspot.jp/2013/05/cpu-z.html

DELL Dimension 4600C で SATA のHDDを使用

2TB(2テラバイト)のSATAのハードディスクを持っていたのですが、DELL Dimension 4600C のハードディスクはIDEなので、使用できないと思っていました。ところがインターネットで調べてみると、このDELL Dimension 4600C のボードには、SATAのコネクタがひとつ、ついていることがわかりました。非常にわかりにくい位置にありました。


以下のマニュアルの61ページにマザーボードの配置図があり右上のほうにSATAコネクタがあるのがわかります。
ftp://ftp.dell.com/Manuals/all-products/esuprt_desktop/esuprt_dimension_desktops/dimension-4600c_owner%27s%20manual_en-us.pdf




早速ケーブルを購入して、SATAのHDDを接続して使用できるかどうかを試してみることにしました。
購入したのは、SATAのケーブルと、電源変換用ケーブルの合わせて2本です。





まずは、IDEのハードディスクをはずしました。
SATAのケーブルを使ってマザーボードのコネクタとSATAのハードディスクの7ピンのコネクタを接続しました。またIDEのハードディスクに刺さっていた電源ケーブルを、今回購入した電源変換ケーブルの4ピン側に接続してもう一方の15ピン側を、SATAのハードディスクの15ピンのコネクタに接続しました。
BIOSの設定でSATAがOFFになっていたのでAUTOに変更しました。再起動したところBIOSで、2000GBと表示され、確かに2TBとして認識されているのが確認できました。

もしかすると、BIOSのアップデートが必要かもしれないと思っていたのですが、必要ありませんでした。 


VBScript で値を返す

VBScriptで作成したプログラムを、バッチプログラムの中から呼び出して、VBScriptの終了時に値を返して貰い、その値をerrorlevel で判断したいということがあると思います。そのような場合には、VBScriptで値を返す処理が必要です。その場合には以下のような記述をします。



(例)1という値を返す場合

Wscript.quit 1

2013年5月27日月曜日

DELL Dimension 4600C のメモリ

DELL Dimension 4600C のメモリ増設について(PC3200かPC2700)

http://www.crucial.com/upgrade/Dell-memory/Dimension+%2F+Dimension+XPS/Dimension+4600C-upgrades.html

Although the memory can be installed one module at a time, the best performance comes from using matched pairs of modules.If your model uses the Pentium 4 with a 800MHz Front Side Bus (FSB) you must use the PC3200 parts. If your system has the Pentium 4 with the 533MHz Front Side Bus (FSB) you can use either the PC2700 or PC3200 parts.


上記の記事によれば CPUのFSBが566MHzの場合にはPC3200とPC2700のメモリのどちらかが使用可能だが、800MHzの場合には、PC3200にしないといけないとのことです。CPU-Zで調べてみると800MHzに近いので、私の4600Cの場合にはやはりPC3200のメモリを使わないといけないということになりそうです。ところが、手元にあった、PC2100のメモリを挿入してみたところ、なんと普通に起動しました。またPC2700のメモリを挿入しても普通に起動しました。結局のところ、PC3200にしないと持っている性能が十分に出せないということであって、PC2700でもPC2100でも使用できない訳ではないということではないだろうかと思っています。ただし長く使ってみた訳ではないので、PC2700やPC2100の場合には、不安定になるということかもしれません。



2013年5月26日日曜日

DELL Dimension 4600C に Windows7 をインストール

DELL Dimension 4600C にメモリを増設して、英語版Windows7をインストールしました。インストールの直後は、画面の解像度が足りずに、大きすぎてブラウザ全体が表示できない状態でしたが、ドライバをダウンロードしてインストールしたところ、正常な表示にすることができました。なお Windows Aero には対応していないようです。



以下を参考にさせていただきました。

http://ameblo.jp/manbo-san/entry-10599300806.html


以下のサイトから、ドライバをダウンロードさせて頂きました。(インテル® グラフィックス・メディア・アクセラレーター・ドライバー (ZIP 圧縮形式))
https://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=9506&lang=jpn


ダウンロードしたファイル: win2k_xp1417.zip

インストールの方法は予め上記のZipを適当なフォルダに解凍しておき ControlPanel > Appearance and Personalization > Adjust screen resolution   のところで Advanced settings > Adapter > Properties > Driver > Update Driver から行いました。
























































インターネット上で調べてみると、DELL Dimension 4600C に Windows7 をインストールしようとしている人は少なからずいるようです。以下のサイトからパソコンがWindows7へのアップグレードに
対応しているかどうかを調べるためのソフトウエアをダウンロードすることができます。このプログラムによれば Windows Aero サポートには対応していないようです。またIntel(R)82865G Graphics Controller が互換性がありませんと表示されます。

http://www.microsoft.com/ja-jp/download/details.aspx?id=20





なお、ドライバーをインストールしたせいかどうかわかりませんが、Windows7の起動時にメッセージがでるようになってしまいました。(igfxtray.exe hkcmd.exe igfxpers.exe)以下のサイトで記述しております。

http://chaos-fractal.blogspot.jp/2014/06/windows7-igfxtrayexe-hkcmdexe.html

CPU-Z をインストール

パソコンのメモリがデュアルチャネルになっているかどうかを調べるためにCPU-Zというソフトウエアをインストールしました。以下は CPU-Zを起動してメモリのタブを選択しているところです。この例では、デュアルチャネルではなくシングルチャネルになっています。またDRAM Frequency のところで何メガヘルツで動作しているかがわかります。




























CPU-Zはシステムの各種情報を表示させることができます。以下のサイトからダウンロードできます。現時点(平成25年5月26日)では、1.64が最新のバージョンです。Zip圧縮されたファイルを解凍するとそのまま実行ファイルとなっており、インストールする必要がありません。

http://www.cpuid.com/softwares/cpu-z.html










2013年5月24日金曜日

UBCD でウイルス検出

UBCD(UltimateBootCD)のCDを作成して、それをCDドライブに入れて起動することにより、いろんな機能が使用できるようになっています。はじめに出てくるメニューでSYSTEMを選び、次に選択する場所でNSSIを選択すると、メモリにウイルスがいるという意味のアラートが表示されてしまいました。ウイルスチェックをかけても検出されません。このメッセージは本当なのでしょうか?


NSSI(Navratil Software System Information)を起動すると表示されるメッセージ

Warning

An active virus has been probably detected
in memory! You should run some good
antivirus program and check your system!




2013年5月23日木曜日

DELL Dimension 4600C メモリの増設の悩み

DELL Dimension 4600C というPCをまだ現役で使用しています。このPCでメモリの増設をしようと思い調べたところ DDR400 PC3200 というタイプのメモリを用意すればよいことがわかりました。現在は512MBのメモリを積んでいるのですが、1Gまたは2Gにするつもりです。できれば、2Gにしたいと思っています。

ところが悩んでいます。DELL Dimension 4600C が2Gのメモリをシステムとしてサポートしているかどうかがはっきりしないのです。 以下のサイトを見ると、最大メモリが1Gと書いてあるものと2Gと書いてあるものがあってどっちが本当なのだろうと思ってしまいます。

http://www.iodata.jp/pio/memory/me1_dell_d.htm


もし仮に1G が最大だとすると、同じ仕様の512Mのメモリをふたつのスロットに挿さなければならないのか、それとも、1Gメモリを1枚だけ挿してよいのかという悩みもあります。1Gメモリを1枚用意して試してみればよいような気もしますが、仕様に合っていない場合にもしかするとメモリが壊れてしまうのではないかと心配しています。

-------------------------------------
(後日談)
他のPCに刺さっていた1Gメモリを2枚、このDELL Dimension 4600C に挿してみたところ2Gとして認識しました。この時BIOSの画面でDUALと表示されました。また1Gを一枚だけ挿してみたところ無事に起動して、BIOSの画面でSINGLEと表示されました。また、もともと刺さっていた256Mのメモリと1Gメモリを一枚づつ挿してみたところ、やはり無事に起動して、BIOSではSINGLEで1280MBとして認識されていることがわかりました。メモリがデュアルチャネルで動作しているかどうかは、CPU-Zというソフトでも確認できます。
------------------------------------




このDimension4600C は現在は、WindowsXP SP3が入っているのですがメモリの増設をして将来は、Windows7をインストールしたいと思っています。来年(2014年)の4月には、WindowsXPのサポートが終了してしまうからです。メモリが1G以上あれば、Windows7が動作するのではないかと聞いています。(なお、インターネットで調べたところメモリが512MでもWindows7が動作するようなことも書いてあります。)このPCのCPUは、Pentium4 ですがこのCPUはWindows8に上げることはできないと分かっているのでこのPCを長持ちさせるためには、Windows7にアップするしかないと思っています。WindowsVista にするという手もありますが、Vistaは動作が遅くてOSとしては失敗作だと聞いています。

なお、以下のサイトでは、同じくDELL Dimension4600CにWindows7をインストールした記事が載っており参考にさせていただいたのですが、グラフィックカードの問題もあるようです。

http://toida.net/php/blog/1261560730.html


(後日談)
結局Dimension4600Cでは次のPC3200(DDR400)メモリを使用することにしました。



次のメモリでも動作しました。





DELL のPCでCPUクーラー(ファン)を交換した。

持っているDELLのPCで、起動時に以下のようなメッセージが表示されるようになりました。なお、ファンの回る音がしなくなりました。

Alert! previous fan failure
Strike the F1 key to continue, F2 to run the setup utility

ここでF1 キーを押すと起動するのですが、しばらくすると、電源が落ちてしまいます。ファンが壊れているのだと思い、後ろから扇風機の風を送るようにすると落ちるまでの時間が長くなります。
DELLのサポートに連絡したところ、やはりファンの異常により、内部に熱がたまり それを検知して電源が落ちているのだそうです。修理が必要ですが、2~3万円かかり、現在は4万円で新品が買えるので、新品を買ったほうがよいですと言われました。

----------------------------------------

その後、半年ぐらいは、ほおっておきましたが、気を取り直して、PCの箱を開けてみました。電源を入れても、CPUクーラーのファンが回っていないことがわかりました。ヤフオクを調べたところ、CPUクーラー(ファン)が中古で500円で売りに出されていることがわかり、早速、落札して、取り寄せました。CPUクーラーのファンの部品を届いた部品と交換したところ、電源を入れるとファンが回りました。例の Alert! previous fan failure という起動時のメッセージは表示されなくなりました。




2013年5月21日火曜日

Excel2003 と Excel2007 のコマンド対応表

Excel2007 になってから、リボンインターフェースに変わってしまい、Excel2003 までのコマンドに慣れていた人は、新しいコマンドのありかがわからなくて困っている場合もあると思われます。以下のサイトから、Excel のリボンの対応表をダウンロードすることができます。この対応表はExcelファイルとなっており、Excel2003 と Excel2007 のコマンドの対応を調べることができます。なお、Excel2010は、Excel2007と似ているそうです。


http://office.microsoft.com/ja-jp/excel-help/HA010086048.aspx#BM3





2013年5月17日金曜日

Android パスワード付Zip圧縮ができるArchiDroidをインストール

Android でパスワード付Zip圧縮と解凍ができるアプリということで、ArchiDroidをインストールしました。SkyDrive やDropboxのように、オンラインストレージにファイルを保存する際に暗号化を行う目的です。


https://play.google.com/store/apps/details?id=org.ais.archidroid&hl=ja





また、以下はパスワード付Zipの圧縮・解凍ができるファイラーの紹介です。

http://ytroid.seesaa.net/article/183768664.html

パスワード付Zip圧縮のためにLhaplus をインストールした

パスワード付Zip圧縮のためにLhaplus をWindows8にインストールしました。SkyDriveやDropboxなどのクラウド(オンラインストレージ)にファイルを保存しておく時に、セキュリティのためにパスワード付きでZip圧縮しておきたい時があるためです。


http://www.vector.co.jp/soft/cmt/win95/util/se169348.html





なおWindows8の32bit版だと問題なく動作するのですが、Windows8の64bit版の場合には右クリックメニューが出ないなどの問題があるようです。

http://w8.vector.jp/detail.php?s_no=169348


Windows8で問題なく動作すると思っていたのですが、余計な気持ちを起こしてデスクトップ上のアイコンを右クリックして「互換性のトラブルシューティング」を実行したところ、右クリックのメニューの「圧縮」「解凍」が実行できなくなりました。デスクトップ上のアイコンには「盾」のマークがつきました。


2013年5月16日木曜日

VBA で日付を表示

VBA で日付を表示するサンプルです。2013-05-16(木)のような形式で表示します。VBScriptでは動作しませんでした。




Sub hiduke()

  Dim hiduke

  hiduke = Now()

  MsgBox hiduke

  strKyou = Format(hiduke, "yyyy-mm-dd(aaa)")

  MsgBox strKyou

End Sub





VBScript で unicode のテキストファイルを書き込む

以下のサンプルでは、テキストファイルをUnicodeで書き込んでいます。CreateTextFile の二つ目の引数をTrueにするかどうかで上書きするかどうかを示します。三つめの引数をTrueにするかどうかで、Unicodeで書き込むかどうかを指定しています。





 Dim fso, MyFile
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set MyFile = fso.CreateTextFile("testfile.txt", True, True)
   MyFile.WriteLine("これはテストです。")
   MyFile.Close





参考にさせて頂いたサイト
http://msdn.microsoft.com/ja-jp/library/cc428022.aspx

2013年5月14日火曜日

VBScript でAccessデータベースのスキーマを取得する

VBScript でAccessデータベースのスキーマを取得するサンプルです。データベースに存在するテーブル名やテーブル内のフィールド名を取得します。





Dim oConn
Dim oRS

 Set oConn = CreateObject("ADODB.Connection")

 
 oConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\mdb\diary.mdb"

 Set oRS = oConn.OpenSchema(4)

 while not oRS.EOF
str_message=str_message & oRS("Table_Name")
str_message=str_message & " " & oRS("Column_Name")
str_message=str_message & " " & oRS("Data_Type")
str_message=str_message & " " & oRS("Character_Maximum_Length")
str_message=str_message & vbCrlf

oRS.movenext
 Wend
msgbox str_message

2013年5月13日月曜日

VBScript でAccessのデータベースを作成する

以下のサンプルでは、VBScript でAccessのデータベースを作成しています。




Dim objCat

 Set objCat = CreateObject("ADOX.Catalog")
 objCat.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
               "Data Source=c:\mdb\dbtest.accdb;"
 Set objCat = Nothing

VBScript でWordを操作する

以下は、VBScript でWordを操作するサンプルです。





set oWord = createobject("word.application")

oWord.Visible = True

Set oDoc = oWord.Documents.Add

sResult = "aaaaa" &  vbCrlf & vbCrlf & "bbbbb" & vbCrlf & "ccccc"

oDoc.Range.InsertAfter sResult & vbCrlf

VBScript でOutlook を操作する

以下はVBScript でOutlook を操作するサンプルです。メールのタイトルと本文を指定してメールを発信します。




Dim ol
Dim iM

set ol = createobject("outlook.application")

set iM = ol.CreateItem(0)

iM.Subject ="helo"
iM.Body = "how are you "
iM.To = "xxx.yyy@zzz.ne.jp"

im.send

2013年5月12日日曜日

地デジ用アンテナの購入(UAD1900)

UAD1900という地デジ用アンテナの購入をしました。今まで、使っていたアンテナでは受信が不安定だったため、やや弱い電波でも受信できる強力な室内アンテナが欲しかったためです。
住んでいる地域の電波が、水平偏波か垂直偏波かをインターネットで調べたところ水平偏波だったので、室内用の縦置きスタンドの使用ができました。
UAD1900というこのアンテナは、ブースターが内蔵されています。なおブースターには利得を調整するボリュームのようなものはついていません。またブースターをオフにして使用することもできないようです。(ブースターが内蔵されているため、約10Wの電力を消費するようです。)
また、この商品にはアンテナケーブルが付属しておらず別途、購入しなくてはなりません。アンテナケーブルは、①アンテナと電源部間、②電源部とテレビ間の最低は2本必要です。(分波器を使ったりするともっと必要と思われます。)
なお、テレビはきちんと映るようになりました。ただし、ブースターが本当に必要だったのかどうかよくわかりません。もしかするとブースターなしのアンテナでもよかったのかもしれません。ブースターなしのアンテナを購入してみて、もしダメだったら、外付けのブースターを購入するという方法もあったように思います。


購入したUAD1900とアンテナケーブル






以下はブースターなしの製品です。






(後日談)なお、この後10月にも地デジアンテナを追加で購入しました。

http://chaos-fractal.blogspot.jp/2013/10/blog-post.html






Nexus7 使いこなしガイド を購入


「すべての操作を1日で覚える Nexus7 使いこなしガイド」という書籍 を購入しました。

VBScript から SQLserver へ接続

今まで、VBScriptやVBAから、AccessのmdbやMySQLへ接続する方法を調べてきましたが、以下はマイクロソフトのSQLserverに接続する方法のサンプルです。




 Set conn = CreateObject("ADODB.Connection")
 Set rs = CreateObject("ADODB.Recordset")


conn.Open "Provider=SQLOLEDB;Password=xxyyzz; Persist Security Info=True;User ID=root;Initial Catalog=databasename;Data Source=192.168.xx.yy"



上記の例では、192.168.xx.yy というマシンのdatabasenameというデータベースに対して、ユーザIDがrootでパスワードがxxyyzz で接続しています。



●ご参考

VBScript からMySQLに接続する
http://chaos-fractal.blogspot.jp/2013/05/vbscript-mysql.html

ExcelのVBAからAccessに接続する
http://chaos-fractal.blogspot.jp/2013/01/excel.html

2013年5月11日土曜日

無線LANルータ(APモード)

我が家で使用している無線LANルータには、Router(ルーター)モードと、APモードのふたつのモードがあるようです。どちらにしても、インターネットには接続できるのでどう違うのかよくわからないのですが、Routerモードの時とAPモードのときで、パソコンに割り振られるIPアドレスが変わっているのはわかります。Routerモードの時には、配下につながっている機器は、ひとつ上のルータに繋がっている機器とは、別のネットワークのアドレスになっています。それに対して、APモードの時には、ひとつ上のルータにつながっている機器と同じネットワークのアドレスになります。APモードの時にはハブと同じような役割をしているということでしょうか。

2013年5月10日金曜日

Ubuntu 13.04 でユーザを追加する(adduser コマンド)

Ubuntu 13.04に adduser コマンドを使ってユーザを追加しました。例えば xxxxx というユーザを作成するには以下のようなコマンドを使用します。


sudo adduser xxxxx




Ubuntu でファイルを検索する(find コマンド)

Ubuntu などUNIXのコマンドラインから、ファイルを検索するには例えば以下のようなコマンドを使用します。


find ./  -name xxxx.xxx -print


カレントディレクトリの配下にある、xxxx.xxx という名前のファイルを調べて見つかれば表示します。

アマゾンの検索

Ubuntu 13.04 で sshサーバーをインストールする

Ubuntuでtelnetd をインストールしたので、別のパソコンからtelnet で接続できるようになりました。今度はもうちょっとセキュリティの高いsshd をインストールして,sshサーバーを構築しようと思いました。


以下のコマンドでsynapticを起動しました。その後、sshd を検索しました。するとopenssh-server が検索で見つかりましたので、適用ボタンを押してインストールしました。

sudo synaptic





















これでサーバのインストールが終わったので、クライアントからssh でログインできるかどうかを試してみました。クライアントは、WindowsXP上で動作するteraterm を選びました。

まずはパスワードだけで接続できることがわかりました。

次に鍵を使って接続することを試みました。まずはサーバ上で以下のコマンドを実行して秘密鍵と公開鍵のペアを作成しました。

ssh-keygen


作成した公開鍵と秘密鍵のうち、秘密鍵(id_rsa)のほうはUSBメモリにコピーしてクライアントのパソコンのほうに持っていきました。公開鍵(id_rsa.pub)のほうは以下のようなコマンドにより、.sshの配下のauthorized_key というファイルに追加してやります。


cat id_rsa.pub >> ~/.ssh/authorized_keys


これで、クライアントから秘密鍵を指定してログインできるようになりました。(鍵のペアをクライアント側で作成して、公開鍵のほうを、サーバーにコピーするという方法もあるようです。)

なお、ユーザーIDによっては、何回やってもログインできないものがあったのですが、ログインできない原因は、/var/log/auth.logのログを調べることで解決できました。


また、sshdの設定は、設定ファイル/etc/ssh/sshd_config を書き換えてから次のようなコマンドを入力することにより変更が可能です。

sudo /etc/init.d/ssh reload


例えば、プレインパスワードによるログインを禁止して、鍵によるログインだけを許可する場合には設定ファイルに以下のような行を記述します。

PasswordAuthentication no

2013年5月4日土曜日

VBScript で引数を調べる


VBScript で引数を調べるには、例えば以下のようにします。作成したvbsファイルをデスクトップに配置しておき、別のファイルを、そのVBSファイル上にドラッグアンドドロップすると、ファイルのパスを調べることができます。




Set arg=Wscript.Arguments

if arg.Count = 0 then
   msgbox "no argument"
else
  msgbox arg.Item(0)
end if

VBScriptでODBCデータベースに接続する(2)

VBScriptでODBCデータベースに接続して、テーブルにレコードを追加するサンプルです。データベースは、passwd という名前でODBC登録されており、password という名前のテーブルにレコードを追加しています。








Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
 

    conn.Open "DSN=passwd"
 
    rs.Open "select * from password", conn, 3, 3
 
    rs.Addnew
    rs.Fields(1) = "aaaaaaa"
    rs.Fields(2) = "abcdefg"

    rs.Update
 
 
    rs.Close
    conn.Close

VBScriptでODBCデータベースに接続する

以下は VBScriptでODBCデータベースに接続するサンプルです。以下のサンプルでは予めpasswd という名前でODBC登録をしておく必要があります。





Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
   

    conn.Open "DSN=passwd"
   
    rs.Open "select * from password", conn, 3, 3
   
    rs.MoveFirst

    Do While Not rs.EOF
         MsgBox rs.Fields(0) & "-" & rs.Fields(1) & "-" & rs.Fields(2)
    rs.moveNext

    Loop

Windows7 で telnet クライアント が使用できるようにする


Windows7 で telnet クライアントを起動しようとして、コマンドプロンプトから、telnet と入力しても駄目でした。コントロールパネルのプログラムからtelnet クライアントが使用できるように設定する必要があるようです。「Windowsの機能の有効化または無効化」というところを選んで telnetクライアントを有効にしました。これで telnet でサーバーに接続できるようになりました。なお、ちなみに同じところでtelnet サーバーやftpサーバー、webサーバーも有効にすることができることがわかりました。







Ubuntu 13.04 で telnetd をインストールする






Ubuntu13.04 にアップグレードしたあとで、telnetデーモンをインストールしようと思い立ちました。まずは、synaptic を起動して、telnetd を指定してインストールを行いました。すると自動的に、openbsd-inetd も追加でインストールされました。早速、他のマシンから、telnetで接続できることを確認しました。

http://d.hatena.ne.jp/cofe_arabi/20110531


























VBScript でExcelを操作する

以下はVBScript でExcelを操作するサンプルです。(テキストファイルに以下の内容を書いて拡張子が.vbsのファイルを作成します。そのファイルをダブルクリックすると実行されます。コンピュータにはExcelがインストールされている必要があります。あらかじめC:\xls\030526.xls というExcelファイルを作成しておきます。またそのExcelファイルには、Macro1という名前のマクロが作成されている必要があります。)

以下のスクリプトでは、C:\xls\030526.xlsというファイルをオープンしてMacro1というマクロを実行します。A2セルの値を表示し、A1~D1のセルに書き込みをします。その後、別の名前でExcelファイルを保存して終了します。






set xlapp=createobject("Excel.Application")

xlapp.visible=true

xlapp.displayalerts=False

set xlbook=xlApp.Workbooks.open("C:\xls\030526.xls")

xlApp.run("Macro1")

msgbox xlbook.worksheets("sheet1").Range("A" & 2).value

xlbook.worksheets("sheet1").Range("A" & 1).value="test_test"
xlbook.worksheets("sheet1").Range("B" & 1).value="test_test"
xlbook.worksheets("sheet1").Range("C" & 1).value="test_test"
xlbook.worksheets("sheet1").Range("D" & 1).value="test_test"


xlbook.SaveAs("C:\xls\050623.xls")
xlApp.Quit



set xlbook=nothing
set xlApp=nothing

msgbox Err.Description




2013年5月3日金曜日

Ubuntu 13.04 にアップグレードした

Ubuntu 13.04 にアップグレードしました。どこが変わったのかよくわかりません。ただし、LibreOfficeのバージョンは、4.0.2.2になっていました。画面の右上には、雲(クラウド)のマークが表示されるようになりました。

Ubuntu 13.04 でftpサーバーをインストールする

Ubuntu 13.04 にftpサーバーをインストールしました。以下のサイトを参考にさせていただき次のようなコマンドを入力しました。


●sudo apt-get install vsftpd



参考にさせていただいたサイト

https://help.ubuntu.com/10.04/serverguide/ftp-server.html



デフォルトでは、ユーザanonymous や ユーザftp のログインは無効になっているので以下のコマンドで設定を変更しました。


●sudo vi /etc/vsftpd.conf


vsftpd.conf ファイルの以下の設定を変更しました。


anonymous_enable=YES
write_enable=YES


設定の変更を有効にするため以下のコマンドを実行しました。

●sudo service vsftpd restart


/srv/ftp というディレクトリができていて、そこがanonymous やftp でログインした時のホームディレクトリになるようです。



ところがここで問題が発生しました。anonymous やftp だとログインできるのですが、それ以外の一般のユーザでログインできないのです。ftp でユーザ名を入力したあとでパスワードを聞いてくるのでで入力すると以下のようなメッセージがでてログインできません。


530 Login incorrect.
Login failed.


/var/log/auth.log を見ると次のようなエラーメッセージがでていました。


vsftpd: PAM audit_log_acct_message() failed: Operation not permitted


インターネットを調べたところ、これはバグらしくて以下のサイトに解決方法が書かれてありました。バグ修正版のvsftpd プログラムへのリンクもはってありました。

https://bugs.launchpad.net/ubuntu/+source/vsftpd/+bug/1160372


解決方法としてはバグが修正されたvsftpd を入手して以下のようにしてインストールし直すというものです。以下ではバグ修正版のvsftpd をvsftpd_patched.deb という名前としています。


sudo apt-get remove vsftpd
sudo dpkg -i vsftpd_patched.deb


これでやってみたところ、一般のユーザでもftp ログインできることが確認できました。

VBScript や VBAで Scripting.FileSystemObject を使う

VBScript またはVBAでテキストファイルに書き込む処理を Scripting.FileSystemObjectを使用して行うことができます。以下はサンプルコードです。





Sub aaa()

    strFileName = "D:\sample.txt"
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFileSystem.CreateTextFile(strFileName)
    objFile.Write ("test1")
    objFile.Write (vbCrLf)
    objFile.Write ("test2")
    objFile.Write (vbCrLf)
    objFile.Write ("test3")

objFile.Close


End Sub






関連webページ

http://chaos-fractal.blogspot.jp/2013/01/vba-access.html

VBScriptでポップアップメッセージを表示させたい場合には

VBScriptでポップアップメッセージを表示させたい場合には以下のサンプルのようなコードを使用します。ポップアップメッセージは、timeoutで指定された秒数の間だけ表示して終了します。






message="continue?"
timeout=5
title="title"
buttons=65

set ws=wscript.createobject("wscript.shell")

rslt=ws.popup(message,timeout,title,buttons)


msgbox "rslt=" & rslt

VBA やVBScriptからバッチプログラムを実行するには

VBA やVBScriptからバッチプログラムを実行するには、例えば以下のサンプルのようなコードを使用します。以下のプログラムでは、run?と表示されるので、yesボタンを押すとc:\test.batというバッチプログラムが実行されます。





if msgbox("run ?",vbYesno)=vbYes then

set obj_wsh=createobject("wscript.shell")
aaa=obj_wsh.run("c:\test.bat")

end if

VBA や VBScriptで16進表示

VBAやVBScriptで16進の表示を得るにはHex()関数を使用します。例えば以下のようなプログラムを実行すると25を16進数に変換して19を表示してくれます。

msgbox Hex(25)


MySQL テーブルの変更

SQL文を使って、テーブルの変更を行うためには alter table を使用します。以下のサンプルでは、tel というテーブルに zip という列(フィールド)を追加します。


alter table tel add column zip varchar(8);


column という文字列はなくてもよいそうなので以下でも同じ意味です。

alter table tel add zip varchar(8);






参考にさせて頂いたサイト


2013年5月1日水曜日

Vbscript から Mysql に接続する

Vbscript またはVBAから Mysql に接続するには、まず Connector/ODBC をダウンロードしてインストールしておきます。次に例えば以下のようなコードを使用します。Connector/ODBCは5.2.4ansiをダウンロードしました。




 Set conn = CreateObject("ADODB.Connection")
 Set rs = CreateObject("ADODB.Recordset")
 
  conn.Open "Driver={MySQL ODBC 5.2a Driver};server=192.168.xx.xx;" & _
            "database=stock_db; uid=xxxx; pwd=xxxx;"
 
    rs.Open "select * from stock", conn
 
    rs.MoveFirst

    MsgBox "--" & rs.Fields(0)
    MsgBox "--" & rs.Fields(1)
    MsgBox "--" & rs.Fields(2)
    MsgBox "--" & rs.Fields(3)

    rs.MoveNext
    MsgBox "--" & rs.Fields(0)
    MsgBox "--" & rs.Fields(1)
    MsgBox "--" & rs.Fields(2)
    MsgBox "--" & rs.Fields(3)

    rs.Close
    conn.Close
 
msgbox "end"



-----------------------------------------------------------------------

以下は、MySQL上にテーブルを作成するためのSQL文ですが、この時に最期の行にENGINE=InnoDB DEFAULT CHARSET=sjis という文言を入れないと日本語データを入力した時に文字化けします。


CREATE TABLE log_rec (
  id` int(11) NOT NULL auto_increment,
  access_date date default NULL,
  access_time time default NULL,
  agent varchar(255) default NULL,
  path varchar(100) default NULL,
  ip_address varchar(50) default NULL,
  PRIMARY KEY  (id)
) ENGINE=InnoDB DEFAULT CHARSET=sjis;