vbs скрипт для ключа office
Vbs скрипт для ключа office
Последние действия на сайте
Пара скриптов для чтения текущих ключей
Set WshShell = CreateObject(«WScript.Shell»)
regKey = «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\»
DigitalProductId = WshShell.RegRead(regKey & «DigitalProductId»)
Win8ProductName = «Windows Product Name: » & WshShell.RegRead(regKey & «ProductName») & vbNewLine
Win8ProductID = «Windows Product ID: » & WshShell.RegRead(regKey & «ProductID») & vbNewLine
Win8ProductKey = ConvertToKey(DigitalProductId)
strProductKey =»Windows 8 Key: » & Win8ProductKey
Win8ProductID = Win8ProductName & Win8ProductID & strProductKey
InputBox «Product Key», «Product Key», Win8ProductKey
MsgBox(Win8ProductID)
# http://code.google.com/p/msoffice-product-key-decoder/
# Designed for use with python 2.6+ (not for 3.x)
import sys
import string
import math
import _winreg as wr
#b24chrs = (string.digits + string.ascii_uppercase)[:24]
generic_b24chrs = ‘0123456789ABCDEFGHIJKLMN’
code_len = 25 # encoded key length (user-readable key)
bin_len = 15 # binary key length
regkey_idx = 52 # start of key in DPID for 2003, 2007
regkey_idx_2010 = 0x328 # start in DPID for 2010
b24chrs = ‘BCDFGHJKMPQRTVWXY2346789’
reg_root = r’Software\Microsoft\Office’
def chunks(l, n):
«»» Yield successive n-sized chunks from l.
«»»
for i in xrange(0, len(l), n):
yield l[i:i+n]
def b24encode(input, outlen=None, chrmap=None):
# The number of coded characters to actually generate can’t be
# determined soley from the input length, but we can guess.
if outlen is None:
# each base24 code char takes
4.585 bits (ln24 / ln2)
outlen = int(math.ceil(8*len(input) / 4.585))
# Use default character mapping [0-9A-N] if none provided
if chrmap is None:
chrmap = generic_b24chrs
input = [ord(i) for i in input[::-1]]
»’
# takes less memory (does it piecewise), but more complex
decoded = []
for i in range(0,encoded_chars + 1)[::-1]:
r = 0
for j in range(0,15)[::-1]:
r = (r * 256) ^ input[j]
input[j] = r / 24
r = r % 24
print b24chrs[r]
decoded = decoded.append(b24chrs[r])
# simple, but eats a ton of memory and probably time if the
# encoded string is large
enc = 0
for i in input:
enc = enc * 256 + i
dec = []
for i in range(outlen):
dec.append(chrmap[enc % 24])
enc = enc // 24
dec.reverse()
return ».join(dec)
def b24decode(input, chrmap=None):
# Use default character mapping [0-9A-N] if none provided
if chrmap is None:
chrmap = generic_b24chrs
# clean invalid characters from input (e.g. ‘-‘ (dashes) in product key)
# and map to \x00 through \x23.
rmchrs = []
for i in xrange(256):
if not chr(i) in chrmap:
rmchrs.append(chr(i))
tt = string.maketrans(chrmap, ».join([chr(i) for i in xrange(24)]))
input = input.translate(tt, ».join(rmchrs))
encnum = 0
for cc in input:
encnum *= 24
encnum += ord(cc)
enc = []
while encnum:
enc.append(encnum % 256)
encnum = encnum // 256
return ».join([chr(i) for i in enc])
def msoKeyDecode(regkey, version=None):
»’Decodes a registry key value, by extracting product key
from bytes 52-66 and decoding.
Office 2010 (14.0) appears to store the key at 0x328 to 0x337 in
DPID. The «Registration» tree is different (cluttered) versus
other versions, and the DPID value is (exactly) 7 times longer than
before (1148 bytes, up from 164).
Tested with a 2010 full suite and a trial of Visio.
Parameters:
— regkey is a string containing the contents of «DigitalProductID»
— version is the decimal version number given by the key directly
under the «Office» key root
»’
if version is None:
version = 11 # (default 2003, 2007 appears to be compatible.)
if float(version)
enckey = regkey[regkey_idx:regkey_idx+bin_len]
else:
enckey = regkey[regkey_idx_2010:regkey_idx_2010+bin_len]
deckey = b24encode(enckey, code_len, chrmap=b24chrs)
def SubKeys(key):
i = 0
while True:
try:
subkey = wr.EnumKey(key, i)
yield subkey
except WindowsError: # [Error 259] No more data is available
break
i += 1
def KeyValues(key):
i = 0
while True:
try:
value = wr.EnumValue(key, i)
yield value
except WindowsError: # [Error 259] No more data is available
break
i += 1
def main(argv=None):
»’Scans local Microsoft Office registry keys for DigitalProductID values
and encodes the binary data in base24.
Note: The given «Name:» of Office 2010 products is incorrect
(may just provide a single program name), though the Product Key
should be valid.
»’
if argv is None:
argv = sys.argv
mso_root = wr.OpenKey(wr.HKEY_LOCAL_MACHINE, reg_root)
product_head = «Product Name»
dpid_head = «Digital Product ID (key encoded in base24)»
for subkey in SubKeys(mso_root):
# subkey always observed to be a version number (11.0, 12.0, 14.0. )
# where a DPID will be found.
for sub2key in SubKeys(
wr.OpenKey(mso_root, subkey)):
# sub2key always observed to be «Registration» when DPID is found
for sub3key in SubKeys(
wr.OpenKey(wr.OpenKey(mso_root, subkey), sub2key)):
# sub3key often some UUID ending in 0F:F1:CE
dpid_found = False
for keyvalue in KeyValues(
wr.OpenKey(wr.OpenKey(wr.OpenKey(
mso_root,
subkey),
sub2key),
sub3key)):
if keyvalue[0] == ‘DigitalProductID’:
dpid_found = True
dpid = keyvalue
if keyvalue[0] == ‘ProductName’:
name = keyvalue
if dpid_found:
#print («Product Name: %s\n»
# » Key: %s\n») % \
# (name[1],
# msoKeyDecode(dpid[1],subkey))
Активация Microsoft Office 2019 из командной строки
Как и большинству продуктов Microsoft для Office 2019 требуется установка ключа продукта и его активация. И сегодня мы рассмотрим, как активировать Microsoft Office из командной строки.
Активация Office из командной строки производится с помощью специального VBS-скрипта OSPP.VBS. Находится скрипт в директории с установленным Office, например для Office 2016\2019 его можно найти по адресу C:\Program Files\Microsoft Office\Office16.
Для запуска скрипта открываем командную консоль cmd (или PowerShell) от имени администратора, переходим в папку со скриптом и выполняем команду:
Запущенный без дополнительных параметров скрипт выдаст страничку со справкой. Справка хранится в файле ospp.htm, находящемся рядом со скриптом, при желании его можно просто открыть браузером.
Как видите, возможностей у скрипта OSPP.VBS довольно много. Для начала выведем информацию о статусе активации командой:
cscript.exe OSPP.VBS /dstatus
Если запустить эту команду сразу после установки, то много информации мы не получим.
После первого запуска Office картина изменится и команда выдаст подробную информацию о продукте, включая текущий статус активации (OOBE GRACE). Обратите внимание, что по умолчанию, если не указан ключ продукта, то Office ищет в сети KMS сервер и пробует активироваться через него. Если же такового нет, то запускается пробный 30-дневный период, что мы и видим.
Предположим, что сервера KMS у нас нет, но есть MAK-ключ. Первой командой устанавливаем его:
cscript.exe OSPP.VBS /inpkey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
Убеждаемся, что ключ принят, после чего активируем продукт командой:
cscript.exe OSPP.VBS /act
При наличии доступа в интернет мы получим сообщение об успешной активации.
Если после активации еще раз выполнить проверку, то мы увидим, статус сменился на LICENSED.
Теперь мы являемся обладателями лицензионного экземпляра Office 2019 и можем смело приступать к работе 🙂
Как узнать ключ активации установленного MS Office
Ключ установки Microsoft Office после активации продукта продолжает хранится в реестре системы. Для защиты ключ продукта хранится не в открытом, а в шифрованном с помощью кодировки Base64 виде. Этот метод кодировки не является стойким, поэтому не составляет труда извлечь его с помощью простого скрипта (аналогичную методику мы рассматривали в статье, описывающей извлечения ключа установки Windows 8). В этой статье мы приведем как с помощью PowerShell и vbs скриптов без использования сторонних утилит получить код активации уже установленной копии MS Office.
Данные скрипты удобно использовать при утрате документов или наклеек с ключами установки Microsoft Office.
Сначала рассмотрим скрипт получения ключа на PowerShell
Готовый Powershell скрипт можно скачать тут: getmsofficekey-posh.zip
Аналогичный скрипт для получения ProducId и ключей MS Office на Vbscript
Готовый файл *.vbs файл: get-office-keys-vbs.zip
Проверим полученный ключ с помощью стандартной функции, позволяющей отобразить последние 5 символов ключа. Для 32 битного Офиса на 64 битной Windows команда такая:
cscript «C:\Program Files (x86)\Microsoft Office\Office14\OSPP.VBS» /dstatus
Часть ключа должна совпадать с полученными ранее данными.
Средства для управления активацией корпоративных лицензий Office
Область применения: _ _версии Office 2019 и Office 2016 с корпоративной лицензией, включающие Project и Visio
Сценарии ospp.vbs и slmgr.vbs, а также средство управления активацией корпоративных лицензий (VAMT) помогут вам настроить и протестировать версии Office с корпоративной лицензией, включая Project и Visio. Перед прочтением этой статьи рекомендуется ознакомиться со статьями Обзор активации корпоративных лицензий Office, Активация версий Office с корпоративной лицензией с помощью ключа MAK и Активация версий Office с корпоративной лицензией с помощью Active Directory.
Сценарий ospp.vbs
Сценарий ospp.vbs позволяет настраивать версии Office с корпоративной лицензией, включая Project и Visio. Сценарий ospp.vbs расположен в папке Program Files\Microsoft Office\Office16. Если вы установили 32-разрядную версию Office в 64-разрядной операционной системе, перейдите в папку Program Files (x86)\Microsoft Office\Office16.
Для запуска сценария ospp.vbs требуется обработчик сценариев cscript.exe. Для просмотра файла справки введите следующую команду, а затем нажмите клавишу ВВОД:
cscript ospp.vbs /?
Общий синтаксис сценария выглядит следующим образом:
cscript ospp.vbs [Option:Value] [ComputerName] [User] [Password]
Option Задает параметр и значение, используемые для активации продукта, установки или удаления ключа продукта, установки и отображения сведений о лицензии, настройки и удаления имени узла и порта KMS. Параметры и значения перечислены в таблицах в этом разделе.
ComputerName Имя удаленного компьютера. Если имя компьютера не указано, используется локальный компьютер.
User Учетная запись, обладающая необходимыми разрешениями на удаленном компьютере.
Password Пароль учетной записи. Если учетная запись и пароль не указаны, используются текущие учетные данные.
Прежде чем запускать сценарий ospp.vbs, убедитесь, что:
Глобальные параметры для ospp.vbs
Глобальный параметр | Описание |
---|---|
/act | Активирует установленные ключи продуктов Office. |
/inpkey:value | Устанавливает ключ продукта (заменяет существующий ключ) на ключ, предоставленный пользователем. Требуется параметр Value. |
/unpkey:value | Удаляет установленный ключ продукта с последними пятью символами ключа продукта, который нужно удалить (как отображается в параметре /dstatus). Требуется параметр Value. |
/inslic:value | Устанавливает лицензию с использованием XRM-MS-лицензии по пути, заданным пользователем. Требуется параметр Value. |
/dstatus | Отображает сведения о всех установленных ключах продукта. |
/dstatusall | Отображает сведения о лицензиях для всех установленных лицензий. |
/dhistoryacterr | Отображает журнал сбоев для активации с помощью ключа MAK или розничной активации. |
/dinstid | Отображает идентификатор установки для автономной активации. |
/actcid:value | Активирует продукт с помощью предоставленного пользователем идентификатора подтверждения. Требуется параметр Value. |
/rearm | Сбрасывает состояние лицензирования для всех установленных ключей продуктов Office. |
/rearm:value | Сбрасывает состояние лицензирования для лицензии Office с предоставленным пользователем значением SKUID. Требуется параметр Value. Используйте этот параметр со значением SKUID, заданным с помощью параметра /dstatus, если вы исчерпали все возможности возврата к исходному состоянию активации и активировали Office через KMS или на основе Active Directory, чтобы получить дополнительную возможность возврата к исходному состоянию активации. |
/ddescr:value | Отображает описание кода ошибки, предоставленное пользователем. Требуется параметр Value. |
В следующей таблице описываются параметры ospp.vbs для настройки клиента KMS.
Параметры клиента KMS для ospp.vbs
Параметр KMS-клиента | Описание |
---|---|
/dhistorykms | Отображает журнал активации клиента KMS. |
/dcmid | Отображает идентификатор клиентского компьютера KMS (CMID). |
/sethst:value | Задает имя узла KMS, предоставленное пользователем. Задается значение HKLM\Software\Microsoft\OfficeSoftwareProtectionPlatform\KeyManagementServiceName (REG_SZ). |
/setprt:value | Задает номер порта KMS, указанный пользователем. Значение по умолчанию: 1688. Параметр Value является обязательным. Задается значение HKLM\Software\Microsoft\OfficeSoftwareProtectionPlatform\KeyManagementServicePort (REG_SZ). |
/remhst | Удаляет имя узла KMS и задает порт по умолчанию. По умолчанию используется порт 1688. |
/cachst:value | Разрешает или запрещает кэширование узла KMS. Требуется параметр Value (TRUE или FALSE). |
/actype:value | (Только для Windows 8.1 и последующих версий.) Устанавливает тип активации корпоративных лицензий. Требуется параметр Value. Значения: 1 (для Active Directory), 2 (для KMS), 0 (для обоих методов). |
/skms-domain:value | (Только для Windows 8.1 и последующих версий.) Устанавливает определенный DNS-домен, в котором можно найти все SRV-записи KMS. Этот параметр не действует, если в параметре /sethst задан особый отдельный узел KMS. Параметр Value представляет собой полное доменное имя и является обязательным. |
/ckms-domain | (Только для Windows 8.1 и последующих версий.) Очищает определенный DNS-домен, в котором можно найти все SRV-записи KMS. Используется особый узел KMS, если он задан в параметре /sethst. В противном случае используется автообнаружение узла KMS. |
Сценарии, в которых используются ospp.vbs
В следующих сценариях предполагается, что ospp.vbs выполняется в командной строке с повышенными привилегиями.
Любые изменения влияют только на клиентские продукты Office. Вы должны настроить клиент Windows отдельно с помощью сценария slmgr.vbs, описанного в разделе Сценарий slmgr.vbs далее в этой статье.
Изменение ключа продукта на ключ MAK на удаленном компьютере
Если имя удаленного компьютера — contoso1, выполните следующую команду для ввода ключа продукта. Предполагается, что для удаленного компьютера используются учетные данные администратора. Если учетные данные на удаленном компьютере отличаются от учетных данных пользователя, следует ввести свое имя пользователя и пароль в командной строке и нажать клавишу ВВОД:
cscript ospp.vbs /inpkey:xxxxx-xxxxx-xxxxx-xxxxx-xxxxx contoso1
Чтобы активировать удаленный компьютер, введите следующую команду, а затем нажмите клавишу ВВОД:
cscript ospp.vbs /act contoso1
Диагностика ошибок активации KMS
Если на компьютере установлен клиентский ключ KMS, проверьте состояние лицензирование. Для этого введите следующую команду, затем нажмите клавишу ВВОД:
cscript ospp.vbs /dstatusall
Чтобы просмотреть журнал активации KMS, введите следующую команду, а затем нажмите клавишу ВВОД:
cscript ospp.vbs /dhistorykms
Для запуска активации введите следующую команду, а затем нажмите клавишу ВВОД:
cscript ospp.vbs /act
Проверьте, если ли в сообщении об ошибке код 0xC004F042. Если в уведомлениях для пользователей отображается код ошибки, его можно использовать для поиска сообщения об ошибке. Для этого введите следующую команду и нажмите клавишу ВВОД:
cscript ospp.vbs /ddescr:0xC004F042
Включение или отключение кэширования узла KMS на клиенте KMS
Чтобы включить кэширование на клиентском компьютере KMS, введите следующую команду и нажмите клавишу ВВОД:
cscript ospp.vbs /cachst:TRUE
Чтобы отключить кэширование на клиентском компьютере KMS, введите следующую команду и нажмите клавишу ВВОД:
cscript ospp.vbs /cachst:FALSE
Проверка имени узла KMS и настройка автообнаружения
Если тестируется узел KMS с именем kmstest.contoso.com и нужно указать его в клиенте KMS, введите следующую команду, затем нажмите клавишу ВВОД:
cscript ospp.vbs /sethst:kmstest.contoso.com
При изменении порта по умолчанию на главном компьютере с KMS необходимо запустить сценарий ospp.vbs с параметром /setprt. > Например: cscript ospp.vbs /setprt:1750
Для запуска активации введите следующую команду, а затем нажмите клавишу ВВОД:
cscript ospp.vbs /act
Для просмотра журнала активации KMS и проверки успешности связи с узлом, введите следующую команду, затем нажмите клавишу ВВОД:
cscript ospp.vbs /dhistorykms
Теперь нужно, чтобы клиент KMS использовал DNS для автообнаружения рабочего узла KMS. Для удаления имени узла KMS введите следующую команду и нажмите клавишу ВВОД:
cscript ospp.vbs /remhst
Сценарий slmgr.vbs
Диспетчер лицензий программного обеспечения (slmgr.vbs) — это скрипт, используемый для настройки и запроса информации о корпоративном лицензировании для узла KMS Office в дополнение к узлу Windows. Дополнительные сведения см. в статье Настройка узлов KMS для Windows.
Сценарий можно запускать локально на целевом компьютере или удаленно на другом компьютере. Для использования сценария необходимо быть администратором. Если сценарий slmgr.vbs запустит обычный пользователь, некоторые данные о лицензиях могут отсутствовать или быть неправильными, а многие действия будут запрещены.
Сценарий slmgr.vbs может использовать сервер сценариев Windows, wscript.exe или сервер сценариев на основе команд, cscript.exe. Администраторы могут указать, какой модуль обработки сценариев будет использоваться. Если модуль обработки сценариев не указан, slmgr.vbs запускается с использованием модуля обработки сценариев по умолчанию, wscript.exe. Мы рекомендуем использовать cscript.exe.
Чтобы изменения вступили в силу, необходимо перезапустить службу лицензирования программного обеспечения. Для этого используйте оснастку служб консоли управления (MMC) или запустите следующую команду:
net stop sppsvc && net start sppsvc
Сценарию slmgr.vbs требуется по крайней мере один параметр. Если сценарий запускается без параметров, он отображает данные справки. В следующей таблице приведен список параметров командной строки slmgr.vbs и описание каждого из них. Большинство параметров в таблице предназначено для настройки главного компьютера с KMS. Тем не менее параметры /sai и /sri передаются клиентам KMS после того, как они установят связь с узлом KMS. Общий синтаксис slmgr.vbs выглядит следующим образом (предполагается, что в качестве обработчика сценариев используется cscript.exe):
cscript slmgr.vbs /parameter
cscript slmgr.vbs [ComputerName] [User] [Password] [Option]
ComputerName Имя удаленного компьютера. Если имя компьютера не указано, используется локальный компьютер.
User Учетная запись с необходимым разрешением на удаленном компьютере.
Password Пароль учетной записи. Если учетная запись и пароль не указаны, используются текущие учетные данные.
Option Параметры представлены в следующей таблице.
Стандартные параметры команды Slmgr.vbs
Вариант | Описание |
---|---|
/ ipk [ProductKey] | Устанавливает ключ продукта для Windows (по умолчанию) или другого приложения, определяемого этим ключом продукта. |
/ ato [ActivationID] | Активирует узел KMS для Windows (по умолчанию) или приложение с указанным идентификатором активации. Идентификатор активации Office 2019 — 70512334-47B4-44DB-A233-BE5EA33B914C, идентификатор активации Office 2016 — 98EBFE73-2084-4C97-932C-C0CD1643BEA7. |
/ dti [ActivationID] | Отображает идентификатор установки, который используется для активации узла KMS для Windows (по умолчанию) по телефону, или приложение с указанным идентификатором активации. Идентификатор активации Office 2019 — 70512334-47B4-44DB-A233-BE5EA33B914C, идентификатор активации Office 2016 — 98EBFE73-2084-4C97-932C-C0CD1643BEA7. Предоставив по телефону идентификатор установки, вы получаете идентификатор подтверждения, который используется для активации узла KMS с помощью параметра /atp. |
/ atp [ConfirmationID][ActivationID] | После получения идентификатора подтверждения активирует узел KMS для Windows (по умолчанию) или приложение с указанным идентификатором активации. Идентификатор активации Office 2019 — 70512334-47B4-44DB-A233-BE5EA33B914C, идентификатор активации Office 2016 — 98EBFE73-2084-4C97-932C-C0CD1643BEA7. |
/ dlv [ActivationID] | Отображает подробные сведения о лицензии для Windows (по умолчанию) или для приложения с указанным идентификатором активации. Идентификатор активации Office 2019 — 70512334-47B4-44DB-A233-BE5EA33B914C, идентификатор активации Office 2016 — 98EBFE73-2084-4C97-932C-C0CD1643BEA7. Например, выполните следующую команду в командной строке с повышенными привилегиями в папке C:\windows\system32, чтобы получить состояние узла KMS Office: cscript slmgr.vbs /dlv 70512334-47B4-44DB-A233-BE5EA33B914C |
/ dli [ActivationID] | Отображает сведения о лицензии для Windows (по умолчанию) или для приложения с указанным идентификатором активации. Идентификатор активации Office 2019 — 70512334-47B4-44DB-A233-BE5EA33B914C, идентификатор активации Office 2016 — 98EBFE73-2084-4C97-932C-C0CD1643BEA7. |
/ upk [ActivationID] | Удаляет ключ продукта для Windows (по умолчанию) или другого приложения с указанным идентификатором активации. Идентификатор активации Office 2019 — 70512334-47B4-44DB-A233-BE5EA33B914C, идентификатор активации Office 2016 — 98EBFE73-2084-4C97-932C-C0CD1643BEA7. ВНИМАНИЕ! Если требуется удалить ключ продукта, например для Office, и по ошибке не введен идентификатор активации, будут удалены все установленные ключи продуктов, в том числе и ключ продукта для Windows. |
/ xpr [ActivationID] | Отображает дату истечения срока действия для текущего состояния лицензии. |
/ sprt [PortNumber] | Устанавливает на главном компьютере с KMS COM-порт TCP. Заменяет PortNumber используемым номером порта TCP. Значение по умолчанию: 1688. |
/ cdns | Отключает автоматическую публикацию DNS главным компьютером с KMS. |
/ sdns | Включает автоматическую публикацию DNS главным компьютером с KMS. |
/ cpri | Понижает приоритет процессов главного компьютера с KMS. |
/ sai [ActivationInterval] | Задает частоту, с которой клиент KMS предпринимает попытки активироваться, если ему не удается найти главный компьютер с KMS. Заменяет ActivationInterval значением в минутах. Значение по умолчанию: 120. |
/ sri [RenewalInterval] | Задает частоту, с которой KMS-клиент предпринимает попытки продлить активацию, устанавливая связь с главным компьютером с KMS. Заменяет RenewalInterval значением в минутах. Значение по умолчанию: 10080 (7 дней). Этот параметр перезаписывает локальные параметры клиента KMS. |
В следующей таблице показаны параметры команды для активации леса AD DS с помощью Active Directory.
Параметры команды Slmgr.vbs для активации с помощью Active Directory
Вариант | Описание |
---|---|
/ ad-activation-online [ProductKey] | Активирует лес доменных служб Active Directory с помощью ключа продукта, указанного пользователем. |
/ ad-activation-apply-get-iid [ProductKey] | Отображает идентификатор установки для леса AD DS. |
/ ad-activation-apply-cid [ProductKey][ConfirmationID] | Активирует лес AD DS с помощью указанных пользователем ключа продукта и идентификатора подтверждения. |
Средство управления активацией корпоративных лицензий (VAMT)
Средство управления активацией корпоративных лицензий (VAMT) предоставляет графический пользовательский интерфейс для управления активацией корпоративных лицензий. Дополнительные сведения о VAMT см. в статье Технический справочник по средству управления активацией корпоративных лицензий (VAMT).
Для Office 2019 требуется версия не ниже VAMT 3.1.