--------------------- [番外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