ASP.Net 应用程序作为 IIS_USR 执行 powershell 脚本

2024-01-10

我正在构建一个 asp.net mvc 应用程序,它将作为我们编写的许多 powershell 脚本的包装器来运行,以管理日常任务(最终目标是让非技术人员轻松使用这些脚本) 。

我已经设法让脚本很好地执行:

var ctx = System.Web.HttpContext.Current;
var file = ctx.Server.MapPath("~/Content/Powershell/psStoreLive.ps1"); #activate a store
var shell = PowerShell.Create();
shell.AddCommand(file);  
shell.AddArgument(o.DBName);   # which store should we activate
var results = shell.Invoke();  # and then process the results....display output of script

问题在于脚本正在作为 IIS_USR (或类似)执行。

我需要找到一种方法让 IIS 服务器以当前登录用户的身份执行脚本(使用 Windows 身份验证(<authentication mode="Windows" /> ) ).

我见过http://stackoverflow.com/questions/10837377/loginview-and-passing-credentials-to-powershell虽然这看起来可能会奏效,但我对这个想法并不满意。

在我看来,我应该能够使用一些 C# 代码来完成此操作,如上面的代码块中所示,但我无法通过搜索找到任何可以完成此操作的内容。

如何在 C# 中创建一个以登录用户身份执行的 powershell 环境(如果有必要,我什至会重新请求凭据)

Thanks

Edit 1

我已经查看了 PSCredential 对象,这似乎是正确的事情,但我仍然无法弄清楚如何将其插入到整个会话中(有很多关于将其用作 cmdlet 的参数的信息)需要凭证)


我有一个 ASP.NET 站点,需要共享权限才能运行 EXE 和 .BAT 文件。

本示例使用应用程序池和本地帐户,您也可以使用域帐户。

  1. 在服务器上创建本地帐户(使其成为服务器上的管理员)
  2. 授予该帐户对 powershell 脚本所在文件夹的完全权限。
  3. 创建一个新的 IIS 池并将帐户设置为在此新的本地帐户下运行
  4. 在 IIS 中更改您的站点以使用这个新池
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.Net 应用程序作为 IIS_USR 执行 powershell 脚本 的相关文章

  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • powershell 中的展开存档无法提取嵌套文件夹和文件

    我有以下简单的 powershell 将 zip 文件夹 包含其他文件夹和仅日志文件 提取到目的地 FolderPath C Temp Whatever Expand Archive Path FolderPath logs zip Des
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • 使用 LINQ2SQL 在 ASP.NET MVC 中的各种模型存储库之间共享数据上下文

    我的应用程序中有 2 个存储库 每个存储库都有自己的数据上下文对象 最终结果是我尝试将从一个存储库检索到的对象附加到从另一个存储库检索到的对象 这会导致异常 Use 构造函数注入将 DataContext 注入每个存储库 public cl
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 获取两个工作日之间的天数差异

    这听起来很简单 但我不明白其中的意义 那么获取两次之间的天数的最简单方法是什么DayOfWeeks当第一个是起点时 如果下一个工作日较早 则应考虑在下周 The DayOfWeek 枚举 http 20 20 5B1 5D 3a 20htt
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 在 iFrame 内维护会话状态

    不确定我是否疯了 但我在 iFrame 内的会话状态遇到问题 它是一个域在另一个域中的简单设置 我不需要跨域共享任何内容 我想做的就是将一个网站嵌入到另一个网站中 并且我希望该嵌入网站能够使用 cookie 会话状态登录 编辑 更新 等 为
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • SignalR 似乎正在减慢我的 MVC/Azure 应用程序的启动速度

    我有一个 MVC 应用程序在 Windows Azure 上的 WebRole 上的 NET 4 5 下运行 使用 SignalR 1 0 alpha2 并使用 ServiceBus 底板 在我的 App Start 文件夹中 我有 Reg
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • Jquery 验证不能正确验证数字?

    我在使用 jquery 非侵入式验证验证数字时遇到问题 我使用的版本是 ASP NET MVC 3 jQuery 1 9 1 jQuery 用户界面 1 10 1 JQuery 验证 1 11 0 我试图验证的输入是
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • 使用 .NET Process.Start 运行时挂起进程 - 出了什么问题?

    我在 svn exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其执行某些操作 但对于某些输入 它偶尔会重复挂起并且无法完成 例如 一个调用是 svn list svn list http myserver 84 svn Docum

随机推荐

  • 匹配点集的算法

    我有两组点A and B 而点可以是 2D 或 3D 两套尺寸相同n 相当低 5 20 我想知道这些集合的一致性如何 也就是说 理想情况下 我会找到点之间的配对 使得所有欧几里得对距离的总和d A B 是最小的 所以 d A B sum i
  • PhoneGap FileReader/readAsDataURL 不触发回调

    我正在使用 PhoneGap Build 构建 iOS v7 1 应用程序并使用weinre http people apache org pmuellr weinre docs latest 进行调试 我正在使用媒体捕获插件和文件 API
  • 获取中间件中的路由定义

    有谁知道是否可以获取用于触发路线的路径 例如 假设我有这个 app get user id function req res 使用以下简单的中间件 function req res next req 我希望能够得到 user id在中间件中
  • Instagram Streaming API 的 Logstash 输入插件

    我想阅读 Instagram 上的活动 我想知道我是否可以使用 Logstash 来做到这一点 类似于使用 Twitter 输入插件从 Twitter 读取事件 但 Instagram 没有输入插件 还有其他方法可以使用 Logstash
  • Pygame 中自上而下的运动

    如果这个问题之前已经被问过 我很抱歉 但我到处都检查过 但找不到答案 如何在 pygame 中进行自上而下的移动 如果我只使用矩形 这会很容易 但我将使用单个字符精灵 例如 如果我按d为了让玩家向右走 它会向我显示他向右走的角色精灵并将角色
  • Android KitKat 中的 WebView 渲染问题

    我一直在开发一个具有 WebView 的应用程序 其中从资产加载静态页面 也使用 JavaScript 此 WebView 在 KitKat 中不起作用 它保持空白 我知道在 kitkat 的 WebView 中发生的渲染引擎 webkit
  • Azure 存储模拟器无法初始化,并显示“数据库‘AzureStorageEmulatorDb57’不存在”

    我在使用 Azure 存储模拟器时遇到问题 我尝试重新初始化数据库并收到以下错误 这是在安装 Visual Studio 2019 预览版之后发生的 但这可能只是巧合 我尝试了一个小时左右让它运行 然后放弃了 只是使用 保留我的文件 选项重
  • 减少功能如何工作?

    据我了解 reduce 函数需要一个列表l和一个函数f 然后 它调用该函数f列表的前两个元素 然后重复调用该函数f与下一个列表元素和上一个结果 因此 我定义了以下函数 以下函数计算阶乘 def fact n if n 0 or n 1 re
  • 该模型没有从输入中返回损失 - LabSE 错误

    我想使用小队数据集微调 LabSE 以进行问答 我收到这个错误 ValueError The model did not return a loss from the inputs only the following keys last
  • Cassandra Nodejs DataStax 驱动程序不会通过准备好的语句执行返回新添加的列

    在架构中添加一对列后 我想通过以下方式选择它们select 反而select 返回旧的列集并且没有新的列 根据文档推荐 我使用 prepare true 来平滑 JavaScript 浮点数和 Cassandra ints bigints
  • 如何使用温莎城堡实例化基于 web.config 文件的类?

    我正在开发一个 ASP NET MVC 应用程序 我想根据 web config 中编写的设置实例化一个类
  • 如何在 Django 中使用单个查询集选择记录并更新它?

    我如何运行update and select相同的声明queryset而不必执行两个查询 一项选择对象 和一个更新对象 SQL 中的等效内容类似于 update my table set field 1 some value where p
  • 如何使用正则表达式格式化数字[重复]

    这个问题在这里已经有答案了 我遇到了涉及格式化数字的问题 在巴西 我们有一种称为 CPF 的文件 这是每个公民都拥有的一种个人身份证 以下是格式正确的 CPF 号码示例 096 156 487 09 我正在尝试使用正则表达式来格式化包含 C
  • ‘php.exe’不被识别为内部或外部命令、可运行程序或批处理文件

    php exe 不被识别为内部或外部命令 可运行的程序或批处理文件 即使我已将 PHP 添加到环境变量中 为什么仍会出现该错误 我的环境变量PATH如下所示 C Program Files NVIDIA Corporation PhysX
  • 如何在8086汇编中减去两个64位整数

    编写一个名为 SUB64 的程序 用 0x0160 和 0x0164 中的 64 位整数减去内存位置 0x0150 和 0x0154 中的 64 位整数 将结果存储在内存位置 0x0170 和 0x0174 中 我理解将其分成更小的部分背后
  • python re.findall() 与交替的子字符串

    如果我在正则表达式交替中有另一个字符串或模式的子字符串 或 子模式 如下所示 r abcd bc 预期的行为是什么re compile r abcd bc findall abcd bcd bc ab 尝试一下 我得到了 正如预期的那样 a
  • 使用 Square Connect API 访问客户信息

    是否可以使用 Square Connect API 访问有关商家客户的任何信息 最理想的信息是客户输入的收据电子邮件地址 但某种类型的唯一客户 ID 可以很好地确定回头客 纵观整个Square Connect API 文档 https co
  • 为什么通过提取方法进行重构会触发借用检查器错误?

    我的网络应用程序的架构可以简化为以下内容 use std collections HashMap Represents remote user Usually has fields but we omit them for the sake
  • UIStackview 左对齐

    我试图将 UIStackview 中的项目水平向左对齐 有没有办法以编程方式执行此操作 我尝试通过故事板来做到这一点 但没有成功 由于某种原因 UIStackView 中的项目会自行居中 如果您使用 StackView 将 axis 属性设
  • ASP.Net 应用程序作为 IIS_USR 执行 powershell 脚本

    我正在构建一个 asp net mvc 应用程序 它将作为我们编写的许多 powershell 脚本的包装器来运行 以管理日常任务 最终目标是让非技术人员轻松使用这些脚本 我已经设法让脚本很好地执行 var ctx System Web H