【问题标题】:How can I create a proper do-while loop using Powershell如何使用 Powershell 创建正确的 do-while 循环
【发布时间】:2018-08-30 19:07:08
【问题描述】:

我希望脚本生成一个随机的最后一组 (Key0) 并尝试在每次迭代时使用连接的字符串 (Key) 解锁驱动器,但无法正常工作。 我执行脚本,它只是试一试。似乎这段时间不起作用。

Do {      
  $Hash0 = 0..5 | % {Get-Random -Minimum 0 -Maximum 9 }
  $Key0 = $Hash0 -join ""
  $Key  = "175615-666567-468105-046717-174922-139634-579799-"+$Key0
  manage-bde.exe -unlock H: -recoverypassword $Key >$null
  $Status = Get-BitlockerVolume -MountPoint "H:" 
} while($Status.CapacityGB -ne "0")

我不是 Powershell 专家。

【问题讨论】:

  • $Status.CapacityGB -ne "0" -> $Status.LockStatus -eq 'Locked', 还有Get-Random -Minimum 0 -Maximum 9 永远不会返回 9,同样数字组应该小于或等于 720885 并且可以被 11 整除。
  • @PetSerAl 我建议将其发布为带有解释的答案。
  • 所以您是在尝试暴力破解 bitlocker 密码?
  • PetSerAl,非常简洁。但是 do while 仍然不起作用。它只尝试一次。
  • 确实,TheMadTechnician。

标签: powershell loops do-while bitlocker


【解决方案1】:

使用 Do-While 循环,脚本块至少执行一次。

在脚本块运行后评估 While 条件。只要 While 语句中的条件为真,脚本块就会重复。

你的语句While语句是

while($Status.CapacityGB -ne "0")

您希望在 CapacityGB 不等于 0 时执行 do 循环

如果循环停止它表明您的 while 语句正在评估为 false,这表明 CapacityGB 为零。我会检查你在 $status 变量中得到了什么

【讨论】:

  • 做到了。非常感谢你,理查德。将 -ne 更改为 -eq。另外,感谢 PetSerAl。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-27
  • 2021-10-19
  • 2021-07-27
相关资源
最近更新 更多