一行野郎1

--------------------- [番外1] 一行野郎(いったいどこまで?) --------------------------


はじまり、はじまり~。


<ヤッホ~! スクリプト書いてますかぁ?>
また五月蝿いのが舞い戻ってきた・・・

<失礼ね。あんたがクタバッテないか様子を見に来てあげたのよ>
タメ口に戻ってるし、まあ心配してくれてるのはありがたい。

<ダメじゃない?ほとんど書いてないし、答えてないじゃない?>
そろそろ潮時だね。今まで散々出張ってきたし、元々ガラじゃなかったからね。

<腕が鈍ったんじゃない?>
まあ何とでも言って!

<じゃあコレ! コレに答えて見なさいよ>
あの、そんな思いつきで言われても・・・
「任意のサイズのファイル作成」?? またぁ~コレって管理者がらみのややこしいヤツをぉ

<ちょっと目を離すとサボるんだから。つべこべ言わずにサッサとやるの!>
へい。ならちょっとだけ~ なるほどねぇ。前例なし、ややこしさMAX、パスだなこりゃ。

<どうして? ドスコマンド&ファイル関連でアンタの得意分野じゃない?>
気軽に言ってくれるね。管理者権限がらみは今だグレーゾーンだし。

<どうゆう事?>
権限を厳しくしすぎると、使いづらいし、甘いとセキュリティに問題が出る。
その為。OSごとにコロコロ扱いが変わってくる。しかもdos窓。

<で、スクリプトは?>
結論速っ! まあ落ち着け。 この手の内容は良く調べた上でUWSCの特徴を最大限に生かさないと
通常よりダラダラと長いものになってしまう。

<確かに。コマンドの貼り付けで手こずってますね。doscmdでいきなりはダメなの?>
それだと、管理者の実行にならないね。

<そっかあ。じゃあどうするの?>
いくつか方法はあるものの、多分一度dos窓を起動して、runasでパスワードを入れ管理者権限に移行、
さらにdos窓を起動してからコマンド実行だね。もちろん終わったら窓を閉じるよ。

<メンドクサ! ダラダラ長くなるわけだ>
だね。通常だとこの数倍に膨れ上がるし、無駄な待ち時間も発生する。

<そうね単純に2倍+パスワード入力で約3倍?いや窓を閉じや待ち時間で4倍くらい?>
だね。まあ20行程度なら良いほうでしょう。

<アンタなら詰め込むから10行くらいかな? サッサと見せてよ>
は~い。

// ドメイン/コンピュータ名:dadomain, ユーザー名:administrator, パスワード:pass の例


sckey(exec("cmd.exe /C runas /user:dadomainadministrator <#dbl>cmd.exe /C fsutil file createnew c:testfile2 1000<#dbl>"), p, a, s, s, vk_return)


<?? んっ? ナニコレ? まさか一行?>
うん♪

<冗談でしょ? 実行してみてよ>
ほ~い。ホチっとな

<速ッ!、 メッチャ速ッ! しかも、ちゃんと窓が2度開いて閉じてる。 ファイルも作成できて完璧じゃない!>
<ほえっ? 絵~~~~~~~~~~~~~~~~~~~~~!! コレだけ出来てなんとお値段・・いや、たったの一行をう!! おっ落ち着けアタシ!>
<マジで一行で終わり? 信じらんない!! こっ、こんな事が起こるなんて・・・短いにも程がある!! アンタいったい何者?>

Liners(一行野郎)ドス。

<いったいコイツは一行でどこまで書けるの? 不可能が可能に思えてくる・・・不思議だわ。それにしてもなんてヤツなの!>
<呆気に取られている場合じゃないわ。シッカリ解説してもらうからね!>

一行の解説って・・・まあいいか、久しぶりだし、これ以上やかましいのはごめんだ。
全体としてはsckeyとexecの単純な組み合わせだ。

<でもコレって途中でパスワード入力あるわよね。 コマンドが終わらないのに入力出来るのって変じゃない?>
通常ならそうだが、execはデフォルトでアプリの終了を待たない。でもコマンドラインはその後も続行される。(cmdは独立で動く)

つまり,都合よく入力されるワケ。だからこの行の後は、少し待ち時間を置いたほうが良いかも。
しかも /C オプションでコマンドが実行された後は自動で閉じる。

パスワードの方もexecで得たidで一文字づつ送ることで、面倒なDOS窓でもOKさ。

<うっう、、し、知ってたわよそのくらい。見ればわかるじゃん。>
<UWSCとDOSの特徴を活かしつつ、実際の質問内容全てを一行に収めるとは・・・>

まる聞こえだよ。 私にとっては普通だから一々驚かないでね♪

<驚いてなんかいないわよ! ビックリしたけど。>
オイっ!

 

おしまい。

 

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

提供は: 一行野郎 = Liners でした。

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

  任意のサイズのファイル作成 わかば  
 お世話になります。

下記コードで任意のサイズのファイルを作成したいのですが、以下2点がわからないので教えてください。

①SCKEYでコマンドを送ることができていません
②コマンドプロンプトを管理者権限で実行する方法

doscmd("start <#dbl>コマンド プロンプト<#dbl> " ,0,1)
id = GETID("コマンド プロンプト")
ScKey(id,"fsutil file createnew p:testfile2 1000")
DATE:2010/10/1(Fri) 22:34 No.3249  
 
 Re:任意のサイズのファイル作成 わかば  
 
 自己レスです。
下記コードでコマンドを送ることができました。

SendStr(0,"fsutil file createnew p:testfile2 1000")
doscmd("start <#dbl>コマンド プロンプト<#dbl> " ,0,1)
id = GETID("コマンド プロンプト")
SCKEY(id, VK_ALT, VK_SPACE, E, P)
SCKEY(id, VK_return)

②コマンドプロンプトを管理者権限で実行する方法
をご教授ください。
よろしくお願いします。
DATE:2010/10/2(Sat) 16:49  
 
 RE:任意のサイズのファイル作成 Liners  
 
 >コマンドプロンプトを管理者権限で実行する方法
①右クリックで管理者/別のユーザーとして実行(OSにより名称が異なる)
②ショートカットのプロパティで管理者/別の資格者のチェックを入れる(OSにより名称が異なる)
③runas コマンドを使う(タイトルが変わる[OSにより異なる])
DATE:2010/10/3(Sun) 02:47