powershell - 检查所有本地分区号并在每个分区上开始加密
问题描述
有谁知道如何检查远程主机上的所有本地分区(字母)并使用 powershell 在每个分区上开始加密。我在想类似的东西,但我做错了什么?我的代码:
$disk=Get-WmiObject -Class Win32_logicaldisk -Filter "DriveType = '3'" | Select DeviceID
ForEach($letter in $disk){
Read-Host -Prompt “Criptam” + $letter + "?"
$let = $letter + ":"
manage-bde.exe -on $let -recoverypassword -skiphardwaretest
解决方案
尝试这个:
Get-WmiObject -ComputerName Server_Name -Class Win32_logicaldisk -Filter "DriveType = '3'" | ForEach {
Read-Host -prompt ('Criptam' + $letter + '?')
$letter = "$($_.DeviceId):"
& "manage-bde.exe" -on $let -recoverypassword -skiphardwaretest
}
或者
$disk=Get-WmiObject -Class Win32_logicaldisk -Filter "DriveType = '3'" | Select -ExpandProperty DeviceID
ForEach($letter in $disk){
Read-Host -Prompt ("Criptam"+ $letter + "?")
$let = $letter + ":"
manage-bde.exe -on $let -recoverypassword -skiphardwaretest
}
在Get-WmiObject中添加-ComputerName参数来指定远程主机的名称
Get-WmiObject 的管道输出到 ForEach
修复了 Read-Host 部分,提示字符串在没有括号的情况下被破坏
改变了 $let
使用 (&) 运算符运行 manage-bed.exe
最大的错误是 Select-Object 你得到的驱动器列表不是一个数组,这可以通过 -ExpandProperty 来完成,它将属性选择为没有标题的数组。
推荐阅读
- java - 清单 screenOrientation 属性与 setRequestedOrientation
- apache-kafka - 通过单个应用程序将 Kafka 流用于不同进程的最佳方式
- python - x 轴上缺少线图刻度
- java - RestTemplateBuilder 类型中的requestFactory(Class ) 不适用
- r - R 从标准 UTC 时区更改为多个本地时区
- c# - 如何在 REST WEB API 中保存从登录到会话的数据
- python - 如何在 GTK 中的进程之间共享剪贴板数据?
- c# - WPF 无法在 DataContent 中显示模板
- ruby - super() 调用后将范围限制为父级
- batch-file - 在 inno setup 完成安装后创建一个 Bat 文件