You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Classic ASP文件中调用PowerShell脚本并传递参数

Classic ASP 调用PowerShell脚本实现作业文件夹创建方案

核心修改说明

原有代码的VBS调用逻辑是服务端执行的,本身和浏览器兼容性无关,只需替换执行的命令行为PowerShell调用即可兼容所有浏览器。你只需将原有调用CSJobsCreate.vbs的逻辑替换为你的PowerShell脚本调用即可。

修改后完整代码

<script language="vbscript" runat="server">
</script>
<html>
<head>
<title>CSJobs Job Creation Page</title>
</head>
<body>

    <% if Request.Form("foldernumber") = "" then
        Response.Write("<h2>This is a page to create a new Folder</h2>")
       else
        ' 输入合法性校验(防止命令注入,可根据你的作业编号规则调整)
        Dim foldernumber, regEx
        foldernumber = Trim(Request.Form("foldernumber"))
        Set regEx = New RegExp
        regEx.Pattern = "^[a-zA-Z0-9_\-]+$" ' 允许字母、数字、下划线、横杠,可按需调整
        regEx.IgnoreCase = True
        If Not regEx.Test(foldernumber) Then
            Response.Write("非法的作业编号,仅允许字母、数字、下划线和横杠")
        Else
            set objshell = Server.CreateObject("Wscript.Shell")
            ' 替换为你的PowerShell脚本实际路径,-ExecutionPolicy Bypass 临时跳过执行策略限制
            strTemp = "cmd /c powershell.exe -ExecutionPolicy Bypass -NoProfile -File ""C:\APPS\NewJob\CSJobsCreate.ps1"" " & foldernumber
            objshell.Run strTemp, 0, True
            Response.Write(foldernumber & " has been created.")
        End If
       end if
    %>

<Form action="NewJob.asp" METHOD="POST">
<Input name="foldernumber">
<Input Type="submit" value="Create">
</Form>
</body>
</html>

必须配置的前置条件

  • 调整服务器PowerShell执行策略:打开对应位数的PowerShell(和IIS应用池位数一致,32位/64位),执行 Set-ExecutionPolicy RemoteSigned,确认允许执行本地脚本
  • 权限配置:IIS站点对应的应用池运行身份,需要拥有以下权限:
    • PowerShell程序执行权限
    • 你的PowerShell脚本文件的读取权限
    • Isilon共享存储的读写权限,用于创建作业文件夹
  • 脚本路径确认:上述代码中C:\APPS\NewJob\CSJobsCreate.ps1替换为你实际的PowerShell脚本的绝对路径

内容的提问来源于stack exchange,提问作者Srinath_Nair

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 07:27:02