问题标签 [non-admin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1073 浏览

.net - 以非管理员身份在 VS 中调试

我正在做一些 WinForms 开发,运行 XP 和 VS 2005(我知道很古老)。我想确保我的应用程序可以在没有管理员权限的情况下运行,但是我懒得尝试以非管理员身份运行 VS,而且我不想登录和退出来测试我的应用程序。

有没有一种方法可以让我以非管理员身份进行调试?

是否有一组代码访问安全属性可以添加到我的代码中,以强制我以与非管理员相同的权限集运行?

0 投票
3 回答
1972 浏览

c# - 非管理用户的文件处理

我一直在测试我的应用程序以查看它在由非管理用户运行时的运行情况,并且发现文件处理存在问题。如果文件是由管理员用户创建的,则在尝试覆盖文件时出现 UnauthorizedAccessException。

写出文件时,我首先将文件创建为 .tmp 文件,然后使用 File.Copy 覆盖原始文件。.tmp 文件被创建,但 File.Copy 失败。我的文件被写入公共目录(XP 中的“C:\Documents and Settings\All Users\Application Data”)。

我该怎么做才能让所有用户都可以完全控制应用程序文件?

我发现了这个:

对所有文件所在的目录执行上述操作会解决这个问题吗?还是我必须对每个文件做些什么?如果是这样,那是什么东西?

编辑:

非管理员用户不能修改管理员用户创建的文件。情况不妙。我需要所有用户都可以编辑所有文件。最初创建文件时是否可以设置某种权限来授予此权限?

0 投票
1 回答
3021 浏览

dll - 为非管理员用户注册 DLL (ActiveX)

我尝试使用 MSI 为非管理员用户注册 dll (ActiveX)。为了创建注册表设置,我在管理员模式下注册了 dll,然后导出了相关的注册表项并将所有 HKLM 重命名为 HKCU。

当我为非管理员用户安装它时,一切正常。但是当我对管理员用户使用相同的设置时,发现 TypeLib 存在问题。

在 HKCU 下注册时,应在注册表项中进行哪些更改以同时适用于管理员和非管理员用户?

谢谢

0 投票
1 回答
1377 浏览

vbscript - 如何以非管理员用户身份使用 WMI 在远程 Windows 系统上运行命令?

我有一个用 Visual Basic 编写的脚本,它使用 WMI 在远程系统(再次作为参数给出)上启动一个进程(作为参数给定脚本)。在远程系统上使用管理员帐户时,此脚本工作正常,但在使用非管理员帐户时,我收到以下错误:

我希望能够使用此脚本作为非管理员用户在远程系统上运行进程,我很确定问题是由于远程系统上的安全设置引起的,但我无法重置正确的。

0 投票
4 回答
6769 浏览

visual-studio - 如何使用作为非管理员用户运行的 Visual Studio 调试本地 IIS 服务?

我已经安装了 Visual Studio 2008,并以非管理员用户身份运行它。

我有一个正在开发的 Web 应用程序项目,并希望使用 Visual Studio 对其进行调试。我可以毫无问题地使用“Visual Studio Development Server”进行编译和调试。但是,当我在我的项目属性中选择“使用本地 IIS Web 服务器”并尝试保存项目时,Visual Studio 给我一个错误:“要访问本地 IIS 网站,您必须在管理员帐户的上下文中运行 Visual Studio 。”

现在,如果我相信微软的话,我必须通过实际使用管理帐户来运行 Visual Studio,但微软的最后通牒并不总是被证明是绝对的。

从其他类似的问题中,我已将我的用户添加到“调试器用户”组并赋予用户 SeDebugPrivilege 权限。但是,我不能“以管理员身份运行”,因为我的用户实际上不是管理员。

0 投票
1 回答
395 浏览

c# - 以非管理员身份运行时,C# 程序不会启动

首先,我没有任何 C# 技能或经验。我的一个朋友在大学里上了几门课,并且能够给我到目前为止我在这个 C# 程序中所获得的东西。

我让我的朋友创建一个程序来查看当前登录用户全名的 WMI,然后查看RegisteredOwner值。如果全名与 the 相同,RegisteredOwner则程序退出(全部静音),如果全名与 the 不同,RegisteredOwner则程序将启动一个带有一些文本和一个是/否选项的表单。如果用户单击yes,则程序将该RegisteredOwner值设置为登录用户的全名,如果单击no,则程序退出。

他完全满足了我的要求;但是,它仅在由具有本地管理员权限的用户运行时运行,不幸的是,在我的环境中,没有用户是他们机器上的本地管理员。当我向他提出这个问题时,他不确定他能做些什么来解决这个问题,经过一整天的研究,恐怕没有太多办法可以解决这个问题并让使用本地用户权限启动的程序。

所以我问你的问题是你知道我们可以使用这个程序的另一种方法,它允许它由没有本地管理员权限的用户运行吗?我希望将可执行文件存储在 PC 上本地的某个位置,然后将它放在启动项列表中的启动项列表中启动它。也许有一种方法可以使用具有非本地管理员权限的可执行文件,然后让它与在该System帐户下运行的 Windows 服务一起使用?

当由非本地管理员运行时,启动脚本时不会发生任何事情。

下面是代码。

任何意见和建议将不胜感激!

0 投票
2 回答
1572 浏览

c# - 无法以非管理员模拟用户身份运行 - 访问被拒绝

我在以管理员用户身份运行的应用程序中模拟非管理员用户帐户(使用和LogonUser()函数)。由于此用户帐户是临时的,我还需要加载用户配置文件(使用本机功能)。所有方法都成功执行(没有设置最后一个错误),并且当前身份是预期的模拟非管理员用户。但是,当我尝试使用 运行新进程时,出现错误:DuplicateToken()WindowsIdentity.Impersonate()LoadUserProfile()System.Diagnostics.Process.Start()

访问被拒绝。

当我尝试使用 runas /profile /user:mynonadmin 用户手动执行相同的场景时,一切正常。

我在这里想念什么?

0 投票
1 回答
1601 浏览

wix - Wix - 以非管理员身份安装并添加到 GAC

我正在使用 WIX 编写安装程序,并且需要将 .dll 文件添加到 GAC。我用:

这对管理员用户来说工作得很好,但是当我从非管理员用户运行它时,安装程​​序失败并出现我没有权限的错误。

有没有办法克服这个问题?

如果我编写自定义操作,我可以从非管理员用户那里使用 gacutil 吗?

谢谢你的帮助,马克西姆

0 投票
1 回答
545 浏览

com - COM CoCreateInstanceEx 如何尝试加载类型(对于非管理员 win 用户)?

我有一个非常复杂的问题,仅适用于非管理员 Windows 用户。

我运行驻留在桌面上的脚本 S 并调用 C++ dll 中的函数。那么流程如下:

  1. 我的 C++ dll 创建了一个 Delphi 进程,将 GUID 作为参数发送给它。
  2. 在初始化时,我的 Delphi 进程使用 COM 对象工厂使用给定的 GUID 注册一个 C 类。
  3. 我的 C++ dll 尝试使用相同的 GUID 调用 CoCreateInstanceEx。==> 操作失败,HResult 0x80029c4a 加载类型库/DLL 时出错。

Delphi 方面没有抛出异常 - 注册似乎工作顺利。

我使用了进程监视器,令我惊讶的是,当调用 CoCreateInstanceEx 时,有人试图从错误的位置读取我的 Delphi exe 文件。与其尝试访问注册 exe 的位置,不如尝试从脚本 S 所在的桌面访问 exe,当然该 exe 不存在。

这只发生在非管理员用户身上。此外,如果管理员用户之前曾运行过此脚本,那么它对于非管理员用户来说运行得非常好。

我现在试图弄清楚为什么会这样。这就是为什么我尝试了解 CoCreateInstanceEx 的流程。我在网上没有找到任何有用的信息。那么 CoCreateInstanceEx 是如何尝试加载类型的呢?它试图在哪里寻找?您知道所描述的情况是如何发生的吗?

任何信息或想法将不胜感激!

0 投票
1 回答
1065 浏览

unicode - 无法将具有自定义操作的 MSI 安装到用户名中包含非 ascii 字符的非管理员

这是我几天来一直在努力解决的问题,现在我束手无策。我正在使用 Wise Installation Studio 创建一个 MSI,但我敢打赌它可以使用任何 MSI 创作程序进行复制。我为那些希望使用我发布的 MSI、DLL 或 WSI 文件进行复制的人创建了一个测试样本。

  1. 创建一个新的明智解决方案,保存为“test.wsi”并创建“test.msi”
  2. 除了在“UI 序列”中的 MigrateFeaturesState 操作之后添加两个自定义操作之外,对该文件不执行任何操作
  3. 第一个自定义操作是“从安装调用 DLL”,不传入任何参数并忽略返回码
  4. 第二个自定义操作是“从安装调用自定义 DLL”,不传入任何参数并忽略返回码
  5. 两个动作都引用相同的 DLL 和相同的函数,helloworld.dll 和只显示“HelloWorld”消息框的 HelloWorld() 函数

预期结果:两个 hello world 提示,然后是常规 UI 屏幕以开始安装过程。

这是我当前的设置: Development Box: - Wise Installation Studio 7.4.0.214 - Win7 x64 在 UAC 关闭的情况下运行,

测试盒: - Windows XP SP3 - Windows Installer v4.5.6001.22159 - .Net Framework v4.0

这是我的测试用例:

  1. 具有 ascii 用户名的非管理员 - 'ALLUSERS=""' 和 ALLUSERS="1" 的结果都符合预期
  2. 名称为 'あくぇえ' 的管理员具有 unicode 字符 - 'ALLUSERS=""' 和 ALLUSERS="1" 的结果均符合预期
  3. 名称中带有 unicode 字符的非管理员“发涩” - 仅出现第一个提示,第二个提示如下所示:“自定义操作出错。库 C:\Documents and Settings\??[LongAlphaNumericString]。 TMP\WiseCustomCalla.dll 无效或找不到。” 'ALLUSERS=""' 和 ALLUSERS="1" 都会发生这种情况
  4. 使用另一个管理员登录并将#3中的用户设置为管理员,再次使用#3中的用户登录,我们得到了预期的结果。

我尝试过强制使用短路径并将备用路径传递给用户数据文件夹,但没有任何效果。任何人都知道为什么会发生这种情况以及如何解决它?我在这里包含了我用于此测试的所有文件,其中包括错误消息的屏幕截图、msi 和 msi.xml、wsi 文件、helloworld.dll(使用 rundll32 helloworld.dll、HellowWorld 进行测试)和上面每个测试用例的日志。

http://dl.dropbox.com/u/1797288/error.zip

需要在 MSI/WSI 文件中进行哪些更改,以便 #3 正确地用于“从安装中调用自定义 DLL”操作?

谢谢,亚伦P