Powershell 重置 Windows 更新
Powershell Reset Windows Update
我目前在带有 BootCamp 的 MacbookPro 上安装了一个全新的官方 Windows 7 Ultimate。
除了 Windows 更新外,一切都 运行 好。卡在搜索更新中..
所以我做了很多 google 搜索(现在大约 4 个小时),我尝试了很多东西,例如 MS 的 FixIt 工具和其他技巧,但没有任何效果。
我现在正在使用 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)"'
我目前在带有 BootCamp 的 MacbookPro 上安装了一个全新的官方 Windows 7 Ultimate。
除了 Windows 更新外,一切都 运行 好。卡在搜索更新中..
所以我做了很多 google 搜索(现在大约 4 个小时),我尝试了很多东西,例如 MS 的 FixIt 工具和其他技巧,但没有任何效果。
我现在正在使用 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)"'