Posts tagged ‘windows’

リモートからリモートデスクトップを有効にするテクニックです。

本来ならば、以下の設定をローカルから設定するのですが、レジストリを変更することで、リモートから有効化します。

20090322_01

1. レジストリエディタを起動し、対象コンピュータへ接続します。

接続の方法は、メニュの「ファイル」 → 「ネットワーク レジストリへの接続」を選択します。

20090322_02

2. 対象コンピュータ名を入力し、ユーザ名・パスワードを入力します。

3. 次のレジストリ サブキーを見つけます。

HKEY_LOCAL_MACHINEのSYSTEM\CurrentControlSet\Control\Terminal Server

4. [編集] メニューの [新規] をポイントし、[DWORD 値] をクリックして、次のレジストリ値を追加する。
  値の名前 : fDenyTSConnections
  データ型 : DWORD
  値
 : 1 = 許可しない (規定値)  /  2 = 許可する

以下の設定を行うことでキーボードの右Ctrlキーを押しながらScrollLockキーを2 回押すことにより、メモリダンプファイルを作成できます。

□PS2キーボードの場合
1. レジストリ エディタを起動する。

2. 次のレジストリ サブキーを見つける。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters

3. [編集] メニューの [新規] をポイントし、[DWORD 値] をクリックして、次のレジストリ値を追加する。
  値の名前 : CrashOnCtrlScroll
  データ型 : REG_DWORD

□USBキーボードの場合

1. レジストリ エディタを起動する。

2. 次のレジストリ サブキーを見つける。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters

3. [編集] メニューの [新規] をポイントし、[DWORD 値] をクリックして、次のレジストリ値を追加する。
  値の名前 : CrashOnCtrlScroll
  データ型 : REG_DWORD

Outlook ExpressはWindowsに標準でついており、企業でも使われていることが多いかと思います。

しかし、どんな便利なツールにも使い方を理解し、性質を知っていなければ大切なデータを失ってしまうことになります。

よくあるケースとして、メールデータのファイルである .dbxファイルのサイズが大きくなりすぎてデータが消えてしまうというものです。

Microsoftのサポートオンラインにも記述があります。

Outlook Express で使用される .dbx ファイルの最大ファイル サイズに関する情報

上記のサイトのように2Gに達するケースとしては、メールフォルダを分けずに、受信トレイに全てのメールを保存してしまい、

サイズが大きくなってしまうことが考えられます。

同じく、Outlook Expressの起動100回毎にメールフォルダの最適化が促されますが、 実行すると .dbxファイルが壊れてしまうことがあります。

2Gという制約があるものですから、1つのフォルダにメールをためずに、フォルダの分割を行いましょう。

方法は、メッセージルールを利用します。

メッセージルールの例として、

1. ドメイン毎(送信元)

2. 宛先毎(メーリングリスト) など
xxx@xxx.com宛
yyy@yyy.com宛など

3.アカウント毎

また、それぞれのフォルダを階層にして、年度を分けるなど工夫すれば1つのファイルが2Gにいくことはありません。

以前にSystemアカウントでプログラムを起動する投稿をしましたが、
WSHにて書いてみました。(以外にあっさりでしたが…)

今回のコードはとりあえず、コマンドプロンプトを起動します。
コマンドプロンプトさえ起動すれば、そこで実行するコマンドは全てSystemアカウントで実行されます。

Option Explicit
  Dim OBJ_WshShell    'WSH Shell Object
  Dim STR_Time        'String Object

  Set OBJ_WshShell = WScript.CreateObject("WScript.Shell")
  STR_Time = DateAdd("n", 1 , Time())

  OBJ_WshShell.run "at " & STR_Time & " /interactive" & " cmd /K",0

Scriptのダウンロードは こちら です。

ATコマンドを利用し、Systemアカウントでプログラムを起動する方法。

コマンドプロンプトにて、以下のコマンドを実行する。

at xx:xx(直近の時間) /interactive cmd.exe

atコマンドが成功すると、systemアカウントが起動したコマンドプロンプトが起動される。

起動したコマンドプロンプトにて実行したいコマンドを実行すると、Systemアカウントで実行できる。


Shellを利用し、WindowsXP、Vistaでファイル圧縮を行います。

例では、”C:\test.txt” を”C:\test.zip” に圧縮しています。

Option Explicit

 
  MakeZip "C:\test.txt", "C:\test.zip"

Sub MakeZip(STR_TargetFile ,STR_SaveFile)
  Dim OBJ_FSO
  Dim OBJ_ZIP
  Dim OBJ_Shell
  Dim ARR_Hex
  Dim STR_Temp
  Dim i

  Set OBJ_FSO = CreateObject("Scripting.FileSystemObject")
  ARR_Hex = Array(80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

  For i = 0 To UBound(ARR_Hex)

    STR_Temp = STR_Temp & Chr(ARR_Hex(i))

  Next

  Set OBJ_Zip = OBJ_FSO.CreateTextFile(STR_SaveFile, True)
  OBJ_Zip.Write STR_Temp
  OBJ_Zip.Close

  Set OBJ_Shell = CreateObject("Shell.Application")
  OBJ_Shell.NameSpace(STR_SaveFile).CopyHere(STR_TargetFile)

  WScript.Sleep 3000
  Set OBJ_Shell = Nothing
End Sub

Scriptのダウンロードは こちら です。

Winhttpでhttpリクエストを行い、Cドライブ直下に”test.gif”というファイルにリクエスト結果を保存する例です。


Option Explicit

  Const OpenFileForReading   = 1
  Const OpenFileForWriting   = 2
  Const OpenFileForAppending = 8

  Const adTypeBinary = 1 'Binary
  Const adTypeText   = 2 'Text

  Const adSaveCreateNotExist  = 1
  Const adSaveCreateOverWrite = 2
  HTTPDownload "http://dragon-ark.com/wp-content/uploads/2008/12/20081231_1-300x166.gif" , "c:\test.gif"

 Sub HTTPDownload(ByVal STR_URL, ByVal STR_Path )
    Dim OBJ_ADO
    Dim OBJ_HTTP
    Dim STR_Temp

    Set OBJ_ADO  = CreateObject("ADODB.Stream")

    OBJ_ADO.Type = adTypeBinary
    OBJ_ADO.Open
    OBJ_ADO.Position = 0

    Set OBJ_HTTP = CreateObject("WinHttp.WinHttpRequest.5.1")

    OBJ_HTTP.Open "GET", STR_URL, False
    OBJ_HTTP.Send

    STR_Temp = OBJ_HTTP.ResponseBody
    OBJ_ADO.Write STR_Temp
    OBJ_ADO.SaveToFile STR_Path, adSaveCreateNotExist
    OBJ_ADO.Close
End Sub

Scriptのダウンロードは こちら です。

Winhttpでhttpリクエストを行い、Cドライブ直下に”test.txt”というファイルにリクエスト結果を保存する例です。


Option Explicit

  Const OpenFileForReading   = 1
  Const OpenFileForWriting   = 2
  Const OpenFileForAppending = 8

  HTTPDownload "http://google.co.jp/index.html" , "c:\text.txt"
Sub HTTPDownload(ByVal STR_URL, ByVal STR_Path )
    Dim OBJ_File
    Dim OBJ_FSO
    Dim OBJ_HTTP

    Set OBJ_FSO  = CreateObject("Scripting.FileSystemObject")
    Set OBJ_File = OBJ_FSO.OpenTextFile(STR_Path, OpenFileForWriting, True)
    Set OBJ_HTTP = CreateObject("WinHttp.WinHttpRequest.5.1")

    OBJ_HTTP.Open "GET", STR_URL, False
    OBJ_HTTP.Send

    OBJ_File.Write  OBJ_HTTP.ResponseText
    OBJ_File.Close( )
End Sub

Scriptのダウンロードは こちら です。

IEを起動し、googleを開く例です。


Option Explicit

  Dim OBJ_Shell

  Set OBJ_Shell = CreateObject("Shell.Application")
  OBJ_Shell.Windows.Item.Navigate "<a href="http://www.google.co.jp/">http://www.google.co.jp/</a>"

Scriptのダウンロードは こちら です。


Option Explicit
  Dim OBJ_FSO
  Dim OBJ_Browser
  Dim STR_ProgramName

  Set OBJ_FSO = CreateObject("Scripting.FileSystemObject")

  For Each OBJ_Browser In CreateObject("Shell.Application").Windows

    STR_ProgramName = OBJ_FSO.GetFileName(OBJ_Browser.FullName)
    If LCase(STR_ProgramName) = "iexplore.exe" Then

      WScript.Echo OBJ_Browser.LocationURL

    End If

  Next

Scriptのダウンロードは こちら です。