Получение статуса Bitlocker через пакетный скрипт и Net View - PullRequest
0 голосов
/ 05 сентября 2018

Я пытался создать для моей команды более простой способ получения статуса устройства блокировки битов в нашей сети. После проверки множества отдельных ответов здесь и на других сайтах мне удалось собрать воедино почти рабочий пакетный сценарий, однако, похоже, он не обрабатывает запись правильно. Код ниже:

@echo off
color a
title BitLocker Checking
:start
cls
setlocal EnableDelayedExpansion

set i=0
for /F %%a in ('net view') do (
   set line=%%a
   if "!line:~0,2!" equ "\\" (
      set /A i+=1
      echo [!i!]        !line:~2!
      set comp[!i!]=!line:~2!
   )
)

echo.
echo.
echo Choose a computer.
choice /c 12345678 >nul
set name=!comp[%errorlevel%]!

cls
for /f "tokens=1,2 delims=[]" %%A in ('manage-bde -status -computername %name% ^| find "Conversion Status"') do set derp=%%B
if "%name%"=="" goto start
echo The status of %name% is %derp%
echo.
echo.
echo %derp% | clip
echo. %derp% copyied to clipboard.
echo.
echo Press any key.
pause 
goto start

Когда я изолирую строку manage-bde -status -computername %name% | find "Conversion Status" и сообщаю ей имя компьютера, кажется, что строка статуса преобразования корректно выводится (например, «Состояние преобразования: полностью расшифровано», если на машине отключен битлокер). Однако, если оставить его в контексте командного файла, он выдает «Состояние computernamegoeshere is», а затем пустое значение, как будто он не получает данные из команды Find в переменную% B.

У кого-нибудь есть предложения? Прошло много времени с тех пор, как я написал пакетные команды, поэтому немного заржавел.

1 Ответ

0 голосов
/ 05 сентября 2018

Я думаю, что лишние пробелы в выводе мешают вам. В командной строке Win10 это работает для меня:

for /f "tokens=1,*" %A in ('manage-bde -status -computername %COMPUTERNAME% ^| findstr Conversion') do echo %A %B

Результирующий вывод (минус стремительный шум):

Conversion Status:    Fully Decrypted
Conversion Status:    Fully Decrypted
Conversion Status:    Fully Decrypted

Таким образом, вам нужно удалить delims=[], изменить tokens=1,2 на tokens=1,*, и независимо от того, используете ли вы find или findstr, зависит от вас. Мои предпочтения - findstr.

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