よしこ さん 2005年 10月 14日 15時 56分 28秒

vbsで、あるファイルをコピー後、オリジナルのファイルを、ファイル名そのままに0バイトで残したいと考えています。
batchなら簡単にできそうなんですが、vbsでは苦心しています。
よいアイデアございますでしょうか。

わん さん 2005年 10月 13日 22時 25分 35秒

ネットワーク上の別のPCのデスクトップにメモ帳を立ち上げる
なんてこと、出来るのでしょうか?

ばんのしゃーによかばんた さん 2005年 10月 13日 19時 16分 34秒

>cube さん 2005年 10月 12日 01時 26分 24秒
>スクリプトにてファイルのタイムスタンプを保持したままUNIXからFTPでダウンロードしたいと思っていますが可能でしょうか?

スクリプトで、dirまたはlsで、タイムスタンプを見て、反映すればよいのでは。


ばんのしゃーによかばんた さん 2005年 10月 13日 19時 16分 19秒

>めろこ さん 2005年 10月 12日 11時 47分 01秒
>客先を説得しようと思います。

念のために、確認ですが、
客が素人考えで「ショートカットを作成できないように」と言ったから、
そうするのではなく、何が問題で、客がそう言っているのか、を調べて、
元の問題を解決する手段として何が最適か、を検討して、客に提案する
のがプロの仕事ですよね?

で、客は何が問題だと言ってるのでしょうか?


ばんのしゃーによかばんた さん 2005年 10月 13日 19時 16分 02秒

>ちゃっぴ さん 2005年 10月 08日 00時 07分 19秒
>http://support.microsoft.com/default.aspx?scid=kb;ja;867642

これは単に自動化しましょ、と言ってるだけのように見えます。

>まあ、大量にある場合には、GUIを使うな!ってことですかね。

一般のフォルダなら、コマンドプロンプトも可能ですが、
ごみ箱なので、GUIを使うしかないですよね。
コマンドプロンプトでごみ箱を見ても、さっぱりですから。

ところで、験してみると、
3000以下はストレスなし。
4000程度は1回目のスクロールは引っ掛かるが、2回目以降はスムーズ。
5000程度は1回目のスクロールで何度も引っ掛かり、2回目以降も頻発。
6000以上は引っ掛かり多発。1回の引っ掛かり時間がどんどん長くなる。
閾値は3000-4000くらいですね。


ばんのしゃーによかばんた さん 2005年 10月 13日 19時 15分 40秒

また、UTF-8のメールが来ました。:-<
今度はメーラが取り込んだときに文字化けしてしまったようで、
デコードも出来ず、難儀しました。:-<

それで、どうして、UTF-8のメールが来るのかを研究してます。

想像ですが、メール本文の文字セットを自動判定して、
それが収まる文字コードで送っているのではないでしょうか。

英語だけならUS-ASCII
日本語(Shift JIS)だけならISO-2022-JP
ISO-8859-1の変な文字が混在するとUTF-8
みたいに。

そこで、メール本文を書いているときに、
英語メールに日本語文字が混在するのを防ぐ、検出する方法。
日本語メールにトレードマークなどの文字が混在するのを防ぐ、検出する方法。
が、Wordなどに標準的な機能として、ないのでしょうか。


みみ さん 2005年 10月 13日 13時 08分 46秒

なんとか、以下のコードで実行できました。

Set wshShell = WScript.CreateObject("WScript.Shell")
ans = wshShell.Run("cmd.exe /C runas /user:(自コンピュータ名)\administrator ""eventvwr (ターゲットコンピュータ名)""" )

Do While Not wshShell.AppActivate("C:\WINNT\System32\cmd.exe")
WScript.Sleep 100
Loop
WScript.Sleep 250
wshShell.SendKeys "(Pass){ENTER}"

Sleepさせる時間は何の値に関係するものなのか分かりませんが・・。

みみ さん 2005年 10月 13日 12時 05分 38秒

ご返答ありがとうございます。

Set wshShell = WScript.CreateObject("WScript.Shell")
ans = wshShell.Run("cmd.exe /C runas /user:(自コンピュータ名)\administrator ""eventvwr (ターゲットコンピュータ名)""" )

Do While Not wshShell.AppActivate("C:\WINNT\System32\cmd.exe")
WScript.Sleep 100
Loop
WScript.Sleep 100
wshShell.SendKeys "(Pass){ENTER}"

しーんとしてます。
特にエラーは表示されません。
ログオンしているコンピュータのイベントログなら開けるのですが・・
ans = wshShell.Run("cmd.exe /C runas /user:(自コンピュータ名)\administrator eventvwr" )

ばんのしゃーによかばんた さん 2005年 10月 12日 14時 40分 43秒

>みみ さん 2005年 10月 11日 12時 06分 38秒

以下の過去記事では駄目?

>ばんのしゃーによかばんた さん 2004年 11月 07日 19時 38分 06秒



めろこ さん 2005年 10月 12日 11時 47分 01秒

TO:ばんのしゃーによかばんた さん

ご返答ありがとうございます。

>IsShortcutという名前の値を持っているファイルクラスですから、
>それらのファイルクラス(lnkfileなど)と拡張子(.lnkなど)をすべて削除する。
>shell組込みのショートカットは無効にならないかも。
>また、システムが動かなくなるかも。

調べたところ、DLLを変更してレジストリに再定義すれば可能かもしれない
とのことでしたが、システムが動作しなくなる可能性が高いので、
客先を説得しようと思います。

ありがとうございました。

みみ さん 2005年 10月 12日 11時 25分 38秒

追記します。

よろしくお願いします。

リモートコンピュータのイベントログを開く処理を実行しようとしています。
掲示板の過去ログを参考に、以下のようなコードを作成したのですが、
リモートコンピュータのイベントログを開くことができません。
理由等ご存知でしたらご教授願います。


Set wshShell = WScript.CreateObject("WScript.Shell")
ans = wshShell.Run("cmd.exe /C runas /user:(自コンピュータ名)\administrator eventvwr")

Do While Not wshShell.AppActivate("C:\WINNT\System32\cmd.exe")
WScript.Sleep 100
Loop
wshShell.SendKeys "pass"
Set wshShell = Nothing

(処理対象端末、処理を実行している端末ともに)
Secondary Logon Service
Remote Registry Service
は起動されています。
タスクマネージャを監視していても、Runas.exeやmmc.exeが起動されている
様子はありません。
エラーメッセージ等 表示されません。
(一瞬 DOS画面がチラッと開きます。)
DOS画面から wshShell.Runの内容を入力し、パスワードを入力すると処理対象端末のイベントログを開くことが出来ます。

cube さん 2005年 10月 12日 01時 26分 24秒

スクリプトにてファイルのタイムスタンプを保持したままUNIXからFTPでダウンロードしたいと思っていますが可能でしょうか?

抹消君 さん 2005年 10月 12日 00時 55分 05秒

To: 管理人むたぐち さん

ご返答有難うございます。

> おそらくMicrosoftIE_Certificateクラスが該当すると思うのですが、
> こちらの環境ではインスタンスを持っていないようです。
>
> また、CIM Studioで調べたところ、メソッドは無いようなので、
> 「コントロール」は難しいんじゃないかと思います。

自分でも「MicrosoftIE_cert」とかで検索したのですが、
引っかかりませんでした。。。悲しい。

よく考えてみれば証明書をインポートする行為は、そのサイトを
信頼した上で行うと思うので、スクリプトでコントロール
することなど出来ないのかもしれません。
Windowsドメインを組んでいれば、グループポリシーなどで
証明書を配布することは出来るようですが。。。

> 参考:
> http://www.wbem.dk/

このサイト初めて知りました。今後の調査に活躍しそうです!


今回はユーザ向けに証明書インポートの手引きなどを
作成して対処したいと思います。

有難うございました。


管理人むたぐち さん 2005年 10月 11日 17時 12分 47秒

To: 抹消君 さん

おそらくMicrosoftIE_Certificateクラスが該当すると思うのですが、
こちらの環境ではインスタンスを持っていないようです。

また、CIM Studioで調べたところ、メソッドは無いようなので、
「コントロール」は難しいんじゃないかと思います。

参考:
http://www.wbem.dk/Root/CIMV2/Applications/MicrosoftIE/MicrosoftIE_Certificate.asp

抹消君 さん 2005年 10月 11日 15時 52分 26秒

IEの証明書の設定を遠隔でコントロールしたいと
思っております。
名前空間に「Root\CIMV2\Applications\MicrosoftIE」
を使用しそうなのですが、何のクラスを使用するのかが
分かりません。
また、遠隔でCA証明書をインポートすることなどは
可能なのでしょうか。
(ユーザに手動でインポートをさせない方法)

ご教授の程宜しくお願い致します。

ばんのしゃーによかばんた さん 2005年 10月 11日 15時 14分 30秒

>めろこ さん 2005年 10月 05日 17時 53分 13秒
>客先からクライアント端末でショートカットを作成できないように
>設定して欲しいとの要望を頂きましたが、色々調べたのですが設定
>方法が見つかりませんでした。

ショートカットというのは拡張子がlnk,url,pif,wshなどのファイルの
ことですから、特定の拡張子のファイルを作れなくしろ、ということに
なります。それは無理なのでは。

WMIでファイルの作成を監視して一旦作成されたショートカットを
すぐに削除することは可能かも知れません。
しかし、この手の監視は即時性を高めるほど重くなりそうです。

レジストリを変更すれば、そういうファイルを作っても
ショートカットとしての機能を無効にできるかも知れません。

[HKEY_CLASSES_ROOT\lnkfile]
@="ショートカット"
"IsShortcut"=""

IsShortcutという名前の値を持っているファイルクラスですから、
それらのファイルクラス(lnkfileなど)と拡張子(.lnkなど)をすべて削除する。
shell組込みのショートカットは無効にならないかも。
また、システムが動かなくなるかも。


ばんのしゃーによかばんた さん 2005年 10月 11日 15時 14分 16秒

>うに さん (null) 2005年 10月 07日 11時 40分 19秒

文面からはちょっと読み取れなかったので、確認ですが、

>CurrentDirectoryで指定すれば良かったのですね。
>batファイルを使ってcdさせて対応してしまいました。

これらがうまく行く理屈と、

>うに さん (null) 2005年 10月 03日 10時 50分 13秒
>まず、execで"cmd /c cd Test1"->"cscript no1.vbs"とやってみたのですが、
>「Home\no1.vbsが見つかりません」というエラーがでます。
>cdがうまくいっていない感じです。
>次にrunをつかって"cmd cd raa01"としてみたのですが、
>プロンプトに
>\Home>
>とでていますので、やはりcdできていない感じです。

これらがうまく行かない理屈が分かったということですよね。

それが分かれば、

>うに さん (null) 2005年 09月 29日 11時 15分 15秒
>回避策としてPATHをsystem32より前にJDKのPATHがくるようにするのですが、
>この方法が使えないようです。

これも似たような話ではないかと思いますが、どうなんでしょう。


ばんのしゃーによかばんた さん 2005年 10月 11日 15時 13分 54秒

>門外漢 さん 2005年 10月 10日 00時 16分 00秒
>XP SP2のZoneID機能が正しく機能しない欠陥
>http://bbs.hotfix.jp/ShowPost.aspx?PostID=667
>キツイですね。

いえいえ、それほどのことではありません。下と比べれば可愛いものです。

それよりも、その先にも書いてある、見識が問われる仕様、
cmd /c evil.gif
をとっとと直すべきです。これこそ正真正銘の欠陥仕様です。

これも、Mark of the Webと同じで、中のデータに依存して制御する、
とんでもない仕様です。

これを放置して、セキュリティを云々するなんざ可笑しくって、
おへそが茶を沸かします。

unixでは、executable属性が付いたものしか実行できません。
DOS/Windowsでexecutable属性に代わるものが拡張子の.exe/.comと
関連付けです。

つまり、unixで言えば、executable属性が付いていないものでも
中身を見て実行するようなもので、とんでもない仕様です。

また、ばんのしゃーによかばんたの第四原則に、
制御情報を二重に持つな。というのがあります。
制御情報をaとbに持つと、どちらを見ても同じだからと言って、
aを見て制御するひとと、bを見て制御するひととが出てきます。
そのうち、aだけ変えてbを変えないひとが出てきたりして、
情報が乖離していきます。
これが障害やセキュリティホールの元になるのです。

これと、信頼性のために情報を冗長に持つのとは違います。
冗長に持った情報を照合して、違っていたら、その情報を信用しないと
いうのが信頼性になるのです。

つまり、拡張子を制御情報として使い、拡張子が.EXEなら、ファイル中の
IDが"MZ"であることをチェックして、違っていたらエラーにすべきなのです。

ファイル中のIDを見て実行するなんてのは、全くのど素人が作った
お遊びプログラムとしか思えません。これがOSだなんて信じられません。


みみ さん 2005年 10月 11日 12時 06分 38秒

よろしくお願いします。

リモートコンピュータのイベントログを開く処理を実行しようとしています。
掲示板の過去ログを参考に、以下のようなコードを作成したのですが、
リモートコンピュータのイベントログを開くことができません。
理由等ご存知でしたらご教授願います。


Set wshShell = WScript.CreateObject("WScript.Shell")
ans = wshShell.Run("cmd.exe /C runas /user:(自コンピュータ名)\administrator eventvwr")

Do While Not wshShell.AppActivate("C:\WINNT\System32\cmd.exe")
WScript.Sleep 100
Loop
wshShell.SendKeys "pass"
Set wshShell = Nothing

ばんのしゃーによかばんた さん 2005年 10月 10日 19時 59分 56秒

スクリプトでのバイナリ入出力は、今では、ほとんどの環境で
ADODB.Streamが使えるので、今更なんですが、こんな方法もあります。

読み出し例
Path="A.TXT"
Set fso=CreateObject("Scripting.FileSystemObject")
Set wShell=CreateObject("WScript.Shell")
Set oExec=wShell.Exec("CMD.EXE /CDebug.EXE "&Path)
oExec.Stdin.Write "e cs:100"&vbCr
oExec.Stdin.Write String(fso.GetFile(Path).Size-1," ")
oExec.Stdin.Write vbCr
oExec.Stdin.Write "q"&vbCr
MsgBox oExec.StdOut.ReadAll
WScript.Quit

書き込み例
Path="B.TXT"
Data="61 62 63"
Size=3
Set fso=CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile(Path).Write String(Size," ")
Set wShell=CreateObject("WScript.Shell")
Set oExec=wShell.Exec("CMD.EXE /CDebug.EXE "&Path)
oExec.Stdin.Write "e cs:100"&vbCr
oExec.Stdin.Write Data
oExec.Stdin.Write vbCr
oExec.Stdin.Write "w"&vbCr
oExec.Stdin.Write "q"&vbCr
MsgBox oExec.StdOut.ReadAll
WScript.Quit


門外漢 さん 2005年 10月 10日 00時 16分 00秒

>ばんのしゃーによかばんた さん 2005年 10月 06日 15時 00分 41秒
>即刻、Mark Of the Webの制御は廃止して、ZoneIDだけにすべきです。

XP SP2のZoneID機能が正しく機能しない欠陥
http://bbs.hotfix.jp/ShowPost.aspx?PostID=667

キツイですね。

ちゃっぴ さん 2005年 10月 09日 12時 20分 03秒

To たか さん 2005年 10月 09日 07時 27分 07秒

> Terminateのしかたについて、どなたか教えていただけませんか?

基礎と Debug についてしっかり勉強しましょう。

まず、Comment Out している部分ですが、
> ' ("winmgmts:\\" & strComputer & "\root\cimv2")

こちらのほうが正しいのになぜ?少なくとも、
>("winmgmts:")

では、対象が限定されていないので、
どこで閉じられるのかわかりませんよ?

それから、Loop で回す以前に

WScript.Echo colProcessList.Count

とかで、Queryで引っ掛かっているのか調べるとか、
Loop 内で

WScript.Echo objProcess.Name

で確認してみるとか・・・

あと、ProcessID はどのようにして取得しましたか?
取得の方法によっては、違っている場合もあるかもしれませんので・・・

たか さん 2005年 10月 09日 07時 27分 07秒

Terminateのしかたについて、どなたか教えていただけませんか?
以下のスクリプトで、intPIDにProcessIDを入力し、実行しても、
Terminateできません。(エラーも何も出ず無反応でした。)
 でも、intPIDに、Handle No.を入力すると、Terminateできました。
これは、WindowsMeだからでしょうか?


intPID = 35295

strComputer = "."
Set objWMIService = GetObject _
  ("winmgmts:")
'  ("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
  ("Select * from Win32_Process Where ProcessID = " & intPID & "")
For Each objProcess in colProcessList
  objProcess.Terminate()
Next

AKA さん 2005年 10月 08日 05時 29分 21秒

DynamicWrapperですが、これで一通りの更新を終えようかと思います。

新たなメソッドは、まだ残っている型のPeek/Pokeと、JScriptで使うためのVBScriptのVarType()と同一機能のメソッド、Registerの拡張された2つのバリエーション、になります。

なお、すべての型のPeek/Pokeを揃えたため、PeekDWord/PokeDWordは、PeekLong/PokeLongと役割交替の仕様変更を行いました。
これによってVBScriptではPeekDWord/PokeDWordは実質的には使えなくなりますので、VBScriptではPeekLong/PokeLongを使ってください。WordとShortの関係も同様です。
ただしPeek/Poke(Byte)に関しては符号なし1バイトに変更しましたが、VBScriptの仕様上、今までと全く同様に使えます。(PeekChar/PokeCharも追加しましたが、VBScriptでは使う局面は少ないと思います。)

JScriptでは特に使えないものはないと思います。

あと、VarPtr()の使用例サンプルを追加しました。

構造体のオブジェクト化ですが、VBScriptの方は、コンストラクタとデストラクタがわかりましたのでサンプルを更新しました。
VBScriptではこのようにオブジェクトを定義しておけば、構造体のコーディングはごく自然な形になると思います。(Dynwrap自体に'構造体オブジェクト定義機能'を組みこむ、という構想もあることはありますが・・・)

JScriptはあいかわらずデストラクタがわかりませんでした。それとプロパティの参照や代入を関数化する方法がわかりませんでしたので、プロパティであるべきところがメソッドになってしまいました。

ただ、MSDNライブラリの'Visual Studio.NET「各言語のキーワードの比較」'という文書に、VBの'Class_Terminate'に対応するJScriptの箇所には'n/a'と書かれているので、おそらくJScriptにはデストラクタがないのだと思います。

不具合、不満、要望、指摘、感想、質問等があればお願いします。
ただし私はあまりインターネットを使わないので、レスが遅くなったらごめんなさい。

皆さんどうもありがとうございました。

http://winscript.s41.xrea.com/wiki/index.php?plugin=attach&pcmd=open&file=DW95604.LZH&refer=%5B%5B%A5%A2%A5%C3%A5%D7%A5%ED%A1%BC%A5%C0%A1%BC%5D%5D

ちゃっぴ さん 2005年 10月 08日 00時 07分 19秒

To ばんのしゃーによかばんた さん 2005年 10月 07日 14時 38分 07秒

> ごみ箱にごみが溜まると、ごみ箱フォルダが異常に遅くなります。
> 一覧するまで線形(一次式)で遅くなるのは、まだ理解できますが、
> 一覧してからでも、ちょっとスクロールしただけで、すぐ「(応答なし)」
> になります。これはちょっと使い物にならない遅さです。

これは、Explorer の仕様だというでしょうね。
# ごみ箱程度ならまだかわいいものですが・・・
# Exchange Server(というか SMTP Service)の Badmail Directory なんて・・・
# 数ヶ月掃除をさっぼっているとどえらい目に・・・

そういうのは、Microsoft でも認識しているようで、
こんな Tool が提供されていたりします。

http://support.microsoft.com/default.aspx?scid=kb;ja;867642

まあ、大量にある場合には、GUIを使うな!ってことですかね。

ちゃっぴ さん 2005年 10月 07日 23時 41分 03秒

To かおり さん 2005年 10月 07日 19時 45分 18秒

>> vbsで、コンピュータ名とかを変更できたりするのでしょうか。
> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName
> キーのComputerNameという名前の文字列値を変更し、
> 再起動をかければコンピュータ名を変更できます。

それだけだと、問題が発生する可能性が大です。
Registry の修正であれば、

[HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
NV Hostname

及び、既定以外の Hardware Profile 「ControlSet001」も
同様に変更しておいたほうがいいでしょう。

あと、Windows XP 以降であれば、WMIWin32_ComputerSystem Class に
Rename Method が存在しますので、それを使って変更されたほうが
いいと思います。

Rename Method of the Win32_ComputerSystem Class
http://msdn.microsoft.com/library/en-us/wmisdk/wmi/rename_method_in_class_win32_computersystem.asp?frame=true

管理人むたぐち さん 2005年 10月 07日 22時 36分 36秒

To: かおりさん

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName
キーのComputerNameという名前の文字列値を変更し、再起動をかければコンピュータ名を
変更できます。
レジストリ値を書き換えるには、WshShellオブジェクトのRegWriteメソッドを使います。

また、テキストファイルの読み込みは、FileSystemObjectのTextStreamオブジェクトを
用いることで可能です。

これらの具体的方法については当サイト、もしくはWSHのヘルプをご参照ください。

かおり さん 2005年 10月 07日 19時 45分 18秒

vbsで、コンピュータ名とかを変更できたりするのでしょうか。
やりたいことは、txtファイルに、マシンタイプとhostnameを記述し、マシンタイプになっているコンピュータ名を、hostnameにvbsでテーブルを見ながら変換していきたいと思っております。

ばんのしゃーによかばんた さん 2005年 10月 07日 14時 38分 31秒

またまた、迂闊にも、気付かなかったのですが、
Windows2000/XP Support ToolsのWinDiffには、
比較リストをファイルに出力するコマンドラインのオプションがあるではないですか。

WinDiff.EXE ファイル1 ファイル2 -filrx リストファイル

このリストファイルを以下にドロップすると、HTMLの差分リストに変えて表示します。

WinDiff.VBS
――――――――――――――――――――――――――――――――――――――
Option Explicit
Dim wShell
Dim fso
Dim ie
Dim FileName3
Dim FileName4
Dim StdOut

Set wShell=CreateObject("WScript.Shell")
Set fso=CreateObject("Scripting.FileSystemObject")
FileName3=WScript.Arguments.Item(0)
If UCase(fso.GetBaseName(WScript.FullName))="WSCRIPT" Then
 FileName4=fso.BuildPath(fso.GetSpecialFolder(2).Path,fso.GetBaseName(fso.GetTempName()) & ".HTM")
 Set StdOut=fso.CreateTextFile(FileName4)
Else
 Set StdOut=WScript.StdOut
End If
Call diff(FileName3)

If Not IsEmpty(FileName4) Then
 StdOut.Close
 Set ie=CreateObject("InternetExplorer.Application")
 ie.Visible=True
 ie.Navigate FileName4
 Do While TypeName(ie)="IWebBrowser2"
  WScript.Sleep 1000
 Loop
 fso.DeleteFile FileName4
End If

WScript.Quit

Sub diff(FileName3)
Dim FileName1
Dim FileName2
Dim File3
Dim Line1
Dim Line3
Dim Matches
Dim LineNum1:LineNum1=0
Dim LineNum2:LineNum2=0
Dim Lines1:Lines1=Array()
Dim Lines2:Lines2=Array()
Dim k,m
Dim border
Dim width
width="125mm"     'A4横
'width="190mm"     'A3横

Dim re1
Set re1=New RegExp
re1.Pattern="^-- (.*) : (.*) -- .* : .* -- "
Rem -- FileName1 : FileName2 -- .\a.txt : .\b.txt -- includes identical,left-only,right-only, lines

Dim re2
Set re2=New RegExp
re2.Pattern="^  (.*)$"

Dim re3
Set re3=New RegExp
re3.Pattern="^ <! (.*)$"

Dim re4
Set re4=New RegExp
re4.Pattern="^ !> (.*)$"

Dim re5
Set re5=New RegExp
re5.Pattern="^-- (.*) lines listed$"

Set File3=fso.OpenTextFile(FileName3)

StdOut.WriteLine "<html><head>"
StdOut.WriteLine "<meta http-equiv=Content-Type content=""text/html; charset=shift_jis"">"
StdOut.WriteLine "<style><!--"
StdOut.WriteLine ".border_top{border-top:.5pt solid black;border-left:.5pt solid black;border-right:.5pt solid black;border-bottom:none;}"
StdOut.WriteLine ".border_middle{border-top:none;border-left:.5pt solid black;border-right:.5pt solid black;border-bottom:none;}"
StdOut.WriteLine ".border_bottom{border-top:none;border-left:.5pt solid black;border-right:.5pt solid black;border-bottom:.5pt solid black;}"
StdOut.WriteLine ".border_both{border-top:.5pt solid black;border-left:.5pt solid black;border-right:.5pt solid black;border-bottom:.5pt solid black;}"
StdOut.WriteLine ".border_none{border:none;}"
StdOut.WriteLine ".border_top_2{width:"&width&";word-wrap:break-word;border-top:.5pt solid black;border-left:.5pt solid black;border-right:.5pt solid black;border-bottom:none;}"
StdOut.WriteLine ".border_middle_2{width:"&width&";word-wrap:break-word;border-top:none;border-left:.5pt solid black;border-right:.5pt solid black;border-bottom:none;}"
StdOut.WriteLine ".border_bottom_2{width:"&width&";word-wrap:break-word;border-top:none;border-left:.5pt solid black;border-right:.5pt solid black;border-bottom:.5pt solid black;}"
StdOut.WriteLine ".border_both_2{width:"&width&";word-wrap:break-word;border-top:.5pt solid black;border-left:.5pt solid black;border-right:.5pt solid black;border-bottom:.5pt solid black;}"
StdOut.WriteLine ".border_none_2{width:"&width&";word-wrap:break-word;border:none;}"
StdOut.WriteLine "--></style></head><body><table border>"

Line3=File3.ReadLine
Set Matches=re1.Execute(Line3)
FileName1=Matches.Item(0).SubMatches.Item(0)
FileName2=Matches.Item(0).SubMatches.Item(1)
'MsgBox FileName1
'MsgBox FileName2
StdOut.WriteLine "<tr bordercolor=black><td></td><td class=border_both_2>"&FileName1&"</td><td></td><td class=border_both_2>"&FileName2&"</td></tr>"

Do While Not File3.AtEndOfStream
 Line3=File3.ReadLine
 If re3.Test(Line3) Then
  Set Matches=re3.Execute(Line3)
  Line1=Matches.Item(0).SubMatches.Item(0)
  ReDim Preserve Lines1(UBound(Lines1)+1)
  Lines1(UBound(Lines1))=Line1
 ElseIf re4.Test(Line3) Then
  Set Matches=re4.Execute(Line3)
  Line1=Matches.Item(0).SubMatches.Item(0)
  ReDim Preserve Lines2(UBound(Lines2)+1)
  Lines2(UBound(Lines2))=Line1
 ElseIf re2.Test(Line3) Then
  Set Matches=re2.Execute(Line3)
  Line1=Matches.Item(0).SubMatches.Item(0)
'  MsgBox Line3
  m=UBound(Lines1)
  If m<UBound(Lines2) Then m=UBound(Lines2)
  For k=0 To m
   If k=0 Then
    If k=m Then
     border="class=border_both"
    Else
     border="class=border_top"
    End If
   Else
    If k=m Then
     border="class=border_bottom"
    Else
     border="class=border_middle"
    End If
   End If
   If k<=UBound(Lines1) And k<=UBound(Lines2) Then
    LineNum1=LineNum1+1
    LineNum2=LineNum2+1
    StdOut.WriteLine "<tr><td "&border&">"&LineNum1&"</td><td "&border&"_2>"&text2html(Lines1(k))&"</td><td "&border&">"&LineNum2&"</td><td "&border&"_2>"&text2html(Lines2(k))&"</td></tr>"
   ElseIf k<=UBound(Lines1) Then
    LineNum1=LineNum1+1
    StdOut.WriteLine "<tr><td "&border&">"&LineNum1&"</td><td "&border&"_2>"&text2html(Lines1(k))&"</td><td "&border&">&nbsp;</td><td "&border&"_2>&nbsp;</td></tr>"
   Else
    LineNum2=LineNum2+1
    StdOut.WriteLine "<tr><td "&border&">&nbsp;</td><td "&border&"_2>&nbsp;</td><td "&border&">"&LineNum2&"</td><td "&border&"_2>"&text2html(Lines2(k))&"</td></tr>"
   End If
  Next
  Lines1=Array()
  Lines2=Array()

  LineNum1=LineNum1+1
  LineNum2=LineNum2+1
  border="class=border_none"
  StdOut.WriteLine "<tr><td "&border&">"&LineNum1&"</td><td "&border&"_2>"&text2html(Line1)&"</td><td "&border&">"&LineNum2&"</td><td "&border&"_2>"&text2html(Line1)&"</td></tr>"
 ElseIf re5.Test(Line3) Then
  Set Matches=re5.Execute(Line3)
  Line1=Matches.Item(0).SubMatches.Item(0)
'  MsgBox "! " & Line3
 Else
  MsgBox "? " & Line3
 End If
Loop
StdOut.WriteLine "</table></body></html>"
End Sub

Function text2html(ByVal Text)
Text=Replace(Text,"&","&amp;")
Text=Replace(Text,">","&gt;")
Text=Replace(Text,"<","&lt;")
Text=Replace(Text,"""","&quot;")
Text=Replace(Text," ","&nbsp;")
If Text="" Then Text="&nbsp;"
text2html=Text
End Function
――――――――――――――――――――――――――――――――――――――
今回は、相違箇所をブロックで枠囲みしました。


ばんのしゃーによかばんた さん 2005年 10月 07日 14時 38分 07秒

ごみ箱にごみが溜まると、ごみ箱フォルダが異常に遅くなります。
一覧するまで線形(一次式)で遅くなるのは、まだ理解できますが、
一覧してからでも、ちょっとスクロールしただけで、すぐ「(応答なし)」
になります。これはちょっと使い物にならない遅さです。
この遅さから察すると、非線形(二次式)の処理があるに違いありません。
これは性能設計ミス/性能障害です。

回避策として、同じファイル名で、最新n代以前を削除するスクリプトを
作ろうかと考えています。
過去記事のNotePad.VBSのせいで、同名ファイルが急増してるんです。


ばんのしゃーによかばんた さん 2005年 10月 07日 14時 37分 51秒

さらに、この「Webページ、完全」は、.filesをリネームしようとすると、
.htmとの関係が切れるから、.htmを保存し直せ、という警告を出します。
そして、言うとおりにすると、今度は、なぜかエラーになります。
---------------------------
Web ページの保存エラー
---------------------------
選択した場所に Web ページを保存できませんでした。
---------------------------

「Webページ、HTMLのみ」でだけ、保存し直せますが、今度は、
「Mark of the Web」行の改行が消えて無効になります。

どうも「Webページ、完全」と「Mark of the Web」周りは障害だらけのようです。

ばんのしゃーによかばんたの第三?法則に、(今まで幾つ言ったかな?+1)
筋の悪い仕様からは、障害をなくすことはできない。
というのがあります。

なので、やっぱり、この二つの仕様は廃止したほうがよいのではありますまいか。


ばんのしゃーによかばんた さん 2005年 10月 07日 14時 37分 29秒

>門外漢 さん 2005年 10月 05日 20時 54分 11秒
>IEとエンジンを共有しているOutlookやOutlookExpressでは
>Mark of the web のついた受信HTMLメールに
><!--saved from url=(0022)http://internet.e-mail -->
>がさらに付加されます。
>この結果、制限付きサイトゾーンで処理されます。
>Mark of the web を送りつけられても大丈夫のようです。

一応、安心なようですね。

ところで、
|<!-- saved from url=(0022)http://internet.e-mail -->
は、普通に付けると、インターネットゾーンになりますけど、
これでいいんでしょうか。

自分がわざわざ付加したMark of the webに関係なく、
制限付きサイトゾーンで処理させているのかも知れませんが。

どうせなら、
|汎用制限付きサイトゾーン
|<!-- saved from url=(0007)http:// -->
を付加したほうがよいのではないかな。

念のため、http://internet.e-mailを制限付きサイトに
登録しておいたほうがよいのかも。


うに さん (null) 2005年 10月 07日 11時 40分 19秒
URL:null

>管理人むたぐち さん 2005年 10月 06日 09時 20分 56秒
>To: うに さん
>> cd(チェンジディレクトリ)
>C\home\script.vbs中で、
>WshShell.CurrentDirectory="C:\Test1"
>WshShell.Exec "cscript no1.vbs"
>WshShell.Exec "cscript no2.vbs"
>WshShell.Exec "cscript no3.vbs"
>のようにすればいいと思います

ありがとうございます。
CurrentDirectoryで指定すれば良かったのですね。
せっかく教えていただいたのですが、
batファイルを使ってcdさせて対応してしまいました。
次回参考にさせていただきます。

ばんのしゃーによかばんた さん 2005年 10月 06日 15時 00分 41秒

補足です。

>ばんのしゃーによかばんた さん 2005年 10月 01日 17時 03分 47秒
>ところで、この「Webページ、完全」は、本体ファイルを操作すると、
>.filesが勝手に消され、ごみ箱にもなく、復元も出来ず、悲惨なことに。
>これは立派(?)なデータ破壊「障害」です。:-<

これも「筋」の悪い「仕様」です。
じゃー、どうする?なんでも反対野党でなく対案を示せ。と言われそう。

ほげほげ.htm

ほげほげ.files    
に関連を持たせようするから変になる。大変になる。
ほげほげ.htmの中にほげほげ.filesへのリンクがあるので、
ほげほげの名前を変えようとしたら、もう大変。
ほげほげ.htmの中を全部書き換える必要がある。

ほげほげ.htm.url

ほげほげ\
を作って、ほげほげ\ほげほげ.htmを指すようにする。

>ばんのしゃーによかばんた さん 2005年 10月 03日 14時 57分 46秒
>それにしても、なんでこんな機能を作ったのか。
>セキュリティチームは何をしているのか。。。

これは、Webページ内の記述に依存して、セキィリティゾーンを決める、
という「仕様」を「変」と思わない設計センスを問題にしているのです。
それと、仕様が文書化されてチェックを受けるシステムになっていない、
或いは機能してない、ということもです。

>ばんのしゃーによかばんた さん 2005年 10月 04日 17時 11分 45秒
>それにしても、ZoneIDの2が効かないのは、なんでだろう。
>それに、ZoneIDを優先させないのは、なんでだろう。
>この仕様には(にも?)どうにも納得が行きません。

Webページ内の記述に依存して、セキィリティゾーンを決める、のは危険ですが、
IEが決定したセキュリティゾーンを記録したNTFSストリームのZoneIDを
信用することはそれなりに妥当です。
このふたつを同列に扱うなんて信じられない。
即刻、Mark Of the Webの制御は廃止して、ZoneIDだけにすべきです。

しかし、ZoneIDのほうも機能不足です。
ZoneIDだけでなく、URLもNTFSストリームに記録すべきです。
表示、操作機能も充実すべきです。アイコンも変える。ポップアップにも出す。
IEで開いてみないと分からないというのでは全然駄目です。

でもやっぱりお勧めはフォルダかな。
上の「ほげほげ\」にセキュリティゾーンのプロパティを付ける、
というのはどうでしょう。


ばんのしゃーによかばんた さん 2005年 10月 06日 15時 00分 28秒

>ばんのしゃーによかばんた さん 2005年 10月 03日 14時 57分 46秒
>手っ取り早く、IEのMark of the Webによるゾーン制御を無効にする
>方法はないのでしょうか?それが一番よいように思うのですが。

INTERNETFEATURELIST Enumerated Type
FEATURE_UNC_SAVEDFILECHECK
Evaluate the "saved from url" information for files on a Universal Naming Convention (UNC) share. This feature increases security on UNC paths but at a performance cost.

というのがあって、
CoInternetSetFeatureEnabled Function
で設定できるようですが、これはちょっと違うみたいですね。

>ないのなら早く作ってほしい。

無効に出来ないとイントラネットゾーンは危なくて使えない。


ばんのしゃーによかばんた さん 2005年 10月 06日 15時 00分 08秒

>ばんのしゃーによかばんた さん 2005年 10月 01日 17時 03分 47秒
>信頼済みサイト(中)から、「Webページ、完全」で保存しても、開くと
>「インターネットゾーン」(高)になって、うまく表示されません。:-<

3rd Partyの信頼済みサイトは、この「仕様」でもいいのかもしれません。
保存したページを表示する範囲でスクリプトを使うことは少ないのでは。

ところが、例えば、MSDNサブスクライバのサイトはスクリプトオフだと、
「このサイトでは Javascript が使用されています。
ブラウザで Javascript を有効にしてから、
ページを最新の状態に更新してください。 」
と出るだけで、何も見せてくれません。

ページの中身をstyle="DISPLAY: none"で、隠しておいて、スクリプトで
document.all.divPageContent.style.display = "block";
とやってるんです。

つまり、IEの「仕様」と自社サイトの間で整合が取れてないのです。:-<

こういう困ったページを「インターネットゾーン」のセキュリティレベルを
下げることなく表示するには、どうしたもんでしょう。ほんと困ります。

完全保存したWebページ群から、Mark of the Web行を削除しただけでは、
マイコンピュータゾーンで動きます。そのままではロックダウンで
スクリプトは動きませんが、表示もされません。許可して動かすしかない。
信頼済みなんだから同じなんですが、仕方なく信頼済みにしているだけで、
心底信頼しているわけではないので、抵抗があります。

一般の信頼済みサイトなら、スクリプトでスクリプト類を除去すれば済みますが、
この困ったページはスクリプト類を除去すると表示もされない。
ほんと困ります。手で書き換えるしかないのかな。


管理人むたぐち さん 2005年 10月 06日 09時 20分 56秒

To: うに さん

> cd(チェンジディレクトリ)

C\home\script.vbs中で、
WshShell.CurrentDirectory="C:\Test1"

WshShell.Exec "cscript no1.vbs"
WshShell.Exec "cscript no2.vbs"
WshShell.Exec "cscript no3.vbs"

のようにすればいいと思います。

門外漢 さん 2005年 10月 05日 20時 54分 11秒

>ばんのしゃーによかばんた さん 2005年 10月 04日 17時 11分 25秒
>まさかと思いますが、HTMLメールにイントラネットのMark of the Webが
>埋め込まれていても大丈夫ですよね。

内部表現ではMHTMLとなっていることがひっかかるわけですよね。
IEとエンジンを共有しているOutlookやOutlookExpressでは
Mark of the web のついた受信HTMLメールに
<!--saved from url=(0022)http://internet.e-mail -->
がさらに付加されます。
この結果、制限付きサイトゾーンで処理されます。
Mark of the web を送りつけられても大丈夫のようです。
添付ファイルでも大丈夫です。一種のプロキシみたいに
<!--saved from url=(0022)http://internet.e-mail -->
を付加してくれてしまうようです。

---
>ばんのしゃーによかばんた さん 2005年 10月 03日 14時 57分 46秒

>のように、IE以外のブラウザやダウンローダで、
>ローカルにそのまま取り込み、これを、関連付けなどで、IEで開くと、
>インターネットゾーンやイントラネットゾーンで動くので、
>マイコンピュータゾーンのロックダウンが効きません。

>さすがに信頼済みサイトはやばいと思ったのか、
>対策済みのようですが、
>イントラネットは対策漏れなのではないでしょうか。

ご心配の通りです。既定値の設定では弱いでしょう。
<!-- saved from url=(0009)http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/ -->
というようなMark og the Web ですと、既定設定なら誰のXPSP2でも
イントラネットゾーンになってしまいます。
イントラネットゾーンに保存していなくともです。
これは、9文字しか見ていないからで、
http://ww
までしか判定しないことを意味しています。
これではFDQNになりませんしURLにドットを含みませんので
イントラネットゾーンであると看做されます。
ドットレスなアドレスはIEの場合そういうものだということです。

個人で出来る対策としては
イントラネットゾーンのセキュリティ設定は
少なくとも「中」まで引き上げておくことですね。
イントラネットゾーンを使わない個人ならば
いっそ「高」で構いません。

イントラネットゾーンの設定で
「他のゾーンにないローカル(イントラネット)のサイトを
全て含める」のチェックをオフにしておくことも良いでしょう。
他の2個のオプション、
「プロキシサーバを使用しないサイトを全て含める」
「すべてのネットワークパスを含める」
もオフで良いでしょう。
これでMark of the Web からイントラネットゾーンに
なってしまう可能性がずいぶんと下がるはずです。

この際、イントラネットゾーンの詳細設定画面で明示的に
「URLほげほげはイントラネットゾーンだよ」と
教えてあげるのが良いかと思われます。
ただし、このようにひとたび教えた以上、明示した
イントラネットゾーンのURLを外部の人間が充分に推測可能ならば
依然として弱いことは弱いのです。
イントラ用のウェブアプリなどではクライアントの設定で
充分に気をつけてあげたいところですね。
イントラのサーバの名前などはできればアプリのパラメータに
おいておいて一括で初期化するぐらいが良いと思います。
いつもいつも特定の名前、例、localhost では困りますよね。


めろこ さん (blue_ever_green@ybb.ne.jp) 2005年 10月 05日 17時 53分 13秒

初めまして。いつも参考にさせていただいています。

客先からクライアント端末でショートカットを作成できないように
設定して欲しいとの要望を頂きましたが、色々調べたのですが設定
方法が見つかりませんでした。

WMIを使って制限かけることはできるでしょうか。
ご存知でしたら教えて下さい。

よろしくお願い致します。

管理人むたぐち さん 2005年 10月 04日 20時 34分 55秒

管理人むたぐちです。
実はこのたびMicrosoft 2005 MVP Global Summitという、アメリカ・シアトルにあるMicrosoft本社で行われたMVPの集まりに参加してまいりました。

そこで行われたセッションの内容はNDAのためここでは触れることはできませんが、ツアーの差し支えの無い部分は皆様にもご報告できるかと思います。
まだ書き始めたところですが旅日記を公開します。
http://winscript.mine.nu/mvpsummit2005/

海外のScripting MVPの方々と会って話もさせていただきましたし、Scripting Teamの開発者の方ともお会いできました。
NDAではない部分で仕入れたスクリプト関係の知識もありますので、いずれこの掲示板にフィードバックもさせていただけるかと思います。

英語の壁は厚く、あまり満足なコミュニケーションは取れたとはいえないのですが、日本語ドキュメントの不備等で日本のWindows Scriptorは苦労しているということだけは伝えられたと思います(汗

ばんのしゃーによかばんた さん 2005年 10月 04日 17時 11分 45秒

>ばんのしゃーによかばんた さん 2005年 10月 03日 14時 57分 46秒
>については、Mark of the Webを削除して、マイコンピュータゾーンに
>持って行く必要がありそうで、面倒なことです。
>下手にやると、.filesが消えてしまったりして。

ひょっとして、NTFS StreamのZoneIDで上書き制御できるかも、
と思いましたが、どちらかが優先されるというのではなく、
2を特別扱いして(0,1,3,4)の大きいほうが優先されるようです。
ZoneIDの2は0扱い。Mark of the Webの2は3扱い。

つーことで、面倒は解消されず。

それにしても、ZoneIDの2が効かないのは、なんでだろう。
それに、ZoneIDを優先させないのは、なんでだろう。
この仕様には(にも?)どうにも納得が行きません。

どうせなら、Mark of the WebやZoneIDのようなファイル単位の制御は
もうやめてしまって、フォルダ単位で制御したほうが筋がよいと思います。
唯一、Cookiesフォルダで制限付きサイトゾーンだけは出来ますが、
他のゾーンのフォルダを作る方法はないもんでしょうかね。


ばんのしゃーによかばんた さん 2005年 10月 04日 17時 11分 25秒

>門外漢 さん 2005年 09月 29日 09時 28分 41秒
>2005年現在のXPでは一般にはこの設定はお勧め出来ません。というのは設計上
>もっとも外敵からの作為が行われやすい、OutlookExpressで受信したHTMLメール
>が制限付きサイトゾーンで処理される為です。ここを甘くしてはいけません。

記事の中に、MHTMLファイルでも、Mark of the Webのゾーン制御が
効くようになったという記述がありますね。
まさかと思いますが、HTMLメールにイントラネットのMark of the Webが
埋め込まれていても大丈夫ですよね。


みみ さん 2005年 10月 04日 09時 42分 07秒

>Nomuさん

>> この方法をコマンドラインやVBSCriptで実現することはできないでしょうか?
>> 以下のコードがそれにあたるかな、と試してみたのですが、異なるドメインの端末を指定することはできませんでした。

>実現する方法はわかりません。m(_ _)m
>ただ、実現しなければいけない必然性も文面からはよくわからない。。

>それ以前の投稿では、WMIでは取得できているとのことですし、
>MMCをスナップインとして保存しておけばRunするだけのような。。。

>Scriptで暗黙的に(Silent)でも取れているし、
>GUIでもいけるのだから、どちらかを選べばそれで終わりのような。。

異なるドメインに属しているリモートコンピュータのイベントログが取得したいのですが、対象となる端末が1000台以上あるため、出来たら引数に端末名称を与え、スクリプトを起動させる方法をとろうとしています。
(もし、私がしようとしている方法以外にも何かよい方法があればご教授くdささい。)

なんでGUIでやると他ドメインの端末のイベントログが見えるのにコマンドでやると取れないんだろう・・。

ちゃっぴ さん 2005年 10月 03日 23時 01分 19秒

>> POP before SMTP とか認証が必要なのでしょう。
> これは、どうすることも出来ないのでしょうか?
> それとも、vbsで可能なのでしょうか?

BASP21 は私は使用してませんので、その件に関してはCommentは
控えさせていただきます。
# まあ、私はCDOをもっぱら利用していますので・・・
# とはいえ、BASIC認証くらいはできると思いますが・・・

> プログラム初心者でして、何をどうすればいいのかわからず、
> googlで検索してソースを見つけたしだいであります。

Sourceを見つけたのはいいですが、それを理解してますか?
まずは、わからないところを Reference で調べてみてください。

参考になるところをあげておくので、もうちょっと勉強しましょう。

WMI スクリプト入門 : 第 1 部
http://www.microsoft.com/japan/msdn/columns/scripting/scripting06112002.asp

Windows Management Instrumentation
http://msdn.microsoft.com/library/en-us/wmisdk/wmi/wmi_start_page.asp?frame=true
# 英語なんで地道に勉強してください。

Scriptomatic 2.0 : Readme
http://www.microsoft.com/japan/technet/scriptcenter/tools/scripto2.mspx

スクリプト センター
http://www.microsoft.com/japan/technet/scriptcenter/default.mspx

ばんのしゃーによかばんた さん 2005年 10月 03日 14時 57分 46秒

>ばんのしゃーによかばんた さん 2005年 10月 01日 17時 03分 47秒
>信頼済みサイト(中)から、「Webページ、完全」で保存しても、開くと
>「インターネットゾーン」(高)になって、うまく表示されません。:-<
>工夫が足りないのでしょうか?
>サイトを「イントラネットゾーン」(中)に移すと、こちらはよいようです。

なので、信頼済みサイトより、イントラネットゾーンを使いましょう。
ということでよいのでしょうか?

例えば、http://*.microsoft.comなどを信頼済みサイトや
イントラネットゾーンに指定しているひとが多いと思うのですが、
そういう、よく指定されそうなサイトを、
<!-- saved from url=(00nn)http://msdn.microsoft.com/subscriptions -->
のように埋め込んだページをインターネットに置いておき、

>ちゃっぴ さん 2005年 09月 30日 22時 12分 15秒
>というより、実はIEをそれほど使用していないってのが・・・あ、やめとこ

のように、IE以外のブラウザやダウンローダで、
ローカルにそのまま取り込み、これを、関連付けなどで、IEで開くと、
インターネットゾーンやイントラネットゾーンで動くので、
マイコンピュータゾーンのロックダウンが効きません。

さすがに信頼済みサイトはやばいと思ったのか、対策済みのようですが、
イントラネットは対策漏れなのではないでしょうか。

もし、そうなら、イントラネットゾーンは使わないほうがよさそう。

いずれにせよ、
>信頼済みサイト(中)から、「Webページ、完全」で保存しても、開くと
>「インターネットゾーン」(高)になって、うまく表示されません。:
については、Mark of the Webを削除して、マイコンピュータゾーンに
持って行く必要がありそうで、面倒なことです。
下手にやると、.filesが消えてしまったりして。

手っ取り早く、IEのMark of the Webによるゾーン制御を無効にする
方法はないのでしょうか?それが一番よいように思うのですが。
ないのなら早く作ってほしい。

それにしても、なんでこんな機能を作ったのか。
セキィリティチームは何をしているのか。。。


まこ さん (null) 2005年 10月 03日 12時 51分 04秒
URL:null

to ちゃっぴさんへ

>POP before SMTP とか認証が必要なのでしょう。
これは、どうすることも出来ないのでしょうか?
それとも、vbsで可能なのでしょうか?

>WHERE句で限定するのはやめちゃったの?
プログラム初心者でして、何をどうすればいいのかわからず、
googlで検索してソースを見つけたしだいであります。
出来れば、前回のせたソースのほうが手短だし理想だったのですが
ちゃっぴさんの意見を聞いても自分ではどうすることも出来ませんでした。

うに さん (null) 2005年 10月 03日 10時 50分 13秒
URL:null

cd(チェンジディレクトリ)

恐れ入ります。いつもお世話になっています。
またできないことができてしまいました。


\Home\Test1\no1.vbs
      no2.vbs
      no3.vbs
      no4.vbs
   \Test2\no5.vbs
      no6.vbs
        .
        .
        .
       
       
の用な構成になっていて、実行ディレクトリはHomeにしたいと思っています。
まず、execで"cmd /c cd Test1"->"cscript no1.vbs"とやってみたのですが、
「Home\no1.vbsが見つかりません」というエラーがでます。
cdがうまくいっていない感じです。
次にrunをつかって"cmd cd raa01"としてみたのですが、
プロンプトに
\Home>
とでていますので、やはりcdできていない感じです。
やりたいことは、
HomeのなかのTest1,Test2・・・・のなかのvbsを
次々に実行していくと言うことです。
何か方法はありますでしょうか。      

門外漢 さん 2005年 10月 02日 21時 46分 49秒

>ばんのしゃーによかばんた さん 2005年 10月 01日 17時 03分 47秒

>信頼済みサイト(中)から、「Webページ、完全」で保存しても、開くと
>「インターネットゾーン」(高)になって、うまく表示されません。:-<
>工夫が足りないのでしょうか?

当方XPSP2にて動作確認しております。
確かにご指摘の現象は以前からございます。"Mark of the Web"ルールに
反しているように見えます。下記のヘタな日本語訳のMicrosoft社の解説
でも、上記は信頼済みサイトになるべきと読み取れます。
http://www.microsoft.com/japan/technet/prodtechnol/winxppro/maintain/sp2brows.mspx#EHAA

"Mark of the Web"のこの挙動がバグなのかどうかについてはMicrosoft社
の記述を見つけることが出来ません。
しかしながらセキュリティ的には安全な処置とも考えられます。

さらにBUG?(*)があり、ローカルに落としてあるHTMLファイルをIEで
開いただけで信頼済みサイトの権限でスクリプトが作動する例も
発見されています。信頼済みサイトの設定は(中)にしておけば
宜しいかと思います。

*BUGかどうかは不明です。ある意味"Mark of the Web のルール"に
従っていますので。

ちゃっぴ さん 2005年 10月 02日 07時 22分 11秒

To まこ さん (null) 2005年 10月 01日 11時 19分 46秒

> しかし、なぜか、メールを送信するときとしないときがあり不安定です。
> これは何が原因なのでしょう?
> まったく同じソースなのにいじってないのに。送信しないときがあります。
> で、メーラーで一度、通常通り送受信した後は、必ず
> 送信されます。なんなのでしょう?

POP before SMTP とか認証が必要なのでしょう。

WHERE句で限定するのはやめちゃったの?

ばんのしゃーによかばんた さん 2005年 10月 01日 17時 04分 05秒

Explorer.EXEにも、二重起動抑止機能があったんですね。
例えば、

Set wShell=CreateObject("WScript.Shell")
wShell.Run "Explorer.EXE c:\",0
msgbox 1
wShell.Run "Explorer.EXE c:\",1
msgbox 2
wShell.Run "Explorer.EXE c:\",2
msgbox 3
wShell.Run "Explorer.EXE c:\",3
msgbox 4
wShell.Run "Explorer.EXE c:\",4
msgbox 5
wShell.Run "Explorer.EXE c:\",5
msgbox 6
wShell.Run "Explorer.EXE c:\",6
msgbox 7
wShell.Run "Explorer.EXE c:\",7
msgbox 8
wShell.Run "Explorer.EXE c:\",8
msgbox 9
wShell.Run "Explorer.EXE c:\",9
msgbox 10
wShell.Run "Explorer.EXE c:\",10

ごみ箱を二つ開こうとして嵌りました。

しかし、
wShell.Run "Explorer.EXE /root,::{645FF040-5081-101B-9F08-00AA002F954E}"
wShell.Run "Explorer.EXE /root,,::{645FF040-5081-101B-9F08-00AA002F954E}"
は何故かしら別扱いになるようです。
このシンタクスのセマンティクスは何でしょう?


Return