Powershell 重置 Windows 更新

Powershell Reset Windows Update

我目前在带有 BootCamp 的 MacbookPro 上安装了一个全新的官方 Windows 7 Ultimate。

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

所以我做了很多 google 搜索(现在大约 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

我查看了命令行,没有看到任何遗漏的')',并让其他人google从其他网站搜索此命令行,但总是给出相同的错误

怎么了..!?

更新:

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

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

Invoke-Expression $str

解决方案

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

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

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

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

导致 Dos 提示符执行并给出消息 Success。

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

尝试使用:

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

因为这是调用 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)"'