質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

ASP

ASP(Active Server Pages) あるいはClassic ASP (ASP Classic)は、マイクロソフト社開発した動的なウェブページ製作に利用可能なサーバー側のスプリクトエンジンです。

Q&A

解決済

1回答

3870閲覧

ASP(IIS)からpowershellの呼び出しについて

amada

総合スコア9

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

ASP

ASP(Active Server Pages) あるいはClassic ASP (ASP Classic)は、マイクロソフト社開発した動的なウェブページ製作に利用可能なサーバー側のスプリクトエンジンです。

0グッド

0クリップ

投稿2018/05/27 01:12

編集2018/05/28 02:48

asp(IISを通して) → vbscript(.vbsファイル) → powershell(ps1ファイル)の流れで呼び出すプログラムを作成しています。

aspからvbscriptを呼び出しは正常に行われるのですが、
その後のvbscript → powershellを呼び出す処理が実行されません。

(aspを使わず、vbscript → aspのみの処理は正常に実行されます)

aspからpowershellファイルの呼び出しはできないのでしょうか?

※IISの認証は匿名認証のみ有効になっています
匿名認証で使用するアカウントはドメインの管理者の権限を持っています

■プログラム
[asp]
Set wsh = server.CreateObject("WScript.Shell")
wsh.Run("C:\Windows\System32\cscript.exe ~vbsファイルフルパス~"

[vbs]
Dim wsh
Set wsh = WScript.CreateObject("WScript.Shell")

strCmd = "PowerShell -Command ""Set-ExecutionPolicy Bypass"""
wsh.Run strCmd,1,True

Call wsh.run ("cmd /c powershell -file ~ps1ファイルまでのフルパス~" , 0, True)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。

まず、大前提としてPowerShellに限らずご質問の様な方法はセキュリティ上問題になることが多く、全くお勧めできません。
可能であればやり方を変えることをお勧めします。


その上でご質問の内容について部分的に回答します。
(お勧めできないため全部回答する気はありませんのでご了承ください)

aspからpowershellファイルの呼び出しはできないのでしょうか?

についてですが、"呼び出す"こと自体は可能です。
IISからCGIでない外部のプロセスを呼び出すこと自体はVBScript、PowerShellどちらでも可能です。

ただし、期待した動作をさせるには、環境にも依りますが

  • プロセス実行のためにセキュリティの設定を弱める
  • プロセス実行ユーザーの権限を上げる

といった設定変更が必要になることがほとんどです。
この点についてはこれ以上言及しません。

で、現状VBScriptの起動に成功してPowerShellの起動に失敗している状況に関して

vb

1strCmd = "PowerShell -Command ""Set-ExecutionPolicy Bypass""" 2wsh.Run strCmd,1,True 3 4Call wsh.run ("cmd /c powershell -file ~ps1ファイルまでのフルパス~" , 0, True)

の様に記述されていますが、
これを

vb

1Call wsh.run ("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -File ~ps1ファイルまでのフルパス~" , 0, True)

の様にpowershell.exeをフルパス指定すれば起動すること自体はできると思います。

なお、先述のとおりこれで期待した動作になるかは保証できませんし、これ以上の回答は控えさえて頂きます。

投稿2018/05/30 04:19

stknohg

総合スコア796

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問