在另一个用户上下文中执行代码

2024-01-09

我有一个应用程序,其清单需要以管理员身份运行,但该应用程序的一部分是使用 WNetAddConnection2 映射驱动器,我认为由于凭据等原因,它需要在正常用户上下文中运行。有没有办法执行此操作普通用户上下文中的一些代码,无需创建单独的进程。

EDIT

从评论来看,我已经得到了这么多,但它不起作用。我预计不会,因为我不太明白应该如何使用它。也许我最好提出一个新问题?

class Program
{
    [DllImport("advapi32.DLL")]
    public static extern bool ImpersonateLoggedOnUser(IntPtr hToken);
    [DllImport("advapi32.DLL")]
    public static extern bool RevertToSelf();

    static void Main(string[] args)
    {
        IntPtr phToken = IntPtr.Zero;
        ImpersonateLoggedOnUser(phToken);
        MapDrives();
        RevertToSelf();
    }
}

EDIT

如果当前用户具有管理员权限,则主进程会随清单一起提升,在提升的代码中,我想在用户非提升空间中运行命令,因为这似乎具有不同的环境变量等。我相信一旦线程启动后它无法更改自身,它需要运行一个新线程。


看看用于模拟用户的小型 C# 类 http://www.codeproject.com/KB/cs/zetaimpersonator.aspx代码项目文章。它实现了 IDisposable 类(在使用后释放身份验证令牌)。我曾见过由于未释放模拟令牌而导致 .NET 代码泄漏。

您只能为一段代码来模拟用户,该代码块将访问您需要以其他用户身份访问的网络资源。你的代码看起来像

using ( new Impersonator( "myUsername", "myDomainname", "myPassword" ) )
{
   /* code that executes under the new context */
   ...
}

我希望它有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在另一个用户上下文中执行代码 的相关文章

  • pthread_cond_timedwait() 和 pthread_cond_broadcast() 解释

    因此 我在堆栈溢出和其他资源上进行了大量搜索 但我无法理解有关上述函数的一些内容 具体来说 1 当pthread cond timedwait 因为定时器值用完而返回时 它如何自动重新获取互斥锁 互斥锁可能被锁定在其他地方 例如 在生产者
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • C#:如何防止主窗体过早显示

    在我的 main 方法中 我像往常一样启动主窗体 Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application
  • C 预处理器库

    我的任务是开发源分析工具C程序 并且我需要在分析本身之前预处理代码 我想知道什么是最好的图书馆 我需要一些重量轻 便于携带的东西 与其推出自己的 为什么不使用cpp这是的一部分gcc suite http gcc gnu org onlin
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • Qt表格小部件,删除行的按钮

    我有一个 QTableWidget 对于所有行 我将一列的 setCellWidget 设置为按钮 我想将此按钮连接到删除该行的函数 我尝试了这段代码 它不起作用 因为如果我只是单击按钮 我不会将当前行设置为按钮的行 ui gt table
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 通过win32检测多个登录用户

    使用标准 win32 api 检测多个用户登录的最佳方法是什么 我对我们的软件产品进行了升级 当多个用户登录时 该产品无法运行 我知道这是应该避免的事情 因为它很烦人 但该产品非常复杂 您必须相信我 当我说确实没有其他解决方案时 谢谢 为了
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • x86 上未对齐的指针

    有人可以提供一个示例 将指针从一种类型转换为另一种类型由于未对齐而失败吗 在评论中这个答案 https stackoverflow com questions 544928 reading integer size bytes from a
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif

随机推荐

  • 如何为 alpine linux 安装 msodbcsql17 驱动程序?

    我找到了一个github上的相关问题 https github com Microsoft msphpsql issues 300但它位于 msphpsql 存储库下 所以我不确定它是否适用于 alpine 的一般驱动程序 据说MS还不支持
  • Selenium/Webdriver 的 python 绑定中的 get_Text() 等效项是什么

    我想从 Selenium 1 迁移到 Selenium 2 我使用 python 绑定 但是我找不到任何get text 功能 eg selenium find elements by css selector locator get te
  • 空手道 UI:driver.location 方法引发错误:路径:$,实际:null

    我正在尝试使用方法 driver location 但结果出现错误 路径 实际 null 我的代码 功能 浏览器自动化 背景 配置驱动程序 type chromedriver showDriverLog true 场景 尝试登录github
  • 用Python对图像进行二维小波滤波

    我正在尝试在 python 中进行二维小波滤波 我发现了 PyWavelets 并且已经研究它有一段时间了 我正在尝试进行 4 个级别的转换 当我打印出来时 它给出了奇怪的输出 我不确定到底发生了什么 我尝试了一些方法 但这是最新的示例 t
  • 浏览器如何解析/渲染 CSS?

    他们使用什么样的图形框架 技术来理解和绘制 CSS 指令 我这么问是因为我有兴趣编写使用 CSS 作为布局机制的软件 由于 CSS 是一个相当大的规范 所以编写我自己的规范不是非常困难吗 CSS 渲染器 这就是为什么会有如此多的浏览器差异
  • Git - 切换分支(窗口)和未提交的更改

    我很难理解一些 git DCVS 概念 事情是这样的 我创建了一个 git 项目 并从 SVN 存储库导入它 我做了一些承诺 我想尝试一些东西 所以我创建了一个名为常量更新 我切换到常量更新分支 移动一些文件 删除其他文件并添加更多文件 我
  • Scala:如何为任何案例类定义抽象可复制超类?

    请耐心等待 在 OP 有意义之前 有一些背景 我正在使用 Slick 3 1 x 和 slick 代码生成器 顺便说一句 整个源代码可以在play authenticate usage scala github 项目 https githu
  • Kotlin 的 DAO 应该返回Optional还是null?

    在 Kotlin JPA 之前 我曾经这样编写 DAO 层 public interface UserDao extends JpaRepository
  • SQL 中 SELECT * 有什么缺点吗?

    假设我有一个执行 SQL 的程序 并且我想在表中查询 A B 和 C 列中的值 假设有一些列我并不严格需要 SELECT 和 SELECT A B C 有什么区别 到目前为止我的想法如下 仅选择您需要的列 将需要更少的内存来存储结果 可能会
  • 在没有“脚本”条目的情况下实现“npm run x”行为?

    在已安装的 上下文 中运行节点命令node modules 您可以在scripts现场package json Eg scripts test mocha recursive test js compilers js babel regis
  • OS X sed -E 不接受扩展正则表达式

    我一直在尝试各种方法在 OS X 上使用 sed 做一些基本的事情 以下是一些简单测试的结果 echo foo bar 2011 03 17 17 31 47 foo bar sed s foo FOUND g 回报 如预期 FOUND b
  • Xcode账户认证失败

    当我尝试登录 Apple ID 帐户时出现问题 重新登录也没用 Xcode 14 0 我也遇到了同样的问题 我就是这样解决的 您必须访问该部分Xcode 帐户是 要访问它 您可以通过View accounts警告中出现的按钮或通过Xcode
  • bash 脚本可以同时运行命令然后等待它们完成吗?

    我想编写一个 bash 脚本 在其中同时运行两个命令 然后在它们都完成后继续 这是不起作用的 但我将其放在这里来说明我正在尝试做的事情 bin bash job1 job2 dostuffwithresults 该脚本将同时运行 job1
  • Selenium WebDriver 和 InternetExplorer

    我最近更新到 Selenium 2 24 1 以使 Firefox 13 正常工作 通过此更新 您现在可以运行类似于 chromedriver exe 的可执行文件 以便将事件分派到 IE 然而我没有运气让测试与 IE 一起运行 为了让它在
  • 如何在FOR循环中批量获取当前路径%CD%的信息?

    我设置了一个环境变量 其中包含多个逗号分隔的目录路径 并使用FOR循环将当前目录设置为变量中的下一个目录路径 我尝试获取当前路径 但结果看起来很奇怪 我尝试使用以下代码 set a C test A C test B C test C fo
  • lambda 和 LINQ 之间的区别? [复制]

    这个问题在这里已经有答案了 有人可以解释一下 lambda 和 linq 之间的区别吗 请不要向我指出其他 stackexchange 答案或琐碎的解释 我已经检查了其中的大部分 它们非常令人困惑 这些天我使用了一些 LINQ 我相信 其表
  • 更改来自 Lambda (Node.js) 的 Cloudwatch 日志的日志格式

    If I do console log message 在我的代码中 它在 Cloudwatch 中显示为 2017 03 16T18 58 21 823Z 863c835c 0a7a 11e7 9140 e5018d6e5029 mess
  • Hibernate Session 不使用 JpaTransactionManager 事务

    我正在开发一个使用 Spring 框架 4 3 3 RELEASE 和 Hibernate 5 2 3 Final 的项目 并且我开始转向使用 Spring Data JPA 我刚刚迁移了LocalSessionFactoryBean wi
  • DialogFragment 中未调用 OnCancelListener

    我有一个简单的AlertDialog显示一些项目的列表 单击其中一个项目后 所单击的项目将传回封闭的项目Activity 我还想在用户取消对话框时执行一些默认处理 使用返回键 更具体地说 在这种情况下 我想将空字符串传递给活动 但是 如果我
  • 在另一个用户上下文中执行代码

    我有一个应用程序 其清单需要以管理员身份运行 但该应用程序的一部分是使用 WNetAddConnection2 映射驱动器 我认为由于凭据等原因 它需要在正常用户上下文中运行 有没有办法执行此操作普通用户上下文中的一些代码 无需创建单独的进