在此处输入图像描述在此处输入图像描述我对严肃的批处理文件相当陌生。但我有一个问题,我确信可以通过编码来解决。我负责保持 100 多个产品的密钥,当它们坏了时我们必须将它们更换,但有时它们不会重新密钥,所以我正在尝试找到一种方法来跟踪未激活的窗口单位。
在您问“不”之前,我们没有批量许可服务器,或者不幸的是与此相关的任何东西。我的老板是老派。
所以我有一个代码:
@echo off
for /f %%i in (computers.txt) do shutdown -r -t 0 -m %%i// and that works fine and restarts all pcs i have in the .txt file in ip address form. then i run around trying to catch all the activation windows before they dissapear. but im trying to get it to check windows activation and output that to a text file with all the units that are NOT activated.
@echo off
for /f %%i in (computers.txt) do cscript /nologo c:\windows\system32\slmgr.vbs /xpr > ActivatedStatus.txt | findstr /i /c:" will expire "> NUL 2>&1
if [%errorlevel%]==[0] (echo Not permanently activated.) else (echo Permanently activated)
pause
exit /b
它工作正常并检查本地电脑,但我无法让它将命令推送到给定的一组 IP 地址。任何帮助将不胜感激。一直从这里借用代码片段来做到这一点。我想是时候寻求帮助了。
如果您的目标操作系统是
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
:OOB 恩典2
:OOT 恩典3
:非真正的恩典4
:通知5
:延长宽限期6
注意: 如果您不是从
3
机器进行检查,您可能不需要上面脚本的 5
-Windows 7
行,我添加这些行是因为存在已知的位置问题该操作系统版本上的 csv.xsl
文件。
👇修改后的免费版本请访问👇