Если ваша целевая ОС Windows 7
или новее, возможно, что-то из этого поможет вам:
@Echo Off
Set "XSL=csv"
For /F "EOL=MDelims=" %%A In ('"WMIc OS Get MUILanguages,Version"'
) Do For /F Tokens^=2^,4-5Delims^=.^"^ %%B In ("%%A"
) Do If %%C Equ 6 If %%D Equ 1 Set "XSL=%__APPDIR__%WBEM\%%B\%XSL%
WMIC /Output:Results.log /Node:@Computers.txt Path SoftwareLicensingProduct^
Where "PartialProductKey Is Not Null And Name Like 'Windows(R)%%' And Not LicenseStatus='1'"^
Get LicenseStatus,Name,ProductKeyID /Format:"%XSL%"
Идея состоит в том, что он будет проверять каждый из перечисленных компьютеров по одному на строку в файле.с именем computers.txt
в текущем рабочем каталоге.Если продукт Windows(R)
не отображается как лицензированный, (то есть 1
) , он должен вывести некоторую соответствующую информацию в файл с именем Results.log
также в текущем рабочем каталоге.
Выходные данные о состоянии лицензии будут переведены в одно из следующих значений:
0
: нелицензировано
1
: лицензировано
2
: OOB Grace
3
: OOT Grace
4
: Non-Genuine Grace
5
: Уведомление
6
: Extended Grace
Примечание: Возможно, вам не нужны строки 3
- 5
приведенного выше сценария, если вы не проверяете с компьютера Windows 7
, я добавил их из-за известной проблемы с расположением csv.xsl
файл на версиях этой ОС.