【问题标题】:Powershell Reset Windows UpdatePowershell 重置 Windows 更新
【发布时间】:2021-07-20 23:48:50
【问题描述】:

我目前使用 BootCamp 在我的 MacbookPro 上安装了全新的官方 Windows 7 Ultimate。

除 Windows 更新外,一切运行良好。卡在搜索更新中..

所以我做了很多谷歌搜索(现在大约 4 小时),我尝试了很多东西,比如 MS 的 FixIt 工具和其他技巧,但没有任何效果。

现在我正在尝试这个: http://www.sevenforums.com/performance-maintenance/372790-very-high-memory-sometimes-cpu-usage-svchost-exe-up-1-gb-post3095241.html#post3095241

我现在正在使用 PowerShell 并输入此命令行:

sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)

我总是收到这个错误:

Missing closing ')' in expression.
At line:1 char:23
+ sc.exe sdset bits D:(A <<<< ;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRS
DRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
    + CategoryInfo          : ParserError: (CloseParenToken:TokenId) [], Paren
   tContainsErrorRecordException
    + FullyQualifiedErrorId : MissingEndParenthesisInExpression
    enter code here

我查看了命令行,我没有看到任何丢失的')',并在其他网站上进行了一些其他谷歌搜索,并始终给出相同的错误

怎么了..!?

更新:

我试过这个没有成功(同样的错误)

$str = "sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)"

Invoke-Expression $str

【问题讨论】:

  • 会不会是PowerShell在80个字符后插入换行符?
  • 如果这就是原因..为什么在谷歌上找到的每个命令行都与同一过程中的这个相同,并且似乎每个人都可以应用它?如何让 PS 不中断 cmd 行!?

标签: powershell windows-update


【解决方案1】:

解决方案

我找到了解决方案及其键入命令如下:

CMD /C "sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)"

【讨论】:

  • 我认为你命令中的; 把它扔掉了。你也可以使用Invoke-Expression -Command "..."
【解决方案2】:

当我在整个命令周围加上引号时,dos 提示符删除了引号,并返回了结果。在长参数列表周围加上引号,即这样做:

sc.exe sdset bits "D:(A;; [snip] ;;PU)"

导致 Dos Prompt 执行并给出消息 Success。

【讨论】:

    【解决方案3】:

    PowerShell 不能很好地处理 DOS 可执行文件及其参数。

    尝试使用:

    Start-Process sc.exe -ArgumentList 'sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)' 
    

    【讨论】:

      【解决方案4】:

      由于这是调用 DOS,因此在 DOS 命令周围使用单引号并在 ACL "D:(A;;......;;PU)" 周围添加双引号。它看起来像这样

      Invoke-Expression -Command 'sc.exe sdset bits "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)"'

      【讨论】:

        猜你喜欢
        • 2012-08-13
        • 2014-06-11
        • 2022-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-12
        • 1970-01-01
        • 2017-11-17
        相关资源
        最近更新 更多