Проверьте все буквы локального раздела и начните шифрование на каждом - PullRequest
0 голосов
/ 22 марта 2020

Кто-нибудь знает, как я могу проверить все локальные разделы (буквы) на удаленном хосте и запустить шифрование на каждом разделе с 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 

1 Ответ

0 голосов
/ 22 марта 2020

Попробуйте:

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 
} 
  • Добавлен параметр -ComputerName для указания имени удаленного хоста в Get-WmiObject

  • конвейерный вывод Get-WmiObject в ForEach

  • Фиксированная часть Read-Host, строка приглашения прерывается без скобок

  • Изменено $ let

  • Используется оператор (&) для запуска manage-bed.exe

Самой большой ошибкой было то, что Select- Объект, вы получили список дисков не в виде массива, и это можно сделать с помощью -ExpandProperty, который выбирает свойства как массив без заголовка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...