• ベストアンサー
  • すぐに回答を!

VBS runas実行時のパスワードを隠す方法について

VBS runas実行時のパスワードを隠す方法について こんにちわ! いつもお世話になっております。 VBSでIPアドレスを変更するスクリプト(netshコマンドを実行する)を作成しました。 このコマンドを実行するためには管理者権限が必要なため、runasコマンド+SendKeys にて、自動的にパスワードを入力して実行するような形になっております。(下記) -----・-----・-----・-----・-----・-----・-----・-----・-----・-----・----- shshell.Run "cmd.exe", 0 WshShell.Run "runas /user:%computername%\administrator ""コマンド""" WshShell.SendKeys("{Enter}") WScript.Sleep(1500) WshShell.AppActivate "C:\Windows\System32\runas.exe" WshShell.SendKeys("パスワード") WshShell.SendKeys("{Enter}") -----・-----・-----・-----・-----・-----・-----・-----・-----・-----・----- [質問] このスクリプトのパスワードの部分を隠すまたは暗号化する方法を教えてください。 [背景] このスクリプトを作成者と使用者が違います。作成者は、管理者のパスワードを 把握していますが、使用者には管理者権限のパスワードを知られたくありません。 つまり、スクリプトを見れば分かってしまうという状況は避けたいのです。 [調査状況] ・ネットワーク上にパスワードを格納したテキスト等を置いておき、それを  読み取る。⇒これは、今回実行するスクリプトがIPアドレスを変更するもの  であるため、ネットワーク上の端末から情報を得ることができません。 ・タスクに登録する。⇒タスクに登録するために使用者のコンピュータ上に  スクリプトをおく必要があるため、これも不可です。 ・スクリプト自体を暗号化する。⇒最終手段として考えてはいますが、できれば  スクリプト内で処理を行いたいというのが現状です。(監督者の要望のため) [実行環境] ・Windows7 皆様、お忙しいとは思いますが、ご教授いただけると助かります。 以上 よろしくお願い致します。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数15935
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • nda23
  • ベストアンサー率55% (773/1384)

スクリプトエンコーダを使い、VBSにスクランブルをかけられます。 下記からダウンロードできます。 http://www.microsoft.com/downloads/details.aspx?FamilyID=2976ee94-bec5-4314-84fd-8d7ec891c1c5&displaylang=ja

共感・感謝の気持ちを伝えよう!

質問者からのお礼

返信が遅くなり申し訳ありません。 ご回答ありがとうございます。 暗号化をすることができました。 お分かりになれば、下記についてご回答下さい。 一部分を暗号化したい場合は、その部分を抜き出し、Callすれば 良いようですが、1つのVBS上で処理をさせるというのは、難しいのでしょうか。 以上 よろしくお願い致します。

関連するQ&A

  • VBSのsendkeysで日本語を出力したいです

    WshShell.Run "explorer" WScript.Sleep 100 WshShell.AppActivate "explorer" WScript.Sleep 100 WshShell.SendKeys "C:\Users\Default\" WScript.Sleep 100 WshShell.SendKeys "デスクトップ" WScript.Sleep 100 WshShell.SendKeys "{ENTER}" WScript.Sleep 100 *.VBS ファイルに書き込んで、直接実行したいのですが、エラーになります。 どんなコマンドを足すといいのですか?

  • JP1からvbs(PSExec)が起動できない

    突然失礼します。 以下のサーバーAにあるvbsを、JP1から起動しようとしていますが、うまく起動しないので、もし原因が分かる方がいたら、ご教授願いたいです。 起動しようとしているサーバーAの「test.vbs」は、簡単に言うと、PsExecを利用して、サーバーBの「hoge.bat」を実行する内容です。 ***test.vbs*** Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "PsExec.exe サーバーBIPアドレス -u 実行ユーザ -p 実行ユーザーパスワード cmd" WshShell.AppActivate "cmd " WScript.Sleep 3000 WshShell.SendKeys "cd C:\" WshShell.SendKeys "{enter}" WshShell.SendKeys "hoge.bat" WshShell.SendKeys "{enter}" WScript.Sleep 10000 WshShell.AppActivate "cmd" WshShell.SendKeys "exit" WshShell.SendKeys "{enter}" ************************ 上記バッチを手動で実行するとうまくいくのですが、 JP1で起動しようとすると、うまくいきません。 そもそもPsExecが実行出来ていないかも。。。。 宜しくお願いします。

  • net useで接続したファイルをrunasでxcopyできない

    こんにちは。VBScriptに関する質問です。 net useで接続した先のファイルをローカルの同名ファイルに 管理者権限で(runasを使用)xcopyを利用してコピーしたいのですが ネットワークに接続はされるのですが、コピーができません。 ちなみに、ローカルからローカルでは成功しています。 ※下記のバッチを流した場合にエラーはでません。 ※ローカルからの変更点は、Call文を利用してる2行を追加したのと  xcopyの送り先をnet useで接続した先に変えただけです。 ※DOSコマンドで行った場合は成功しています。 環境:Windows XP and Windows 2000 Set WshShell = Wscript.CreateObject("WScript.Shell") Call WshShell.Run("net use l: \\DDD\** /user:DDD\[ログオンID] [ログオンPW]") Set WshEnv = WshShell.Environment("user") WshEnv("C:\TEST\b.txt") = "USER01" Wshshell.Run("cmd.exe") WScript.Sleep(500) WshShell.SendKeys("runas /user:USER01 " + chr(34) + "xcopy l:\TEST\b.txt C:\TEST\b.txt /Y" + chr(34)) WshShell.SendKeys("{Enter}") WScript.Sleep(500) WshShell.AppActivate "C:\WINDOWS\system32\runas.exe" WshShell.SendKeys("XXXXXX") WshShell.SendKeys("{Enter}") Call WshShell.Run("net use l: /delete /Y") WshShell.SendKeys("exit") WshShell.SendKeys("{Enter}")  手詰まりになってしまい、困っています。 どなたか、お力添えをいただけると助かります。 よろしく、お願いいたします。

その他の回答 (1)

  • 回答No.2
  • nda23
  • ベストアンサー率55% (773/1384)

部分的にスクランブル化することはできません。 >ネットワーク上のファイルを参照できない IPアドレスを変更する前なら参照できるのでは? それともローカルインストールして使うのですか? いずれにしても、自身の絶対パスは参照できるので、 同じフォルダにパスワードをSendKeyするだけの スクリプトを暗号化して配置し、これをRunで実行 する等の方法は可能ではないでしょうか。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • Runasの指定について

    お世話になります、runasの使用時にパスの指定の仕方について教えてください。 以下のようにパスを指定し、Runas後にスクリプトを実行しようとしていますが、objexeccmdの部分で引っかかってしまい、先に進むことが出来ません。 お手数ですが、よろしくお願いいたします。 objExecCmd = \"runas /user:Bunseki \\\"cscript.exe \\\\server\\\\log.wsf\" \'実行パスを記入 Set WshShell = WScript.CreateObject(\"WScript.Shell\") WshShell.run objExecCmd, 1, true

  • VBScript

    下記、プログラムを実行すると、コマンドプロンプトの画面が 消えずに、そのまま残ってしまいます。 どうしたら、画面を消すことができるでしょうか。 お力添えをお願いいたします。 Set WshShell = Wscript.CreateObject("WScript.Shell") Set WshEnv = WshShell.Environment("user") WshEnv("C:\NET\aaa.txt") = "administrator" Wshshell.Run("cmd.exe") WScript.Sleep(500) WshShell.SendKeys("runas /user:administrator " + chr(34) + "xcopy D:\NET\aaa.txt C:\NET\aaa.txt" + chr(34)) WshShell.SendKeys("{Enter}") WScript.Sleep(500) WshShell.AppActivate "C:\WINDOWS\system32\runas.exe" WshShell.SendKeys("XXXXX") WshShell.SendKeys("{Enter}") WScript.Sleep(500)

  • VBSについて

    VBSの中でDOSのコマンドを実行したいのですが、VBS内で使用した変数を Runで使うことはできないのでしょうか? ################################################ Set WSHShell = CreateObject("WScript.Shell") x = "C:\Documents and Settings\user" WSHShell.Run "cmd.exe /K dir x" ################################################ たとえば上記のようなプログラムを作ったときに最終行のcmd.exeの 実行で変数xを使用したいのですが、可能でしょうか? このまま実行するとコマンドプロンプトの窓が開いて「ファイルが見つかりません」と表示されてしまいます。 何か方法があればご教授ください。よろしくお願いします。

  • win7 管理者として実行とrunas

    コンテキストメニューの管理者として実行は,runas で同じことができますか? 私のアカウントは管理者権限付きで,管理者として実行だとパスワードなしで昇格できますが,runas で /user:自分だと,パスワードを聞かれた上,昇格できません./user:administrator ではもちろんパスワードを聞かれます./turstlevel かとも思ったのですが /showtrustlevels では 0x20000 しか出てこず,管理者レベルである 0x30000 しても >runas /trustlevel:0x30000 cmd RUNAS ERROR: Unable to run - cmd 1168: Element not found. となります.

  • VBSでバッチを実行できません。

    C:\temp\test.batをVBSで実行しようとするのですが、 何度やっても実行されません。 想像ですが、c:\WINNT\System32\cmd.exeが動いている ようなのですが、肝心のC:\temp\test.batが動きません。 以下のように記述しました。 Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run ("cmd /c c:\temp\test,0,True") WIN2K、IE6.0の環境です。 どこか記述に誤りでもあるのでしょうか? どうぞよろしくお願いいたします。

  • バッチファイルファイル→VBS→エクセル マクロを有効にして起動

    Win/XP エクセル2002使用です。 VBSからエクセルのマクロを有効にして立ち上げたいのですが、 上手くいきません。 バッチファイル側  cd /D c:\  C:\***.vbs  exit /B VBS側 'エクセル起動  Set WshShell = CreateObject("WScript.Shell")  WshShell.CurrentDirectory = "C:\***"  WshShell.Run "C:\***\***.xls",3  WScript.Sleep(5000)  WshShell.SendKeys("E") '←マクロを有効にする  WScript.Sleep(5000)  WshShell.SendKeys("U") '←データソースへのリンクを更新 エクセル側(マクロ)  Sub Auto_open()   Application.OnTime TimeValue("13:00:00"), "Action"  End Sub  Sub Action()    ・・・(省略)・・・  End Sub ----------------------------- また、エクセルマクロは、VBSではなく手動で立ち上げますと、 問題なく時間になった時(13時)に作動します。 VBSのRunメソッドが、 エクセルマクロの Application.OnTime を待たずに走ってしまうことで、 エクセルマクロが無効になってしまっているのではないか? もしくは、データ更新のための sendkey("U")によって マクロが無効になってしまっているのはないか? と思っています。 恐れ入りますが、 よろしくアドバイスの程お願いします。

  • ASPからサーバー上のVBSファイルを引数付で実行したい

    お世話になっております。 ASPで指定名称のフォルダを作成しアクセス権を割り当てる サイトを作成しております。 フォルダの作成は問題なく作成できましたが、アクセス権の指定がうまくいかず困っております。 アドバイスいただければ幸いです。 前提として作成したフォルダへのアクセス権割り当ては、MSで公開しているxcacls.vbsファイルを利用してます。 http://support.microsoft.com/kb/825751/ja このVBSファイルに先に作成したフォルダのネットワークパス・アクセス権を与えるユーザー名・与える権限レベルを引数として与えASPのサーバー上で実行し処理を完結しようと考えております。 ------------------スクリプト抜粋---------------------- Set WSHShell = CreateObject("WScript.Shell") 'xcacls.vbsを実行 'strPathNm = "xcacls.vbs \\fileServer\testfol /G Domain\User:M /f /t /e /q" Call WSHShell.Run(strPathNm, 0, false) -------------------------------------------------------- サーバー上でコマンドプロンプトから実行する限りは問題なく 処理されてます。 ASPサイトから実行した場合は特にエラーなど表示されず処理終了しますが、アクセス権の割り当てはされません。 また実行時にサーバー上で実行されたかタスクマネージャーにて確認してますが、起動された形跡がありません。 ちなみにスクリプトの問題かと思い、「strPathNm」の編集への代入を、メモ帳や電卓に変更したところ正常に起動しております。 ※xcacls.vbsはサーバー上でパス通してあります。 以上よろしくお願いいたします。

  • vbsなどを利用して、Administratorのパスワードを変更させ

    vbsなどを利用して、Administratorのパスワードを変更させる方法はありますでしょうか? 100台ほどのPCのAdministratorのパスワードを一斉に書き換えたいと考えております。 AdministratorsにAdministratorとユーザAが存在しており、 ユーザーはUserAでログインしている状況です。 Administratorは管理者しか利用しないのですが、その管理用PWを一斉に書き換えられないかと考えております。 パスワードを変更させるvbsスクリプトを作成し、ユーザーに配布してクリックだけ教えてもらうか、 ログインスクリプトで流そうと考えています。 こういた、ローカルユーザーの書き換えは可能でしょうか? また、vbsを作成した場合、中身を見られないような制限もかける必要があるとおもいます。 この点も含め教えて頂けますでしょうか。

  • VBSのSendKeysでクリックができない

    音声認識アプリケーションからvbsを実行できるのですが、ここで一度だけマウスクリックしたい状況が出てきて困っています。 Dim WSHShell As Object Set WSHShell = CreateObject("Wscript.Shell") WSHShell.AppActivate "操作したいアプリケーション名" WSHShell.SendKeys "{TAB}" 'OK WSHShell.SendKeys "{ENTER}" 'OK WSHShell.SendKeys "{CLICK LEFT, 10, 10}" 'NG TABキーやENTERキーは動作するのですが、3番目のマウスクリックがExceptionといわれエラーになってしまいます。Sendkeysでマウスクリックを送信するにはどうしたらよいのでしょうか?ネットで調べたリファレンスだと上記のような書き方で良さそうなのですが・・・ 音声認識アプリケーションはドラゴンスピーチ11Jで、OSはWin 7 ProとWin 8、どちらも64ビットです。

  • WshShell.Runの使い方(書き方)

    WshShell.Runを使ってスケジュール用の atコマンドを実行させたいのですが "で区切るとダメみたいなのですが どうすれば良いのでしょうか? ダメな記述 WshShell.Run("runas /user:aaa "at 11:11 /every:M,T,W,TH,F,S,Su "c:\\aaa.exe"""); 初歩的な質問ですみません。