Chia sẻ - Test code convert Office 2019 Volume sang Retail thành công! | Page 3 | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We don't have any banner, Flash, animation, obnoxious sound, or popup ad. We do not implement these annoying types of ads!

We need money to operate the site, and almost all of it comes from our online advertising.

Please add https://vn-z.vn to your ad blocking whitelist or disable your adblocking software.

×

Chia sẻ Test code convert Office 2019 Volume sang Retail thành công!

Hoang Duch2

Rồng Đỏ
Sao mà kết quả nó ra khác nhau, trên MsAct thì nó báo thành công, nhưng bên CMD thì nó báo error cho key Volume.

Tôi nói lại trình tự mình đã làm như sau:
1/- Làm theo bài viết là key retail
2/- Chạy code của bạn haibmh và điền key trực tiếp không thành công
3/- Chạy code chuyển sang Volume của Đông Phương, điền key trực tiếp không thành công, chuyển sang MsAct thì key còn by phone, get CID với webact thì có CID, điền vào CMD thì lỗi key, điền vào MsAct thì báo thành công.

Vậy hiện tại vẫn là Retail chứ không phải Volume?

Hình từ CMD:

AFTER CONVERTING-11  2019-02-19_173404.png




AFTER CONVERTING-10  2019-02-19_173404.png
 

haibmh

Quyền Trượng Hồng Ngọc
Sao mà kết quả nó ra khác nhau, trên MsAct thì nó báo thành công, nhưng bên CMD thì nó báo error cho key Volume.

Tôi nói lại trình tự mình đã làm như sau:
1/- Làm theo bài viết là key retail
2/- Chạy code của bạn haibmh và điền key trực tiếp không thành công
3/- Chạy code chuyển sang Volume của Đông Phương, điền key trực tiếp không thành công, chuyển sang MsAct thì key còn by phone, get CID với webact thì có CID, điền vào CMD thì lỗi key, điền vào MsAct thì báo thành công.

Vậy hiện tại vẫn là Retail chứ không phải Volume?

Hình từ CMD:

Xem phần đính kèm 2222



Xem phần đính kèm 2223
Theo ý kiến cá nhân em thì cài đặt bằng file ISO do chính MS đưa ra,sau đó dùng CMD để nạp SKU VL là cẩn thận và chắc chắn nhất.Key thì sẽ nhận cả Retail lẫn VL bác ạ.
 

Hoang Duch2

Rồng Đỏ
Theo ý kiến cá nhân em thì cài đặt bằng file ISO do chính MS đưa ra,sau đó dùng CMD để nạp SKU VL là cẩn thận và chắc chắn nhất.Key thì sẽ nhận cả Retail lẫn VL bác ạ.

Cảm ơn bạn nha, ngày mai có thời gian tôi sẽ test lại, bây giờ bên tôi đã tới giờ nghỉ rồi. Tôi xin chào tất cả các bạn, chúc các bạn sinh hoạt vui vẻ nhé.
 

hcvnd

Rìu Chiến Chấm
Sao mà kết quả nó ra khác nhau, trên MsAct thì nó báo thành công, nhưng bên CMD thì nó báo error cho key Volume.

Tôi nói lại trình tự mình đã làm như sau:
1/- Làm theo bài viết là key retail
2/- Chạy code của bạn haibmh và điền key trực tiếp không thành công
3/- Chạy code chuyển sang Volume của Đông Phương, điền key trực tiếp không thành công, chuyển sang MsAct thì key còn by phone, get CID với webact thì có CID, điền vào CMD thì lỗi key, điền vào MsAct thì báo thành công.

Vậy hiện tại vẫn là Retail chứ không phải Volume?

Hình từ CMD:

Xem phần đính kèm 2222



Xem phần đính kèm 2223
Code của bác Hải là tốt đấy bác ah, cháu vừa test lại trên bản C2R và kết quả đây ạ.
2019-02-20_102106.png
 

qka9999

Đi một ngày đàng, học một sàng khôn.
Cảm ơn bài viết bổ ích của bác @Hoang Duch2.

Cháu xin được mạn phép múa rìu tý ạ. Có gì không phải mong mọi người rộng lòng bỏ qua.

Trước tiên nói về Key Retail. Key này có 2 loại: MSDNR_Retail và R_Retail.
  • MSDNR_Retail Key: Là Key mà Microsoft dành riêng cho nhà phát triển để thử nghiệm phần mềm, loại Key này thường bị Leak và được chia sẻ nhiều hơn.
  • R_Retail Key: Là loại key Microsoft bán trực tiếp cho người dùng cuối thông qua Store và các đại lý ủy quyền (như Amazon chẳng hạn). Vì vậy mà loại key này khó bị Leak và hiếm hơn key MSDNR_Retail. Office 2019 ProPlus cháu mới chỉ thấy có 1 key loại này bị rò rỉ, là key bác @Hoang Duch2 dùng ở trên.
Khi xem đoạn code của bác @Hoang Duch2 cháu thấy mới chỉ kích hoạt được với key R_Retail, còn với key MSDNR_Retail thì sẽ báo lỗi key không tương thích.
Để kích hoạt được với cả 2 loại Key Retail thì đoạn code cần được thêm phần sau:
Mã:
if exist "%ProgramFiles%\Microsoft Office\Office16\ospp.vbs" cd /d "%ProgramFiles%\Microsoft Office\Office16"
if exist "%ProgramFiles(x86)%\Microsoft Office\Office16\ospp.vbs" cd /d "%ProgramFiles(x86)%\Microsoft Office\Office16"
for /f %i in ('dir /b ..\root\Licenses16\ProPlus2019MSDNR_Retail*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%i"
Trước khi thêm code, bác có thể nạp key MSDNR_Retail sau vào MSAct Plus để kiểm chứng.
Office 2019 ProPlus MSDNR_Retail
Key: BQFKQ-9N4RG-W4B27-KKQGH-FJTTG
Hi vọng chia sẻ này sẽ giúp bài viết của bác @Hoang Duch2 được hoàn thiện hơn. Cảm ơn mọi người đã đọc.
Key bác @Hoang Duch2 sử dụng hình như là của bạn @QuangDat chia sẻ thì phải. Nó là key duy nhất từng xuất hiện tại đây.
 

haibmh

Quyền Trượng Hồng Ngọc
Bạn @haibmh, tôi ráng thêm một chút, chạy lại code của bạn và điền key VL thì nó ra hình như sau:


Xem phần đính kèm 2224



Vậy là thành công rồi phải không bạn? Tạm biệt bạn, hẹn lại ngày mai nhé.
Vâng bác,nó cứ báo LICENSED là thành công rồi.Sau cẩn thận khi cài lại cứ ad key bằng MSAct thì khả năng hỏng là rất thấp bác ạ.
 

Hoang Duch2

Rồng Đỏ
vậy là được rồi bác

Bác đã thêm vào phần code từ #1, cháu xem lại có đúng không giúp Bác nhé. Cảm ơn cháu.
 

Hoang Duch2

Rồng Đỏ
Key bác @Hoang Duch2 sử dụng hình như là của bạn @QuangDat chia sẻ thì phải. Nó là key duy nhất từng xuất hiện tại đây.

À Bác sơ ý lúc lưu key không kèm tên người gửi nên không nhớ chính xác là của ai cháu à, không biết có phải là cái ngày mà bạn @QuangDat nói là ngày đặc biệt gì đó không?

P/s: Bác tìm ra rồi, đúng là của cháu Đạt đó.
 

haibmh

Quyền Trượng Hồng Ngọc
À Bác sơ ý lúc lưu key không kèm tên người gửi nên không nhớ chính xác là của ai cháu à, không biết có phải là cái ngày mà bạn @QuangDat nói là ngày đặc biệt gì đó không?
Ai share ra đầu tiên thì em ko biết,chỉ biết em copy bên CN về đây đầu tiên,Còn giờ nó ở khắp thế giới này rồi bác ạ:p
 

Hoang Duch2

Rồng Đỏ
Ai share ra đầu tiên thì em ko biết,chỉ biết em copy bên CN về đây đầu tiên,Còn giờ nó ở khắp thế giới này rồi bác ạ:p

Bạn có nguyên một warehouse key, nghĩa là cả một kho hàng, tôi đã từng nghe các bạn khác nói là đã được bạn cho xem qua và không thể tưởng tượng nổi, tôi nhiều lúc chép lại thì không ghi tên người gửi, lúc có lúc không và kèm theo trí nhớ kém nên có lúc nhầm lẫn, mong bạn không phiền tôi nhé.
 

maiphuong

Rìu Bạc Đôi
Sorry cả nhà đến giờ mới công tác về.Thấy gạch đá nên tạ lỗi cùng các bạn
Tôi cài bản chuẩn Office 2019 sau khi chạy code này trên cmd nó kích hoạt KMS(dùng lệnh gỡ key rồi nhập key VL hay Re là ra bản đó)
@echo off
set _Debug=0
%windir%\system32\reg.exe query "HKU\S-1-5-19" >nul 2>&1 || (
set "msg=Chuot phai 'Run as administrator'"
goto :end
)
if %_Debug% EQU 0 (
set "_Nul_1=1>nul"
set "_Nul_2=2>nul"
set "_Nul_2e=2^>nul"
set "_Nul_1_2=1>nul 2>nul"
call :Begin
) else (
set "_Nul_1="
set "_Nul_2="
set "_Nul_2e="
set "_Nul_1_2="
echo.
echo Dang chay trong che do go loi...
echo Cua so se bi dong khi hoan tat
@echo on
@prompt $G
@call :Begin >"%~dpn0.tmp" 2>&1 &cmd /u /c type "%~dpn0.tmp">"%~dpn0_Debug.log"&del "%~dpn0.tmp"
)
exit

:Begin
::color F0
title CONVERT OFFICE 2019 Retail2Volume
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
if /i "%PROCESSOR_ARCHITECTURE%" equ "AMD64" (set arch=x64) else (set arch=x86)
set "_SLMGR=%SystemRoot%\System32\slmgr.vbs"

if %winbuild% LSS 7601 (
set "msg=Loi"
goto :end
)
sc query ClickToRunSvc %_Nul_1_2%
set error1=%errorlevel%
sc query OfficeSvc %_Nul_1_2%
set error2=%errorlevel%
if %error1% equ 1060 if %error2% equ 1060 (
set "msg=Khong co serrvice Office ClickToRun..."
goto :end
)

set _Office16=0
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath" %_Nul_2e%') do if exist "%%b\Office16\OSPP.VBS" (
set _Office16=1&set "_OSPP=%%b\Office16\OSPP.VBS"
)
if exist "%ProgramFiles%\Microsoft Office\Office16\OSPP.VBS" (
set _Office16=1&set "_OSPP=%ProgramFiles%\Microsoft Office\Office16\OSPP.VBS"
) else if exist "%ProgramFiles(x86)%\Microsoft Office\Office16\OSPP.VBS" (
set _Office16=1&set "_OSPP=%ProgramFiles(x86)%\Microsoft Office\Office16\OSPP.VBS"
)
if %_Office16% equ 0 (
set "msg=Office 2019 khong duoc cai dat..."
goto :end
)

for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath" %_Nul_2e%') do if not errorlevel 1 (set "_InstallRoot=%%b\root")
if "%_InstallRoot%" neq "" (
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v PackageGUID" %_Nul_2e%') do if not errorlevel 1 (set "_GUID=%%b")
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration /v ProductReleaseIds" %_Nul_2e%') do if not errorlevel 1 (set "ProductIds=%%b")
set "_Config=HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration"
set "_PRIDs=HKLM\SOFTWARE\Microsoft\Office\ClickToRun\ProductReleaseIDs"
) else (
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun /v InstallPath" %_Nul_2e%') do if not errorlevel 1 (set "_InstallRoot=%%b\root")
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun /v PackageGUID" %_Nul_2e%') do if not errorlevel 1 (set "_GUID=%%b")
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun\Configuration /v ProductReleaseIds" %_Nul_2e%') do if not errorlevel 1 (set "ProductIds=%%b")
set "_Config=HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun\Configuration"
set "_PRIDs=HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun\ProductReleaseIDs"
)
set "_LicensesPath=%_InstallRoot%\Licenses16"
set "_Integrator=%_InstallRoot%\integration\integrator.exe"
for /f "skip=2 tokens=2*" %%a in ('"reg query %_PRIDs% /v ActiveConfiguration" %_Nul_2e%') do set "_PRIDs=%_PRIDs%\%%b"

if "%ProductIds%" equ "" (
set "msg=Khong tim thay Office ProductIDs..."
goto :end
)
if not exist "%_LicensesPath%\*.xrm-ms" (
set "msg=No Office License file found..."
goto :end
)
if not exist "%_Integrator%" (
set "msg=Not found in the system Office Licenses Integrator..."
goto :end
)
if %winbuild% lss 9200 if not exist "%_OSPP%" (
set "msg=No license tool found OSPP.vbs..."
goto :end
)

:Check
echo.
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo Checking office license.......................
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if %winbuild% geq 9200 (
set spp=SoftwareLicensingProduct
set sps=SoftwareLicensingService
) else (
set spp=OfficeSoftwareProtectionProduct
set sps=OfficeSoftwareProtectionService
)
for /f "tokens=2 delims==" %%a in ('"wmic path %sps% get version /value" %_Nul_2e%') do set ver=%%a
set _Free=0
for %%a in (Professional2019,ProPlus2019,ProjectPro2019,VisioPro2019) do (
wmic path %spp% where LicenseFamily='Office19%%aR_PrepidBypass' get LicenseStatus %_Nul_2% | findstr "1" %_Nul_1% && (set _%%aR=1&set _Free=1) || (set _%%aR=0)
)
wmic path %spp% where (Description like '%%KMSCLIENT%%' AND not LicenseFamily='Office16MondoR_KMS_Automation') get LicenseFamily %_Nul_2% | findstr /i /C:"Office" %_Nul_1% && (set _KMS=1) || (set _KMS=0)
wmic path %spp% where (Description like '%%TIMEBASED%%') get LicenseFamily %_Nul_2% | findstr /i /C:"Office" %_Nul_1% && (set _Time=1) || (set _Time=0)
wmic path %spp% where (Description like '%%Grace%%') get LicenseFamily %_Nul_2% | findstr /i /C:"Office" %_Nul_1% && (set _Grace=1) || (set _Grace=0)
if %_Time% equ 0 if %_Grace% equ 0 if %_Free% equ 0 if %_KMS% equ 1 (
set "msg=No conversion required or Clean the license..."
goto :end
)
if %_Free% equ 1 if %_KMS% equ 0 (
set "msg=No conversion required or Clean the license.."
goto :end
)
setlocal EnableDelayedExpansion
for %%a in (Professional2019,ProPlus2019,ProjectPro2019,VisioPro2019) do if !_%%aR! equ 1 (
if "!_Preserve!" equ "" (set "_Preserve=%%aRetail") else (set "_Preserve=!_Preserve!,%%aRetail")
)
if %_KMS% equ 0 goto :Retail2Volume
for /f "tokens=2 delims==_" %%a in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%' AND LicenseFamily like 'Office%%' AND LicenseStatus='1') get LicenseFamily /value"') do (call :preserve %%a)
goto :Retail2Volume

:preserve
if /i '%1' equ 'Office16MondoR' exit /b
set "_License=%1"
set "_License=!_License:~8!"
if /i "!_License:~-6!" equ "XC2RVL" (set "_License=!_License:~0,-6!") else (set "_License=!_License:~0,-2!")
if "!_Preserve!" equ "" (set "_Preserve=!_License!") else (set "_Preserve=!_Preserve!,!_License!")
exit /b

::Retail2Volume
echo.
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo Cleaning the license Office ...
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
cd /d "%~dp0"
%arch%\cleanospp.exe -Licenses %_Nul_1_2%
echo.
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo Installing Licence Office Volume...
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo.
set O19Ids=ProPlus2019,ProjectPro2019,VisioPro2019,Standard2019,ProjectStd2019,VisioStd2019
set SkuIds=O365ProPlus,Professional,ProjectPro,VisioPro,Standard,ProjectStd,VisioStd
set A19Ids=Excel2019,Outlook2019,PowerPoint2019,Publisher2019,Word2019
set AppIds=Excel,OneNote,Outlook,PowerPoint,Publisher,Word

for %%a in (Mondo,%O19Ids%,%A19Ids%,Access2019,SkypeforBusiness2019,Professional2019,%SkuIds%,%AppIds%,Access,SkypeforBusiness,ProPlus) do (
set _%%a=0
)
for %%a in (Mondo,%O19Ids%,%A19Ids%,Access2019,SkypeforBusiness2019,Professional2019,%SkuIds%,%AppIds%,Access,SkypeforBusiness) do (
echo %ProductIds%| findstr /I /C:"%%aRetail" %_Nul_1% && set _%%a=1
)
for %%a in (Mondo,%O19Ids%,%A19Ids%,Access2019,SkypeforBusiness2019,%SkuIds%,%AppIds%,Access,SkypeforBusiness) do (
echo %ProductIds%| findstr /I /C:"%%aVolume" %_Nul_1% && set _%%a=0
)
reg query %_PRIDs%\ProPlusRetail.16 %_Nul_1_2% && set _ProPlus=1
reg query %_PRIDs%\ProPlusVolume.16 %_Nul_1_2% && set _ProPlus=0

for %%a in (Professional2019,ProPlus2019,ProjectPro2019,VisioPro2019) do if !_%%aR! equ 1 (
set _%%a=0
)
if !_Mondo! equ 1 (
echo Mondo Suite
echo.
call :InsLic Mondo
goto :GVLK
)
if !_O365ProPlus! equ 1 (
echo O365ProPlus Suite -^> Mondo Licenses
echo.
call :InsLic Mondo
)
if !_ProPlus2019! equ 1 if !_O365ProPlus! equ 0 (
echo ProPlus2019 Suite
echo.
call :InsLic ProPlus2019
)
if !_ProPlus! equ 1 if !_ProPlus2019! equ 0 if !_O365ProPlus! equ 0 (
echo ProPlus Suite
echo.
call :InsLic ProPlus
)
if !_Professional2019! equ 1 if !_ProPlus2019! equ 0 if !_O365ProPlus! equ 0 if !_ProPlus! equ 0 (
echo Professional2019 Suite -^> ProPlus2019 Licenses
echo.
call :InsLic ProPlus2019
)
if !_Professional! equ 1 if !_ProPlus2019! equ 0 if !_O365ProPlus! equ 0 if !_ProPlus! equ 0 if !_Professional2019! equ 0 (
echo Professional Suite -^> ProPlus Licenses
echo.
call :InsLic ProPlus
)
if !_Standard2019! equ 1 if !_ProPlus2019! equ 0 if !_O365ProPlus! equ 0 if !_ProPlus! equ 0 if !_Professional2019! equ 0 if !_Professional! equ 0 (
echo Standard2019 Suite
echo.
call :InsLic Standard2019
)
if !_Standard! equ 1 if !_ProPlus2019! equ 0 if !_O365ProPlus! equ 0 if !_ProPlus! equ 0 if !_Professional2019! equ 0 if !_Professional! equ 0 if !_Standard2019! equ 0 (
echo Standard Suite
echo.
call :InsLic Standard
)
for %%a in (ProjectPro2019,VisioPro2019,ProjectStd2019,VisioStd2019) do if !_%%a! equ 1 (
echo %%a SKU
echo.
call :InsLic %%a
)
for %%a in (ProjectPro,ProjectStd,VisioPro,VisioStd) do if !_%%a! equ 1 (
if !_%%a2019! equ 0 (echo %%a SKU&echo.&call :InsLic %%aX)
)
for %%a in (%A19Ids%,%AppIds%) do if !_%%a! equ 1 (
if !_ProPlus2019! equ 0 if !_O365ProPlus! equ 0 if !_ProPlus! equ 0 if !_Professional2019! equ 0 if !_Professional! equ 0 if !_Standard2019! equ 0 if !_Standard! equ 0 (echo %%a App&echo.&call :InsLic %%a)
)
for %%a in (Access2019,Access) do if !_%%a! equ 1 (
if !_ProPlus2019! equ 0 if !_O365ProPlus! equ 0 if !_ProPlus! equ 0 if !_Professional2019! equ 0 if !_Professional! equ 0 (echo %%a App&echo.&call :InsLic %%a)
)
for %%a in (SkypeforBusiness2019,SkypeforBusiness) do if !_%%a! equ 1 (
if !_ProPlus2019! equ 0 if !_O365ProPlus! equ 0 if !_ProPlus! equ 0 (echo %%a App&echo.&call :InsLic %%a)
)
goto :GVLK

:InsLic
set "_ID=%1Volume"
"%_Integrator%" /I /License PRIDName=%_ID%.16 PackageGUID="%_GUID%" PackageRoot="%_InstallRoot%" %_Nul_1%
reg add %_Config% /f /v %_ID%.OSPPReady /t REG_SZ /d 1 %_Nul_1%
reg query %_Config% /v ProductReleaseIds | findstr /I "%_ID%" %_Nul_1%
if %errorlevel% neq 0 (
for /f "skip=2 tokens=2*" %%a in ('reg query %_Config% /v ProductReleaseIds') do reg add %_Config% /f /v ProductReleaseIds /t REG_SZ /d "%%b,%_ID%" %_Nul_1%
)
exit /b

:GVLK
if "!_Preserve!" neq "" for %%a in (!_Preserve!) do (
reg query %_Config% /v %%aVolume.OSPPReady %_Nul_1_2% || "%_Integrator%" /I /License PRIDName=%%aVolume.16 PackageGUID="%_GUID%" PackageRoot="%_InstallRoot%" %_Nul_1%
)
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo Installing Licence Key KMS_Client...
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo.
for /f "tokens=2 delims==" %%G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%' AND LicenseFamily like 'Office%%' AND PartialProductKey=NULL) get ID /value" %_Nul_2e%') do (set app=%%G&call :InsKey)
if exist "%SystemRoot%\System32\spp\store_test\2.0\tokens.dat" (
echo.
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo Installing Key.........................................
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo.
cscript //Nologo //B %_SLMGR% /rilc
)
set "msg=Done THANK YOU"
goto :end

:InsKey
if /i '%app%' equ 'e914ea6e-a5fa-4439-a394-a9bb3293ca09' exit /b
if /i '%app%' equ '0bc88885-718c-491d-921f-6f214349e79c' exit /b
if /i '%app%' equ 'fc7c4d0c-2e85-4bb9-afd4-01ed1476b5e9' exit /b
if /i '%app%' equ '500f6619-ef93-4b75-bcb4-82819998a3ca' exit /b
set "key="
for /f "tokens=2 delims==" %%A in ('"wmic path %spp% where ID='%app%' get LicenseFamily /value"') do echo %%A
for /f %%A in ('cscript //Nologo x86\key.vbs %app%') do set "key=%%A"
if "%key%" equ "" (echo Could not find matching gVLK&echo.&exit /b)
wmic path %sps% where version='%ver%' call InstallProductKey ProductKey="%key%" %_Nul_1_2%
echo.
exit /b

:end
echo.
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo %msg%
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo.
echo Nhan phim bat ky de thoat...
if %_Debug% EQU 0 pause >nul
goto :eof
Nếu có vi phạm bản quyền của bạn nào xin hai chữ "đại xá".Bạn nào làm không nên cũng xin đừng gạch đá.
Cảm ơn không ném đá
 
Sửa lần cuối:

Hoang Duch2

Rồng Đỏ
Cũng trên bản Win này, hôm đó tôi cài bản VISO Proplus 2019 VL, dùng tiếp code từ #1 để chuyển sang Retail thành công như sau:

set ver=16
if exist "%ProgramFiles%\Microsoft Office\Office%ver%\ospp.vbs" cd /d "%ProgramFiles%\Microsoft Office\Office%ver%"
if exist "%ProgramFiles(x86)%\:Microsoft Office\Office%ver%\ospp.vbs" cd /d "%ProgramFiles(x86)%\Microsoft Office\Office%ver%"
for /f %i in ('dir /b ..\root\Licenses%ver%\VisioPro2019R_Retail*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses%ver%\%i"
exit
 

Hoang Duch2

Rồng Đỏ
Sorry cả nhà đến giờ mới công tác về.Thấy gạch đá nên tạ lỗi cùng các bạn
Tôi cài bản chuẩn Office 2019 sau khi chạy code này trên cmd nó kích hoạt KMS(dùng lệnh gỡ key rồi nhập key VL hay Re là ra bản đó)
@echo off
set _Debug=0
%windir%\system32\reg.exe query "HKU\S-1-5-19" >nul 2>&1 || (
set "msg=Chuot phai 'Run as administrator'"
goto :end
)
if %_Debug% EQU 0 (
set "_Nul_1=1>nul"
set "_Nul_2=2>nul"
set "_Nul_2e=2^>nul"
set "_Nul_1_2=1>nul 2>nul"
call :Begin
) else (
set "_Nul_1="
set "_Nul_2="
set "_Nul_2e="
set "_Nul_1_2="
echo.
echo Dang chay trong che do go loi...
echo Cua so se bi dong khi hoan tat
@echo on
@prompt $G
@call :Begin >"%~dpn0.tmp" 2>&1 &cmd /u /c type "%~dpn0.tmp">"%~dpn0_Debug.log"&del "%~dpn0.tmp"
)
exit

:Begin
::color F0
title CONVERT OFFICE 2019 Retail2Volume
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
if /i "%PROCESSOR_ARCHITECTURE%" equ "AMD64" (set arch=x64) else (set arch=x86)
set "_SLMGR=%SystemRoot%\System32\slmgr.vbs"

if %winbuild% LSS 7601 (
set "msg=Loi"
goto :end
)
sc query ClickToRunSvc %_Nul_1_2%
set error1=%errorlevel%
sc query OfficeSvc %_Nul_1_2%
set error2=%errorlevel%
if %error1% equ 1060 if %error2% equ 1060 (
set "msg=Khong co serrvice Office ClickToRun..."
goto :end
)

set _Office16=0
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath" %_Nul_2e%') do if exist "%%b\Office16\OSPP.VBS" (
set _Office16=1&set "_OSPP=%%b\Office16\OSPP.VBS"
)
if exist "%ProgramFiles%\Microsoft Office\Office16\OSPP.VBS" (
set _Office16=1&set "_OSPP=%ProgramFiles%\Microsoft Office\Office16\OSPP.VBS"
) else if exist "%ProgramFiles(x86)%\Microsoft Office\Office16\OSPP.VBS" (
set _Office16=1&set "_OSPP=%ProgramFiles(x86)%\Microsoft Office\Office16\OSPP.VBS"
)
if %_Office16% equ 0 (
set "msg=Office 2019 khong duoc cai dat..."
goto :end
)

for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath" %_Nul_2e%') do if not errorlevel 1 (set "_InstallRoot=%%b\root")
if "%_InstallRoot%" neq "" (
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v PackageGUID" %_Nul_2e%') do if not errorlevel 1 (set "_GUID=%%b")
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration /v ProductReleaseIds" %_Nul_2e%') do if not errorlevel 1 (set "ProductIds=%%b")
set "_Config=HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration"
set "_PRIDs=HKLM\SOFTWARE\Microsoft\Office\ClickToRun\ProductReleaseIDs"
) else (
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun /v InstallPath" %_Nul_2e%') do if not errorlevel 1 (set "_InstallRoot=%%b\root")
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun /v PackageGUID" %_Nul_2e%') do if not errorlevel 1 (set "_GUID=%%b")
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun\Configuration /v ProductReleaseIds" %_Nul_2e%') do if not errorlevel 1 (set "ProductIds=%%b")
set "_Config=HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun\Configuration"
set "_PRIDs=HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun\ProductReleaseIDs"
)
set "_LicensesPath=%_InstallRoot%\Licenses16"
set "_Integrator=%_InstallRoot%\integration\integrator.exe"
for /f "skip=2 tokens=2*" %%a in ('"reg query %_PRIDs% /v ActiveConfiguration" %_Nul_2e%') do set "_PRIDs=%_PRIDs%\%%b"

if "%ProductIds%" equ "" (
set "msg=Khong tim thay Office ProductIDs..."
goto :end
)
if not exist "%_LicensesPath%\*.xrm-ms" (
set "msg=No Office License file found..."
goto :end
)
if not exist "%_Integrator%" (
set "msg=Not found in the system Office Licenses Integrator..."
goto :end
)
if %winbuild% lss 9200 if not exist "%_OSPP%" (
set "msg=No license tool found OSPP.vbs..."
goto :end
)

:Check
echo.
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo Checking office license.......................
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if %winbuild% geq 9200 (
set spp=SoftwareLicensingProduct
set sps=SoftwareLicensingService
) else (
set spp=OfficeSoftwareProtectionProduct
set sps=OfficeSoftwareProtectionService
)
for /f "tokens=2 delims==" %%a in ('"wmic path %sps% get version /value" %_Nul_2e%') do set ver=%%a
set _Free=0
for %%a in (Professional2019,ProPlus2019,ProjectPro2019,VisioPro2019) do (
wmic path %spp% where LicenseFamily='Office19%%aR_PrepidBypass' get LicenseStatus %_Nul_2% | findstr "1" %_Nul_1% && (set _%%aR=1&set _Free=1) || (set _%%aR=0)
)
wmic path %spp% where (Description like '%%KMSCLIENT%%' AND not LicenseFamily='Office16MondoR_KMS_Automation') get LicenseFamily %_Nul_2% | findstr /i /C:"Office" %_Nul_1% && (set _KMS=1) || (set _KMS=0)
wmic path %spp% where (Description like '%%TIMEBASED%%') get LicenseFamily %_Nul_2% | findstr /i /C:"Office" %_Nul_1% && (set _Time=1) || (set _Time=0)
wmic path %spp% where (Description like '%%Grace%%') get LicenseFamily %_Nul_2% | findstr /i /C:"Office" %_Nul_1% && (set _Grace=1) || (set _Grace=0)
if %_Time% equ 0 if %_Grace% equ 0 if %_Free% equ 0 if %_KMS% equ 1 (
set "msg=No conversion required or Clean the license..."
goto :end
)
if %_Free% equ 1 if %_KMS% equ 0 (
set "msg=No conversion required or Clean the license.."
goto :end
)
setlocal EnableDelayedExpansion
for %%a in (Professional2019,ProPlus2019,ProjectPro2019,VisioPro2019) do if !_%%aR! equ 1 (
if "!_Preserve!" equ "" (set "_Preserve=%%aRetail") else (set "_Preserve=!_Preserve!,%%aRetail")
)
if %_KMS% equ 0 goto :Retail2Volume
for /f "tokens=2 delims==_" %%a in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%' AND LicenseFamily like 'Office%%' AND LicenseStatus='1') get LicenseFamily /value"') do (call :preserve %%a)
goto :Retail2Volume

:preserve
if /i '%1' equ 'Office16MondoR' exit /b
set "_License=%1"
set "_License=!_License:~8!"
if /i "!_License:~-6!" equ "XC2RVL" (set "_License=!_License:~0,-6!") else (set "_License=!_License:~0,-2!")
if "!_Preserve!" equ "" (set "_Preserve=!_License!") else (set "_Preserve=!_Preserve!,!_License!")
exit /b

:Retail2Volume
echo.
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo Cleaning the license Office ...
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
cd /d "%~dp0"
%arch%\cleanospp.exe -Licenses %_Nul_1_2%
echo.
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo Installing Licence Office Volume...
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo.
set O19Ids=ProPlus2019,ProjectPro2019,VisioPro2019,Standard2019,ProjectStd2019,VisioStd2019
set SkuIds=O365ProPlus,Professional,ProjectPro,VisioPro,Standard,ProjectStd,VisioStd
set A19Ids=Excel2019,Outlook2019,PowerPoint2019,Publisher2019,Word2019
set AppIds=Excel,OneNote,Outlook,PowerPoint,Publisher,Word

for %%a in (Mondo,%O19Ids%,%A19Ids%,Access2019,SkypeforBusiness2019,Professional2019,%SkuIds%,%AppIds%,Access,SkypeforBusiness,ProPlus) do (
set _%%a=0
)
for %%a in (Mondo,%O19Ids%,%A19Ids%,Access2019,SkypeforBusiness2019,Professional2019,%SkuIds%,%AppIds%,Access,SkypeforBusiness) do (
echo %ProductIds%| findstr /I /C:"%%aRetail" %_Nul_1% && set _%%a=1
)
for %%a in (Mondo,%O19Ids%,%A19Ids%,Access2019,SkypeforBusiness2019,%SkuIds%,%AppIds%,Access,SkypeforBusiness) do (
echo %ProductIds%| findstr /I /C:"%%aVolume" %_Nul_1% && set _%%a=0
)
reg query %_PRIDs%\ProPlusRetail.16 %_Nul_1_2% && set _ProPlus=1
reg query %_PRIDs%\ProPlusVolume.16 %_Nul_1_2% && set _ProPlus=0

for %%a in (Professional2019,ProPlus2019,ProjectPro2019,VisioPro2019) do if !_%%aR! equ 1 (
set _%%a=0
)
if !_Mondo! equ 1 (
echo Mondo Suite
echo.
call :InsLic Mondo
goto :GVLK
)
if !_O365ProPlus! equ 1 (
echo O365ProPlus Suite -^> Mondo Licenses
echo.
call :InsLic Mondo
)
if !_ProPlus2019! equ 1 if !_O365ProPlus! equ 0 (
echo ProPlus2019 Suite
echo.
call :InsLic ProPlus2019
)
if !_ProPlus! equ 1 if !_ProPlus2019! equ 0 if !_O365ProPlus! equ 0 (
echo ProPlus Suite
echo.
call :InsLic ProPlus
)
if !_Professional2019! equ 1 if !_ProPlus2019! equ 0 if !_O365ProPlus! equ 0 if !_ProPlus! equ 0 (
echo Professional2019 Suite -^> ProPlus2019 Licenses
echo.
call :InsLic ProPlus2019
)
if !_Professional! equ 1 if !_ProPlus2019! equ 0 if !_O365ProPlus! equ 0 if !_ProPlus! equ 0 if !_Professional2019! equ 0 (
echo Professional Suite -^> ProPlus Licenses
echo.
call :InsLic ProPlus
)
if !_Standard2019! equ 1 if !_ProPlus2019! equ 0 if !_O365ProPlus! equ 0 if !_ProPlus! equ 0 if !_Professional2019! equ 0 if !_Professional! equ 0 (
echo Standard2019 Suite
echo.
call :InsLic Standard2019
)
if !_Standard! equ 1 if !_ProPlus2019! equ 0 if !_O365ProPlus! equ 0 if !_ProPlus! equ 0 if !_Professional2019! equ 0 if !_Professional! equ 0 if !_Standard2019! equ 0 (
echo Standard Suite
echo.
call :InsLic Standard
)
for %%a in (ProjectPro2019,VisioPro2019,ProjectStd2019,VisioStd2019) do if !_%%a! equ 1 (
echo %%a SKU
echo.
call :InsLic %%a
)
for %%a in (ProjectPro,ProjectStd,VisioPro,VisioStd) do if !_%%a! equ 1 (
if !_%%a2019! equ 0 (echo %%a SKU&echo.&call :InsLic %%aX)
)
for %%a in (%A19Ids%,%AppIds%) do if !_%%a! equ 1 (
if !_ProPlus2019! equ 0 if !_O365ProPlus! equ 0 if !_ProPlus! equ 0 if !_Professional2019! equ 0 if !_Professional! equ 0 if !_Standard2019! equ 0 if !_Standard! equ 0 (echo %%a App&echo.&call :InsLic %%a)
)
for %%a in (Access2019,Access) do if !_%%a! equ 1 (
if !_ProPlus2019! equ 0 if !_O365ProPlus! equ 0 if !_ProPlus! equ 0 if !_Professional2019! equ 0 if !_Professional! equ 0 (echo %%a App&echo.&call :InsLic %%a)
)
for %%a in (SkypeforBusiness2019,SkypeforBusiness) do if !_%%a! equ 1 (
if !_ProPlus2019! equ 0 if !_O365ProPlus! equ 0 if !_ProPlus! equ 0 (echo %%a App&echo.&call :InsLic %%a)
)
goto :GVLK

:InsLic
set "_ID=%1Volume"
"%_Integrator%" /I /License PRIDName=%_ID%.16 PackageGUID="%_GUID%" PackageRoot="%_InstallRoot%" %_Nul_1%
reg add %_Config% /f /v %_ID%.OSPPReady /t REG_SZ /d 1 %_Nul_1%
reg query %_Config% /v ProductReleaseIds | findstr /I "%_ID%" %_Nul_1%
if %errorlevel% neq 0 (
for /f "skip=2 tokens=2*" %%a in ('reg query %_Config% /v ProductReleaseIds') do reg add %_Config% /f /v ProductReleaseIds /t REG_SZ /d "%%b,%_ID%" %_Nul_1%
)
exit /b

:GVLK
if "!_Preserve!" neq "" for %%a in (!_Preserve!) do (
reg query %_Config% /v %%aVolume.OSPPReady %_Nul_1_2% || "%_Integrator%" /I /License PRIDName=%%aVolume.16 PackageGUID="%_GUID%" PackageRoot="%_InstallRoot%" %_Nul_1%
)
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo Installing Licence Key KMS_Client...
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo.
for /f "tokens=2 delims==" %%G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%' AND LicenseFamily like 'Office%%' AND PartialProductKey=NULL) get ID /value" %_Nul_2e%') do (set app=%%G&call :InsKey)
if exist "%SystemRoot%\System32\spp\store_test\2.0\tokens.dat" (
echo.
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo Installing Key.........................................
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo.
cscript //Nologo //B %_SLMGR% /rilc
)
set "msg=Done THANK YOU"
goto :end

:InsKey
if /i '%app%' equ 'e914ea6e-a5fa-4439-a394-a9bb3293ca09' exit /b
if /i '%app%' equ '0bc88885-718c-491d-921f-6f214349e79c' exit /b
if /i '%app%' equ 'fc7c4d0c-2e85-4bb9-afd4-01ed1476b5e9' exit /b
if /i '%app%' equ '500f6619-ef93-4b75-bcb4-82819998a3ca' exit /b
set "key="
for /f "tokens=2 delims==" %%A in ('"wmic path %spp% where ID='%app%' get LicenseFamily /value"') do echo %%A
for /f %%A in ('cscript //Nologo x86\key.vbs %app%') do set "key=%%A"
if "%key%" equ "" (echo Could not find matching gVLK&echo.&exit /b)
wmic path %sps% where version='%ver%' call InstallProductKey ProductKey="%key%" %_Nul_1_2%
echo.
exit /b

:end
echo.
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo %msg%
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo.
echo Nhan phim bat ky de thoat...
if %_Debug% EQU 0 pause >nul
goto :eof
Nếu có vi phạm bản quyền của bạn nào xin hai chữ "đại xá".Bạn nào làm không nên cũng xin đừng gạch đá.
Cảm ơn không ném đá


Tôi hiên đang có mấy bản Win cài với bản O 2019 Retail, vậy dùng code này của bạn được không?
 


Top