mirror of https://github.com/dnomd343/kms-server
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							115 lines
						
					
					
						
							5.6 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							115 lines
						
					
					
						
							5.6 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								$office['2010'] = 'if exist "%ProgramFiles%\Microsoft Office\Office14\ospp.vbs" cd /d "%ProgramFiles%\Microsoft Office\Office14"
							 | 
						|
								if exist "%ProgramFiles(x86)%\Microsoft Office\Office14\ospp.vbs" cd /d "%ProgramFiles(x86)%\Microsoft Office\Office14"
							 | 
						|
								cscript ospp.vbs /inpkey:VYBBJ-TRJPB-QFQRF-QFT4D-H3GVB';
							 | 
						|
								
							 | 
						|
								$office['2013'] = 'if exist "%ProgramFiles%\Microsoft Office\Office15\ospp.vbs" cd /d "%ProgramFiles%\Microsoft Office\Office15"
							 | 
						|
								if exist "%ProgramFiles(x86)%\Microsoft Office\Office15\ospp.vbs" cd /d "%ProgramFiles(x86)%\Microsoft Office\Office15"
							 | 
						|
								cscript ospp.vbs /inpkey:YC7DK-G2NP3-2QQC3-J6H88-GVGXT';
							 | 
						|
								
							 | 
						|
								$office['2016'] = '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"
							 | 
						|
								cscript ospp.vbs /inpkey:XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99';
							 | 
						|
								
							 | 
						|
								$office['2019'] = '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"
							 | 
						|
								cscript ospp.vbs /inpkey:NMMKJ-6RK4F-KMJVX-8D9MJ-6MWKP';
							 | 
						|
								
							 | 
						|
								function loadOsppInfo() { // 初始化ospp信息
							 | 
						|
								    global $kmsHost;
							 | 
						|
								    global $osppOption, $osppDescription, $osppDescriptionCn;
							 | 
						|
								
							 | 
						|
								    $osppOption[] = '/dstatus';
							 | 
						|
								    $osppDescription[] = 'Displays license information for installed product keys.';
							 | 
						|
								    $osppDescriptionCn[] = '显示当前已安装产品密钥的许可证信息';
							 | 
						|
								
							 | 
						|
								    $osppOption[] = '/dstatusall';
							 | 
						|
								    $osppDescription[] = 'Displays license information for all installed licenses.';
							 | 
						|
								    $osppDescriptionCn[] = '显示当前已安装的所有许可证信息';
							 | 
						|
								
							 | 
						|
								    $osppOption[] = '/unpkey:XXXXX';
							 | 
						|
								    $osppDescription[] = 'Uninstalls an product key with the last five digits of it.';
							 | 
						|
								    $osppDescriptionCn[] = '卸载已安装的产品密钥(最后5位)';
							 | 
						|
								
							 | 
						|
								    $osppOption[] = '/inpkey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX';
							 | 
						|
								    $osppDescription[] = 'Installs a product key with a user-provided product key.';
							 | 
						|
								    $osppDescriptionCn[] = '安装产品密钥';
							 | 
						|
								
							 | 
						|
								    $osppOption[] = '/sethst:' . $kmsHost;
							 | 
						|
								    $osppDescription[] = 'Sets a KMS host name with a user-provided host name.';
							 | 
						|
								    $osppDescriptionCn[] = '设置 KMS 主机名';
							 | 
						|
								
							 | 
						|
								    $osppOption[] = '/remhst';
							 | 
						|
								    $osppDescription[] = 'Removes KMS host name and sets port to default.';
							 | 
						|
								    $osppDescriptionCn[] = '删除 KMS 主机名';
							 | 
						|
								
							 | 
						|
								    $osppOption[] = '/act';
							 | 
						|
								    $osppDescription[] = 'Activates installed Office product keys.';
							 | 
						|
								    $osppDescriptionCn[] = '激活 Office';
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function loadOfficeCmd() { // 初始化Office激活命令
							 | 
						|
								    global $kmsHost, $office;
							 | 
						|
								    $activeCmd = 'cscript ospp.vbs /sethst:' . $kmsHost . PHP_EOL . 'cscript ospp.vbs /act';
							 | 
						|
								    $activeCmd .= PHP_EOL . 'cscript ospp.vbs /dstatus' . PHP_EOL;
							 | 
						|
								    foreach ($office as $index => $officeKmsCmd) {
							 | 
						|
								        $office[$index] .= PHP_EOL . $activeCmd;
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function showOfficeHelp() { // 命令行输出Office激活帮助
							 | 
						|
								    loadOsppInfo();
							 | 
						|
								    loadOfficeCmd();
							 | 
						|
								    global $office, $osppOption, $osppDescription, $osppDescriptionCn;
							 | 
						|
								    foreach ($office as $index => $officeKmsCmd) {
							 | 
						|
								        echo str_pad('', 34, ' ') . 'Office Professional Plus ' . $index . ' VL Activation Command' . PHP_EOL;
							 | 
						|
								        echo str_pad('', 120, '-') . PHP_EOL;
							 | 
						|
								        echo $officeKmsCmd;
							 | 
						|
								        echo str_pad('', 120, '-') . PHP_EOL . PHP_EOL;
							 | 
						|
								    }
							 | 
						|
								    $length = 0;
							 | 
						|
								    $length_first = 0;
							 | 
						|
								    foreach ($osppOption as $index => $option) { // 获取最长的字符串长度
							 | 
						|
								        $strLength = strlen($option) + strlen($osppDescription[$index]);
							 | 
						|
								        if ($length < $strLength) {
							 | 
						|
								            $length = $strLength;
							 | 
						|
								            $length_first = strlen($option);
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								    $title = 'Common activation commands';
							 | 
						|
								    echo str_pad('', floor(($length - strlen($title) + 26) / 2), ' ') . $title . PHP_EOL;
							 | 
						|
								    echo '┏' . str_pad('', $length + 24, '-') . '┓' . PHP_EOL;
							 | 
						|
								    foreach ($osppOption as $index => $option) {
							 | 
						|
								        echo '| cscript ospp.vbs ' . str_pad($osppOption[$index], $length_first, ' ') . ' | ';
							 | 
						|
								        echo str_pad($osppDescription[$index], $length - $length_first + 2, ' ') . ' |' . PHP_EOL;
							 | 
						|
								    }
							 | 
						|
								    echo '┗' . str_pad('', $length + 24, '-') . '┛' . PHP_EOL . PHP_EOL;
							 | 
						|
								    echo 'These commands are only applicable to the VL version of Office.' . PHP_EOL;
							 | 
						|
								    echo 'If it is a Retail version, please convert it to Volume first.' . PHP_EOL . PHP_EOL;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function webOfficeHelp() { // 网页输出Office激活帮助
							 | 
						|
								    loadOsppInfo();
							 | 
						|
								    loadOfficeCmd();
							 | 
						|
								    global $office, $osppOption, $osppDescription, $osppDescriptionCn;
							 | 
						|
								    echo '<!DOCTYPE html><html><head><meta charset="utf-8">';
							 | 
						|
								    echo '<meta name="viewport" content="width=device-width, initial-scale=1.0"><title>';
							 | 
						|
								    echo 'Office KMS Server';
							 | 
						|
								    echo '</title><link rel="stylesheet" href="./assets/style.css" /></head><body><div>';
							 | 
						|
								    foreach ($office as $officeVersion => $officeKmsCmd) {
							 | 
						|
								        echo '<h2>Office Professional Plus ' . $officeVersion . ' VL</h2>' . PHP_EOL;
							 | 
						|
								        echo '<pre><code>' . $officeKmsCmd . '</code></pre>' . PHP_EOL;
							 | 
						|
								    }
							 | 
						|
								    echo '<h2>常用激活命令</h2>' . PHP_EOL;
							 | 
						|
								    echo '<table><thead><tr><th>命令</th><th>说明</th></tr></thead><tbody>';
							 | 
						|
								    foreach ($osppOption as $index => $option) {
							 | 
						|
								        echo '<tr><td>cscript ospp.vbs ' . $option . '</td>';
							 | 
						|
								        echo '<td>' . $osppDescriptionCn[$index] . '</td></tr>';
							 | 
						|
								    }
							 | 
						|
								    echo '</tbody></table><br>' . PHP_EOL;
							 | 
						|
								    echo '<p>以上命令仅用于激活VL版本的Office,如果当前为Retail版本,请先转化为批量授权版本。</p>' . PHP_EOL;
							 | 
						|
								    echo '</div></body></html>';
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								?>
							 | 
						|
								
							 |