mirror of
https://github.com/massgravel/Microsoft-Activation-Scripts.git
synced 2024-11-17 21:54:31 +01:00
Compare commits
272 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
f1ddb83df0 | ||
|
4dd0215ccc | ||
|
ec259dfbd7 | ||
|
bbdc9bdfd8 | ||
|
7d036f57fd | ||
|
ab90514b0a | ||
|
25abc1f457 | ||
|
873c4bc4d8 | ||
|
0b402d9afe | ||
|
5141866f0a | ||
|
f0618824a4 | ||
|
03cc88193d | ||
|
897a9db808 | ||
|
9bbd02cc91 | ||
|
d1dca45710 | ||
|
5e71252993 | ||
|
1db017f1f1 | ||
|
d06ba7fc4c | ||
|
99954a9056 | ||
|
fcb710a48a | ||
|
0cbaa141c3 | ||
|
9d1964ceda | ||
|
0477cf13e1 | ||
|
9b568d4b4e | ||
|
1c9fe0815e | ||
|
a5dd99ac00 | ||
|
1849dd3075 | ||
|
8fe0b24945 | ||
|
7c69c471c5 | ||
|
f32cb934dc | ||
|
7a6e63a462 | ||
|
d76b2ea57e | ||
|
1f0e04519a | ||
|
d059952ecd | ||
|
6efb5d50fe | ||
|
b2831795a4 | ||
|
4e8ebecd3d | ||
|
d929cd8fa0 | ||
|
d384c5f2f7 | ||
|
643d4f077f | ||
|
db26b75b64 | ||
|
07ad5a208d | ||
|
b80a502086 | ||
|
104d0b0dda | ||
|
db218720f3 | ||
|
b8504cc21e | ||
|
2e6bfa94c2 | ||
|
a1244dcb3b | ||
|
06695612a8 | ||
|
323c6808af | ||
|
841d856a29 | ||
|
52d4c52dba | ||
|
c75cd29b9f | ||
|
b1b5299c47 | ||
|
652092e985 | ||
|
b06c83622a | ||
|
ce669809bf | ||
|
0afb09cbd1 | ||
|
5d8a463475 | ||
|
7044f37b44 | ||
|
08443039aa | ||
|
fd8b81411c | ||
|
213bc50b49 | ||
|
00e81be52f | ||
|
2443e1e471 | ||
|
ec31fef9b9 | ||
|
84f5516632 | ||
|
f9f386a896 | ||
|
8e3b4135f5 | ||
|
bacb32f4a1 | ||
|
86c86c179a | ||
|
445a74ccea | ||
|
69e6c9bf71 | ||
|
0ced0f5d8e | ||
|
19be25c029 | ||
|
d372b62280 | ||
|
9e5062e7cc | ||
|
ed3dace78f | ||
|
1f50e4ba98 | ||
|
af7d204c96 | ||
|
0d26ba046e | ||
|
3fd1666926 | ||
|
bf814304c6 | ||
|
1dfd3f6626 | ||
|
79bc7b0242 | ||
|
ae48118ddb | ||
|
b983bd41da | ||
|
d55b9fa78c | ||
|
fb113c7c24 | ||
|
9efc3e49b9 | ||
|
a62c3ac36d | ||
|
73eabbff59 | ||
|
bc5efae19d | ||
|
deb74ab9b8 | ||
|
d08ed1bd38 | ||
|
5f5a51322d | ||
|
fd0e25f477 | ||
|
b33dcb2f72 | ||
|
117ba004f0 | ||
|
b0d898973f | ||
|
63b3c5097b | ||
|
69430c6458 | ||
|
9f57f585d5 | ||
|
52decdde18 | ||
|
35e044ddc8 | ||
|
601bd0e420 | ||
|
5e4988a634 | ||
|
3a050f2da7 | ||
|
31b55fd0e3 | ||
|
62d5d5442e | ||
|
f2e6e6e389 | ||
|
b5a305a14e | ||
|
6c71e82ef3 | ||
|
66e8cda508 | ||
|
98027af16d | ||
|
be45752a21 | ||
|
a421b12ae4 | ||
|
d06185d7f7 | ||
|
a46bb78e5e | ||
|
2470963537 | ||
|
89bff68b28 | ||
|
191121c3d4 | ||
|
7bf55fc6ee | ||
|
816925bfef | ||
|
ad45cf0926 | ||
|
29eb5bd60d | ||
|
70b754657f | ||
|
8b58696455 | ||
|
5d47723d07 | ||
|
2b786e3037 | ||
|
4451a25e7f | ||
|
886745f103 | ||
|
5728ba2686 | ||
|
ddccc4025f | ||
|
1567903b09 | ||
|
f6125eaa5b | ||
|
07c4fcdc74 | ||
|
962f7e326a | ||
|
6f88a4bf90 | ||
|
dd3d788bfa | ||
|
3d16fc6a07 | ||
|
e1b9942223 | ||
|
53cda879c1 | ||
|
211835666b | ||
|
bdb9875a6b | ||
|
5b694779be | ||
|
b7c3f9a98a | ||
|
48fb5fc5fe | ||
|
d3f2cd8806 | ||
|
8cdde879b2 | ||
|
0884271c4f | ||
|
e752461568 | ||
|
d14b3b46a0 | ||
|
819140de46 | ||
|
fc7e9f019d | ||
|
36f7291963 | ||
|
9556ad2cbe | ||
|
71e575e7b6 | ||
|
355ccb7f29 | ||
|
984b384d9e | ||
|
4ce95f6034 | ||
|
d59e2b0e6e | ||
|
54c1729d13 | ||
|
6a72dce047 | ||
|
2075ab45bc | ||
|
6a197b5274 | ||
|
1b80e556f9 | ||
|
fd65a85d06 | ||
|
5da6daa402 | ||
|
604dc6d53f | ||
|
eb02caa58c | ||
|
c8f6bd65e8 | ||
|
c84e4b181a | ||
|
1c4e85b3e2 | ||
|
0c1d091c7e | ||
|
6b0310e1db | ||
|
23f382f0e3 | ||
|
481ed4dbd5 | ||
|
2f97b1c28a | ||
|
066b135cfd | ||
|
64e006703c | ||
|
8f6377f56b | ||
|
e60f8ea474 | ||
|
8d6ea50235 | ||
|
43fb93c1f4 | ||
|
b3c1efb54a | ||
|
e16354561b | ||
|
068903c63f | ||
|
56ee68903a | ||
|
c96c353464 | ||
|
55cca40d39 | ||
|
ed455ca5fc | ||
|
569681da0e | ||
|
9936a1d3a1 | ||
|
a113087f38 | ||
|
cad5f6f091 | ||
|
bc25de6484 | ||
|
a04c389280 | ||
|
b3d7156f13 | ||
|
51735d8e0f | ||
|
e81490b89c | ||
|
306372d5a2 | ||
|
637359e757 | ||
|
f2f5438227 | ||
|
cd0cf99bea | ||
|
f710372f7e | ||
|
e030f67bea | ||
|
cc4c8343c1 | ||
|
f5b7490f94 | ||
|
8141aa07a1 | ||
|
175d74e888 | ||
|
74a2d93508 | ||
|
b5c63b2296 | ||
|
87f4d3a0a8 | ||
|
165bb69f37 | ||
|
68537e9f42 | ||
|
3c4f8796fa | ||
|
4b8a769f54 | ||
|
044d5f8ae7 | ||
|
0b6ec943b1 | ||
|
ed91ab5ac2 | ||
|
bc8ae03488 | ||
|
d17d7496e0 | ||
|
22938f30e1 | ||
|
987b518ba1 | ||
|
eecd977184 | ||
|
7323b3ab18 | ||
|
f551f61998 | ||
|
43ce3cc4be | ||
|
6791e7a73f | ||
|
f0fefb7baa | ||
|
73b1085da6 | ||
|
47e3aa20dc | ||
|
f27b3fbe6e | ||
|
d62eeb9355 | ||
|
f22b577af8 | ||
|
76f9092e80 | ||
|
1b3bb6b4ef | ||
|
2d24a4cba4 | ||
|
e309ccf1d0 | ||
|
9e76e9ef6e | ||
|
c76fe2fbd6 | ||
|
0a0db38cea | ||
|
e481c0db85 | ||
|
65354304c9 | ||
|
602747a8d3 | ||
|
5ff9ff8db3 | ||
|
c95ccceabc | ||
|
a6184d2387 | ||
|
167bc1febf | ||
|
e54b15a5b1 | ||
|
9a15265109 | ||
|
f9c7a5cd99 | ||
|
7e5a1c6f79 | ||
|
35473624e2 | ||
|
4f94317021 | ||
|
0cd0268854 | ||
|
86bd13a2d8 | ||
|
27b9b4a154 | ||
|
b92b73b792 | ||
|
bd6a1b5aed | ||
|
6093d81287 | ||
|
2b1a3af5a1 | ||
|
5437958fd2 | ||
|
a49a5cf358 | ||
|
a03754a676 | ||
|
ff64060957 | ||
|
fb37d27024 | ||
|
de0fb31d28 | ||
|
4af8aae1e7 | ||
|
333cf9c6c1 | ||
|
6d2b3c12ca |
4
.gitattributes
vendored
Normal file
4
.gitattributes
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
# MAS export-ignore
|
||||
# LICENSE export-ignore
|
||||
# README.md export-ignore
|
||||
.gitattributes export-ignore
|
674
LICENSE
Normal file
674
LICENSE
Normal file
@ -0,0 +1,674 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
10499
MAS/All-In-One-Version-KL/MAS_AIO.cmd
Normal file
10499
MAS/All-In-One-Version-KL/MAS_AIO.cmd
Normal file
File diff suppressed because it is too large
Load Diff
1750
MAS/Separate-Files-Version/Activators/HWID_Activation.cmd
Normal file
1750
MAS/Separate-Files-Version/Activators/HWID_Activation.cmd
Normal file
File diff suppressed because it is too large
Load Diff
1915
MAS/Separate-Files-Version/Activators/KMS38_Activation.cmd
Normal file
1915
MAS/Separate-Files-Version/Activators/KMS38_Activation.cmd
Normal file
File diff suppressed because it is too large
Load Diff
2621
MAS/Separate-Files-Version/Activators/Ohook_Activation_AIO.cmd
Normal file
2621
MAS/Separate-Files-Version/Activators/Ohook_Activation_AIO.cmd
Normal file
File diff suppressed because it is too large
Load Diff
3697
MAS/Separate-Files-Version/Activators/Online_KMS_Activation.cmd
Normal file
3697
MAS/Separate-Files-Version/Activators/Online_KMS_Activation.cmd
Normal file
File diff suppressed because it is too large
Load Diff
12
MAS/Separate-Files-Version/Activators/ReadMe.txt
Normal file
12
MAS/Separate-Files-Version/Activators/ReadMe.txt
Normal file
@ -0,0 +1,12 @@
|
||||
--------------------------------------------------------------------------------------
|
||||
Activation Type Supported Product Activation Period
|
||||
--------------------------------------------------------------------------------------
|
||||
|
||||
HWID - Windows 10-11 - Permanent
|
||||
Ohook - Office - Permanent
|
||||
KMS38 - Windows 10-11-Server - Till the Year 2038
|
||||
Online KMS - Windows / Office - 180 Days. Lifetime With Renewal Task
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
|
||||
For more details, use the respective docs section here https://massgrave.dev/
|
1437
MAS/Separate-Files-Version/Change_Office_Edition.cmd
Normal file
1437
MAS/Separate-Files-Version/Change_Office_Edition.cmd
Normal file
File diff suppressed because it is too large
Load Diff
1356
MAS/Separate-Files-Version/Change_Windows_Edition.cmd
Normal file
1356
MAS/Separate-Files-Version/Change_Windows_Edition.cmd
Normal file
File diff suppressed because it is too large
Load Diff
1038
MAS/Separate-Files-Version/Check_Activation_Status.cmd
Normal file
1038
MAS/Separate-Files-Version/Check_Activation_Status.cmd
Normal file
File diff suppressed because it is too large
Load Diff
805
MAS/Separate-Files-Version/Extract_OEM_Folder.cmd
Normal file
805
MAS/Separate-Files-Version/Extract_OEM_Folder.cmd
Normal file
@ -0,0 +1,805 @@
|
||||
@set masver=2.8
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: Homepage: mass grave[.]dev
|
||||
:: Email: mas.help@outlook.com
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Set environment variables, it helps if they are misconfigured in the system
|
||||
|
||||
setlocal EnableExtensions
|
||||
setlocal DisableDelayedExpansion
|
||||
|
||||
set "PathExt=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC"
|
||||
|
||||
set "SysPath=%SystemRoot%\System32"
|
||||
set "Path=%SystemRoot%\System32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SystemRoot%\System32\WindowsPowerShell\v1.0\"
|
||||
if exist "%SystemRoot%\Sysnative\reg.exe" (
|
||||
set "SysPath=%SystemRoot%\Sysnative"
|
||||
set "Path=%SystemRoot%\Sysnative;%SystemRoot%;%SystemRoot%\Sysnative\Wbem;%SystemRoot%\Sysnative\WindowsPowerShell\v1.0\;%Path%"
|
||||
)
|
||||
|
||||
set "ComSpec=%SysPath%\cmd.exe"
|
||||
set "PSModulePath=%ProgramFiles%\WindowsPowerShell\Modules;%SysPath%\WindowsPowerShell\v1.0\Modules"
|
||||
|
||||
set re1=
|
||||
set re2=
|
||||
set "_cmdf=%~f0"
|
||||
for %%# in (%*) do (
|
||||
if /i "%%#"=="re1" set re1=1
|
||||
if /i "%%#"=="re2" set re2=1
|
||||
)
|
||||
|
||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||
:: or with ARM64 process if it was initiated by x86/ARM32 process on ARM64 Windows
|
||||
|
||||
if exist %SystemRoot%\Sysnative\cmd.exe if not defined re1 (
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\Sysnative\cmd.exe /c ""!_cmdf!" %* re1"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Re-launch the script with ARM32 process if it was initiated by x64 process on ARM64 Windows
|
||||
|
||||
if exist %SystemRoot%\SysArm32\cmd.exe if %PROCESSOR_ARCHITECTURE%==AMD64 if not defined re2 (
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\SysArm32\cmd.exe /c ""!_cmdf!" %* re2"
|
||||
exit /b
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set "blank="
|
||||
set "mas=ht%blank%tps%blank%://mass%blank%grave.dev/"
|
||||
|
||||
:: Check if Null service is working, it's important for the batch script
|
||||
|
||||
sc query Null | find /i "RUNNING"
|
||||
if %errorlevel% NEQ 0 (
|
||||
echo:
|
||||
echo Null service is not running, script may crash...
|
||||
echo:
|
||||
echo:
|
||||
echo Help - %mas%troubleshoot
|
||||
echo:
|
||||
echo:
|
||||
ping 127.0.0.1 -n 20
|
||||
)
|
||||
cls
|
||||
|
||||
:: Check LF line ending
|
||||
|
||||
pushd "%~dp0"
|
||||
>nul findstr /v "$" "%~nx0" && (
|
||||
echo:
|
||||
echo Error - Script either has LF line ending issue or an empty line at the end of the script is missing.
|
||||
echo:
|
||||
echo:
|
||||
echo Help - %mas%troubleshoot
|
||||
echo:
|
||||
echo:
|
||||
ping 127.0.0.1 -n 20 >nul
|
||||
popd
|
||||
exit /b
|
||||
)
|
||||
popd
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
color 07
|
||||
title Extract $OEM$ Folder %masver%
|
||||
|
||||
set _args=
|
||||
set _elev=
|
||||
set _unattended=0
|
||||
|
||||
set _args=%*
|
||||
if defined _args set _args=%_args:"=%
|
||||
if defined _args set _args=%_args:re1=%
|
||||
if defined _args set _args=%_args:re2=%
|
||||
if defined _args (
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
)
|
||||
)
|
||||
|
||||
set "nul1=1>nul"
|
||||
set "nul2=2>nul"
|
||||
set "nul6=2^>nul"
|
||||
set "nul=>nul 2>&1"
|
||||
|
||||
call :dk_setvar
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 7600 (
|
||||
%nceline%
|
||||
echo Unsupported OS version detected [%winbuild%].
|
||||
echo Project is supported only for Windows 7/8/8.1/10/11 and their Server equivalents.
|
||||
goto done2
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix special character limitations in path name
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
set _PSarg=%_PSarg:'=''%
|
||||
|
||||
set "_ttemp=%userprofile%\AppData\Local\Temp"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo "!_batf!" | find /i "!_ttemp!" %nul1% && (
|
||||
if /i not "!_work!"=="!_ttemp!" (
|
||||
%eline%
|
||||
echo The script was launched from the temp folder.
|
||||
echo You are most likely running the script directly from the archive file.
|
||||
echo:
|
||||
echo Extract the archive file and launch the script from the extracted folder.
|
||||
goto done2
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check PowerShell
|
||||
|
||||
REM :PowerShellTest: $ExecutionContext.SessionState.LanguageMode :PowerShellTest:
|
||||
|
||||
cmd /c "%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':PowerShellTest:\s*';iex ($f[1])"" | find /i "FullLanguage" %nul1% || (
|
||||
%eline%
|
||||
cmd /c "%psc% "$ExecutionContext.SessionState.LanguageMode""
|
||||
echo:
|
||||
cmd /c "%psc% "$ExecutionContext.SessionState.LanguageMode"" | find /i "FullLanguage" %nul1% && (
|
||||
echo Failed to run Powershell command but Powershell is working.
|
||||
echo:
|
||||
cmd /c "%psc% ""$av = Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct; $n = @(); foreach ($i in $av) { if ($i.displayName -notlike '*windows*') { $n += $i.displayName } }; if ($n) { Write-Host ('Installed 3rd party Antivirus might be blocking the script - ' + ($n -join ', ')) -ForegroundColor White -BackgroundColor Blue }"""
|
||||
echo:
|
||||
set fixes=%fixes% %mas%troubleshoot
|
||||
call :dk_color2 %Blue% "Help - " %_Yellow% " %mas%troubleshoot"
|
||||
) || (
|
||||
echo PowerShell is not working. Aborting...
|
||||
echo If you have applied restrictions on Powershell then undo those changes.
|
||||
echo:
|
||||
set fixes=%fixes% %mas%fix_powershell
|
||||
call :dk_color2 %Blue% "Help - " %_Yellow% " %mas%fix_powershell"
|
||||
)
|
||||
goto done2
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
|
||||
%nul1% fltmc || (
|
||||
if not defined _elev %psc% "start cmd.exe -arg '/c \"!_PSarg!\"' -verb runas" && exit /b
|
||||
%eline%
|
||||
echo This script needs admin rights.
|
||||
echo Right click on this script and select 'Run as administrator'.
|
||||
goto done2
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Disable QuickEdit and launch from conhost.exe to avoid Terminal app
|
||||
|
||||
if %winbuild% GEQ 17763 (
|
||||
set terminal=1
|
||||
) else (
|
||||
set terminal=
|
||||
)
|
||||
|
||||
:: Check if script is running in Terminal app
|
||||
|
||||
set r1=$TB = [AppDomain]::CurrentDomain.DefineDynamicAssembly(4, 1).DefineDynamicModule(2, $False).DefineType(0);
|
||||
set r2=%r1% [void]$TB.DefinePInvokeMethod('GetConsoleWindow', 'kernel32.dll', 22, 1, [IntPtr], @(), 1, 3).SetImplementationFlags(128);
|
||||
set r3=%r2% [void]$TB.DefinePInvokeMethod('SendMessageW', 'user32.dll', 22, 1, [IntPtr], @([IntPtr], [UInt32], [IntPtr], [IntPtr]), 1, 3).SetImplementationFlags(128);
|
||||
set d1=%r3% $hIcon = $TB.CreateType(); $hWnd = $hIcon::GetConsoleWindow();
|
||||
set d2=%d1% echo $($hIcon::SendMessageW($hWnd, 127, 0, 0) -ne [IntPtr]::Zero);
|
||||
|
||||
if defined terminal (
|
||||
%psc% "%d2%" %nul2% | find /i "True" %nul1% && set terminal=
|
||||
)
|
||||
|
||||
if defined ps32onArm goto :skipQE
|
||||
if %_unattended%==1 goto :skipQE
|
||||
for %%# in (%_args%) do (if /i "%%#"=="-qedit" goto :skipQE)
|
||||
|
||||
if defined terminal (
|
||||
set "launchcmd=start conhost.exe %psc%"
|
||||
) else (
|
||||
set "launchcmd=%psc%"
|
||||
)
|
||||
|
||||
:: Disable QuickEdit in current session
|
||||
|
||||
set "d1=$t=[AppDomain]::CurrentDomain.DefineDynamicAssembly(4, 1).DefineDynamicModule(2, $False).DefineType(0);"
|
||||
set "d2=$t.DefinePInvokeMethod('GetStdHandle', 'kernel32.dll', 22, 1, [IntPtr], @([Int32]), 1, 3).SetImplementationFlags(128);"
|
||||
set "d3=$t.DefinePInvokeMethod('SetConsoleMode', 'kernel32.dll', 22, 1, [Boolean], @([IntPtr], [Int32]), 1, 3).SetImplementationFlags(128);"
|
||||
set "d4=$k=$t.CreateType(); $b=$k::SetConsoleMode($k::GetStdHandle(-10), 0x0080);"
|
||||
|
||||
%launchcmd% "%d1% %d2% %d3% %d4% & cmd.exe '/c' '!_PSarg! -qedit'" && (exit /b) || (set terminal=1)
|
||||
:skipQE
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check for updates
|
||||
|
||||
set -=
|
||||
set old=
|
||||
|
||||
for /f "delims=[] tokens=2" %%# in ('ping -4 -n 1 updatecheck.mass%-%grave.dev') do (
|
||||
if not "%%#"=="" (echo "%%#" | find "127.69" %nul1% && (echo "%%#" | find "127.69.%masver%" %nul1% || set old=1))
|
||||
)
|
||||
|
||||
if defined old (
|
||||
echo ________________________________________________
|
||||
%eline%
|
||||
echo Your version of MAS [%masver%] is outdated.
|
||||
echo ________________________________________________
|
||||
echo:
|
||||
if not %_unattended%==1 (
|
||||
echo [1] Get Latest MAS
|
||||
echo [0] Continue Anyway
|
||||
echo:
|
||||
call :dk_color %_Green% "Choose a menu option using your keyboard [1,0] :"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==2 rem
|
||||
if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%vation-Scripts & start %mas% & exit /b)
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
setlocal DisableDelayedExpansion
|
||||
|
||||
:: Check desktop location
|
||||
|
||||
set desktop=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') do call set "desktop=%%b"
|
||||
if not defined desktop for /f "delims=" %%a in ('%psc% "& {write-host $([Environment]::GetFolderPath('Desktop'))}"') do call set "desktop=%%a"
|
||||
|
||||
set "_pdesk=%desktop:'=''%"
|
||||
set "_dir=%desktop%\$OEM$\$$\Setup\Scripts"
|
||||
|
||||
if exist "!desktop!\" (
|
||||
%eline%
|
||||
echo Unable to detect Desktop location, aborting...
|
||||
goto done2
|
||||
)
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if not defined terminal mode 78, 30
|
||||
|
||||
if exist "!desktop!\$OEM$\" (
|
||||
echo _____________________________________________________
|
||||
%eline%
|
||||
echo The $OEM$ folder already exists on your Desktop.
|
||||
echo _____________________________________________________
|
||||
goto done2
|
||||
)
|
||||
|
||||
set HWID_Activation.cmd=Activators\HWID_Activation.cmd
|
||||
set KMS38_Activation.cmd=Activators\KMS38_Activation.cmd
|
||||
set Online_KMS_Activation.cmd=Activators\Online_KMS_Activation.cmd
|
||||
set Ohook_Activation_AIO.cmd=Activators\Ohook_Activation_AIO.cmd
|
||||
pushd "!_work!"
|
||||
|
||||
set _nofile=
|
||||
for %%# in (
|
||||
%HWID_Activation.cmd%
|
||||
%KMS38_Activation.cmd%
|
||||
%Online_KMS_Activation.cmd%
|
||||
%Ohook_Activation_AIO.cmd%
|
||||
) do (
|
||||
if not exist "%%#" set _nofile=1
|
||||
)
|
||||
|
||||
popd
|
||||
|
||||
if defined _nofile (
|
||||
echo _____________________________________________________
|
||||
%eline%
|
||||
echo Some files are missing in the 'Activators' folder.
|
||||
echo _____________________________________________________
|
||||
goto done2
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Menu
|
||||
|
||||
cls
|
||||
if not defined terminal mode 78, 30
|
||||
echo:
|
||||
echo:
|
||||
echo:
|
||||
echo:
|
||||
echo: Extract $OEM$ folder on the desktop
|
||||
echo: ________________________________________________________
|
||||
echo:
|
||||
echo: [1] HWID
|
||||
echo: [2] Ohook
|
||||
echo: [3] KMS38
|
||||
echo: [4] Online KMS
|
||||
echo:
|
||||
echo: [5] HWID ^(Windows^) ^+ Ohook ^(Office^)
|
||||
echo: [6] HWID ^(Windows^) ^+ Online KMS ^(Office^)
|
||||
echo: [7] KMS38 ^(Windows^) ^+ Ohook ^(Office^)
|
||||
echo: [8] KMS38 ^(Windows^) ^+ Online KMS ^(Office^)
|
||||
echo: [9] Online KMS ^(Windows^) ^+ Ohook ^(Office^)
|
||||
echo:
|
||||
call :dk_color2 %_White% " [R] " %_Green% "ReadMe"
|
||||
echo: [0] Exit
|
||||
echo: ________________________________________________________
|
||||
echo:
|
||||
call :dk_color2 %_White% " " %_Green% "Choose a menu option using your keyboard :"
|
||||
choice /C:123456789R0 /N
|
||||
set _erl=%errorlevel%
|
||||
|
||||
if %_erl%==11 exit /b
|
||||
if %_erl%==10 start %mas%oem-folder &goto :Menu
|
||||
if %_erl%==9 goto:kms_ohook
|
||||
if %_erl%==8 goto:kms38_kms
|
||||
if %_erl%==7 goto:kms38_ohook
|
||||
if %_erl%==6 goto:hwid_kms
|
||||
if %_erl%==5 goto:hwid_ohook
|
||||
if %_erl%==4 goto:kms
|
||||
if %_erl%==3 goto:kms38
|
||||
if %_erl%==2 goto:ohook
|
||||
if %_erl%==1 goto:hwid
|
||||
goto :Menu
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:hwid
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%HWID_Activation.cmd%" "!_dir!\HWID_Activation.cmd" %nul%
|
||||
popd
|
||||
call :export hwid_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\HWID_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" set _error=1
|
||||
if defined _error goto errorfound
|
||||
|
||||
set oem=HWID
|
||||
goto done
|
||||
|
||||
:hwid_setup:
|
||||
@echo off
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
call "%~dp0HWID_Activation.cmd" /HWID
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:hwid_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:ohook
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts"
|
||||
pushd "!_work!"
|
||||
copy /y /b %Ohook_Activation_AIO.cmd% "!_dir!\Ohook_Activation_AIO.cmd" %nul%
|
||||
popd
|
||||
call :export ohook_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\Ohook_Activation_AIO.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" set _error=1
|
||||
if defined _error goto errorfound
|
||||
|
||||
set oem=Ohook
|
||||
goto done
|
||||
|
||||
:ohook_setup:
|
||||
@echo off
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
call "%~dp0Ohook_Activation_AIO.cmd" /Ohook
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:ohook_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:kms38
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%KMS38_Activation.cmd%" "!_dir!\KMS38_Activation.cmd" %nul%
|
||||
popd
|
||||
call :export kms38_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\KMS38_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" set _error=1
|
||||
if defined _error goto errorfound
|
||||
|
||||
set oem=KMS38
|
||||
goto done
|
||||
|
||||
:kms38_setup:
|
||||
@echo off
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
call "%~dp0KMS38_Activation.cmd" /KMS38
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:kms38_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:kms
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%Online_KMS_Activation.cmd%" "!_dir!\Online_KMS_Activation.cmd" %nul%
|
||||
popd
|
||||
call :export kms_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\Online_KMS_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" set _error=1
|
||||
if defined _error goto errorfound
|
||||
|
||||
set oem=Online KMS
|
||||
goto done
|
||||
|
||||
:kms_setup:
|
||||
@echo off
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
call "%~dp0Online_KMS_Activation.cmd" /K-WindowsOffice
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:kms_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:hwid_ohook
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%HWID_Activation.cmd%" "!_dir!\HWID_Activation.cmd" %nul%
|
||||
copy /y /b "%Ohook_Activation_AIO.cmd%" "!_dir!\Ohook_Activation_AIO.cmd" %nul%
|
||||
popd
|
||||
call :export hwid_ohook_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\HWID_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\Ohook_Activation_AIO.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" set _error=1
|
||||
if defined _error goto errorfound
|
||||
|
||||
set oem=HWID [Windows] + Ohook [Office]
|
||||
goto done
|
||||
|
||||
:hwid_ohook_setup:
|
||||
@echo off
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
setlocal
|
||||
call "%~dp0HWID_Activation.cmd" /HWID
|
||||
endlocal
|
||||
|
||||
setlocal
|
||||
call "%~dp0Ohook_Activation_AIO.cmd" /Ohook
|
||||
endlocal
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:hwid_ohook_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:hwid_kms
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%HWID_Activation.cmd%" "!_dir!\HWID_Activation.cmd" %nul%
|
||||
copy /y /b "%Online_KMS_Activation.cmd%" "!_dir!\Online_KMS_Activation.cmd" %nul%
|
||||
popd
|
||||
call :export hwid_kms_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\HWID_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\Online_KMS_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" set _error=1
|
||||
if defined _error goto errorfound
|
||||
|
||||
set oem=HWID [Windows] + Online KMS [Office]
|
||||
goto done
|
||||
|
||||
:hwid_kms_setup:
|
||||
@echo off
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
setlocal
|
||||
call "%~dp0HWID_Activation.cmd" /HWID
|
||||
endlocal
|
||||
|
||||
setlocal
|
||||
call "%~dp0Online_KMS_Activation.cmd" /K-Office
|
||||
endlocal
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:hwid_kms_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:kms38_ohook
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%KMS38_Activation.cmd%" "!_dir!\KMS38_Activation.cmd" %nul%
|
||||
copy /y /b "%Ohook_Activation_AIO.cmd%" "!_dir!\Ohook_Activation_AIO.cmd" %nul%
|
||||
popd
|
||||
call :export kms38_ohook_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\KMS38_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\Ohook_Activation_AIO.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" set _error=1
|
||||
if defined _error goto errorfound
|
||||
|
||||
set oem=KMS38 [Windows] + Ohook [Office]
|
||||
goto done
|
||||
|
||||
:kms38_ohook_setup:
|
||||
@echo off
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
setlocal
|
||||
call "%~dp0KMS38_Activation.cmd" /KMS38
|
||||
endlocal
|
||||
|
||||
setlocal
|
||||
call "%~dp0Ohook_Activation_AIO.cmd" /Ohook
|
||||
endlocal
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:kms38_ohook_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:kms38_kms
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%KMS38_Activation.cmd%" "!_dir!\KMS38_Activation.cmd" %nul%
|
||||
copy /y /b "%Online_KMS_Activation.cmd%" "!_dir!\Online_KMS_Activation.cmd" %nul%
|
||||
popd
|
||||
call :export kms38_kms_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\KMS38_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\Online_KMS_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" set _error=1
|
||||
if defined _error goto errorfound
|
||||
|
||||
set oem=KMS38 [Windows] + Online KMS [Office]
|
||||
goto done
|
||||
|
||||
:kms38_kms_setup:
|
||||
@echo off
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
setlocal
|
||||
call "%~dp0KMS38_Activation.cmd" /KMS38
|
||||
endlocal
|
||||
|
||||
setlocal
|
||||
call "%~dp0Online_KMS_Activation.cmd" /K-Office
|
||||
endlocal
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:kms38_kms_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:kms_ohook
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%Online_KMS_Activation.cmd%" "!_dir!\Online_KMS_Activation.cmd" %nul%
|
||||
copy /y /b "%Ohook_Activation_AIO.cmd%" "!_dir!\Ohook_Activation_AIO.cmd" %nul%
|
||||
popd
|
||||
call :export kms_ohook_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\Online_KMS_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\Ohook_Activation_AIO.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" set _error=1
|
||||
if defined _error goto errorfound
|
||||
|
||||
set oem=Online KMS [Windows] + Ohook [Office]
|
||||
goto done
|
||||
|
||||
:kms_ohook_setup:
|
||||
@echo off
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
setlocal
|
||||
call "%~dp0Online_KMS_Activation.cmd" /K-Windows
|
||||
endlocal
|
||||
|
||||
setlocal
|
||||
call "%~dp0Ohook_Activation_AIO.cmd" /Ohook
|
||||
endlocal
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:kms_ohook_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:errorfound
|
||||
|
||||
%eline%
|
||||
echo The script failed to create the $OEM$ folder.
|
||||
goto :done2
|
||||
|
||||
:done
|
||||
|
||||
echo ______________________________________________________________
|
||||
echo:
|
||||
call :dk_color %Blue% "%oem%"
|
||||
call :dk_color %Green% "$OEM$ folder was successfully created on your Desktop."
|
||||
echo "%oem%" | find /i "38" %nul% && (
|
||||
echo:
|
||||
echo To KMS38 activate Server Cor/Acor editions ^(No GUI Versions^),
|
||||
echo Check this page %mas%oem-folder
|
||||
)
|
||||
echo ______________________________________________________________
|
||||
|
||||
:done2
|
||||
|
||||
echo:
|
||||
if defined fixes (
|
||||
call :dk_color %White% "Follow ALL the ABOVE blue lines. "
|
||||
call :dk_color2 %Blue% "Press [1] to Open Support Webpage " %Gray% " Press [0] to Ignore"
|
||||
choice /C:10 /N
|
||||
if !errorlevel!==1 (for %%# in (%fixes%) do (start %%#))
|
||||
)
|
||||
|
||||
if defined terminal (
|
||||
call :dk_color %_Yellow% "Press [0] key to %_exitmsg%..."
|
||||
choice /c 0 /n
|
||||
) else (
|
||||
call :dk_color %_Yellow% "Press any key to %_exitmsg%..."
|
||||
pause %nul1%
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Set variables
|
||||
|
||||
:dk_setvar
|
||||
|
||||
set psc=powershell.exe
|
||||
set winbuild=1
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
|
||||
set _NCS=1
|
||||
if %winbuild% LSS 10586 set _NCS=0
|
||||
if %winbuild% GEQ 10586 reg query "HKCU\Console" /v ForceV2 %nul2% | find /i "0x0" %nul1% && (set _NCS=0)
|
||||
|
||||
echo "%PROCESSOR_ARCHITECTURE% %PROCESSOR_ARCHITEW6432%" | find /i "ARM64" %nul1% && (if %winbuild% LSS 21277 set ps32onArm=1)
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
for /F %%a in ('echo prompt $E ^| cmd') do set "esc=%%a"
|
||||
set "Red="41;97m""
|
||||
set "Gray="100;97m""
|
||||
set "Green="42;97m""
|
||||
set "Blue="44;97m""
|
||||
set "White="107;91m""
|
||||
set "_Red="40;91m""
|
||||
set "_White="40;37m""
|
||||
set "_Green="40;92m""
|
||||
set "_Yellow="40;93m""
|
||||
) else (
|
||||
set "Red="Red" "white""
|
||||
set "Gray="Darkgray" "white""
|
||||
set "Green="DarkGreen" "white""
|
||||
set "Blue="Blue" "white""
|
||||
set "White="White" "Red""
|
||||
set "_Red="Black" "Red""
|
||||
set "_White="Black" "Gray""
|
||||
set "_Green="Black" "Green""
|
||||
set "_Yellow="Black" "Yellow""
|
||||
)
|
||||
|
||||
set "nceline=echo: &echo ==== ERROR ==== &echo:"
|
||||
set "eline=echo: &call :dk_color %Red% "==== ERROR ====" &echo:"
|
||||
if %~z0 GEQ 200000 (
|
||||
set "_exitmsg=Go back"
|
||||
set "_fixmsg=Go back to Main Menu, select Troubleshoot and run Fix Licensing option."
|
||||
) else (
|
||||
set "_exitmsg=Exit"
|
||||
set "_fixmsg=In MAS folder, run Troubleshoot script and select Fix Licensing option."
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Extract the text from batch script without character and file encoding issue
|
||||
|
||||
:export
|
||||
|
||||
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('!_pdesk!\$OEM$\$$\Setup\Scripts\SetupComplete.cmd',$f[1].Trim(),[System.Text.Encoding]::ASCII);"
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:dk_color
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
echo %esc%[%~1%~2%esc%[0m
|
||||
) else (
|
||||
%psc% write-host -back '%1' -fore '%2' '%3'
|
||||
)
|
||||
exit /b
|
||||
|
||||
:dk_color2
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
echo %esc%[%~1%~2%esc%[%~3%~4%esc%[0m
|
||||
) else (
|
||||
%psc% write-host -back '%1' -fore '%2' '%3' -NoNewline; write-host -back '%4' -fore '%5' '%6'
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
:: Leave empty line below
|
1473
MAS/Separate-Files-Version/Troubleshoot.cmd
Normal file
1473
MAS/Separate-Files-Version/Troubleshoot.cmd
Normal file
File diff suppressed because it is too large
Load Diff
3
MAS/Separate-Files-Version/_ReadMe.html
Normal file
3
MAS/Separate-Files-Version/_ReadMe.html
Normal file
@ -0,0 +1,3 @@
|
||||
<html>
|
||||
<meta http-equiv="refresh" content="0; url=https://massgrave.dev/">
|
||||
</html>
|
File diff suppressed because it is too large
Load Diff
@ -1,226 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
@cls
|
||||
color 07
|
||||
title Check Activation Status [wmic]
|
||||
set wspp=SoftwareLicensingProduct
|
||||
set wsps=SoftwareLicensingService
|
||||
set ospp=OfficeSoftwareProtectionProduct
|
||||
set osps=OfficeSoftwareProtectionService
|
||||
set winApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
set o14App=59a52881-a989-479d-af46-f275c6370663
|
||||
set o15App=0ff1ce15-a989-479d-af46-f275c6370663
|
||||
for %%# in (spp_get,ospp_get,cW1nd0ws,sppw,c0ff1ce15,sppo,osppsvc,ospp14,ospp15) do set "%%#="
|
||||
for /f "tokens=6 delims=[]. " %%# in ('ver') do set winbuild=%%#
|
||||
set "spp_get=Description, DiscoveredKeyManagementServiceMachineName, DiscoveredKeyManagementServiceMachinePort, EvaluationEndDate, GracePeriodRemaining, ID, KeyManagementServiceMachine, KeyManagementServicePort, KeyManagementServiceProductKeyID, LicenseStatus, LicenseStatusReason, Name, PartialProductKey, ProductKeyID, VLActivationInterval, VLRenewalInterval"
|
||||
set "ospp_get=%spp_get%"
|
||||
if %winbuild% geq 9200 set "spp_get=%spp_get%, DiscoveredKeyManagementServiceMachineIpAddress, KeyManagementServiceLookupDomain, ProductKeyChannel, VLActivationTypeEnabled"
|
||||
|
||||
set "SysPath=%Windir%\System32"
|
||||
if exist "%Windir%\Sysnative\reg.exe" (set "SysPath=%Windir%\Sysnative")
|
||||
set "Path=%SysPath%;%Windir%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\"
|
||||
set "line2=************************************************************"
|
||||
set "line3=____________________________________________________________"
|
||||
|
||||
call :casWpkey %wspp% %winApp% cW1nd0ws sppw
|
||||
if %winbuild% geq 9200 call :casWpkey %wspp% %o15App% c0ff1ce15 sppo
|
||||
wmic path %osps% get Version 1>nul 2>nul && (
|
||||
call :casWpkey %ospp% %o14App% osppsvc ospp14
|
||||
if %winbuild% lss 9200 call :casWpkey %ospp% %o15App% osppsvc ospp15
|
||||
)
|
||||
|
||||
echo %line2%
|
||||
echo *** Windows Status ***
|
||||
echo %line2%
|
||||
if not defined cW1nd0ws (
|
||||
echo:
|
||||
echo Error: product key not found.
|
||||
goto :casWcon
|
||||
)
|
||||
set winID=1
|
||||
for /f "tokens=2 delims==" %%# in ('"wmic path %wspp% where (ApplicationID='%winApp%' and PartialProductKey is not null) get ID /value"') do (
|
||||
set "chkID=%%#"
|
||||
call :casWdet "%wspp%" "%wsps%" "%spp_get%"
|
||||
call :casWout
|
||||
echo %line3%
|
||||
echo:
|
||||
)
|
||||
|
||||
:casWcon
|
||||
set winID=0
|
||||
set verbose=1
|
||||
if not defined c0ff1ce15 (
|
||||
if defined osppsvc goto :casWospp
|
||||
goto :casWend
|
||||
)
|
||||
echo %line2%
|
||||
echo *** Office Status ***
|
||||
echo %line2%
|
||||
for /f "tokens=2 delims==" %%# in ('"wmic path %wspp% where (ApplicationID='%o15App%' and PartialProductKey is not null) get ID /value"') do (
|
||||
set "chkID=%%#"
|
||||
call :casWdet "%wspp%" "%wsps%" "%spp_get%"
|
||||
call :casWout
|
||||
echo %line3%
|
||||
echo:
|
||||
)
|
||||
set verbose=0
|
||||
if defined osppsvc goto :casWospp
|
||||
goto :casWend
|
||||
|
||||
:casWospp
|
||||
if %verbose%==1 (
|
||||
echo %line2%
|
||||
echo *** Office Status ***
|
||||
echo %line2%
|
||||
)
|
||||
if defined ospp15 for /f "tokens=2 delims==" %%# in ('"wmic path %ospp% where (ApplicationID='%o15App%' and PartialProductKey is not null) get ID /value"') do (
|
||||
set "chkID=%%#"
|
||||
call :casWdet "%ospp%" "%osps%" "%ospp_get%"
|
||||
call :casWout
|
||||
echo %line3%
|
||||
echo:
|
||||
)
|
||||
if defined ospp14 for /f "tokens=2 delims==" %%# in ('"wmic path %ospp% where (ApplicationID='%o14App%' and PartialProductKey is not null) get ID /value"') do (
|
||||
set "chkID=%%#"
|
||||
call :casWdet "%ospp%" "%osps%" "%ospp_get%"
|
||||
call :casWout
|
||||
echo %line3%
|
||||
echo:
|
||||
)
|
||||
goto :casWend
|
||||
|
||||
:casWpkey
|
||||
wmic path %1 where (ApplicationID='%2' and PartialProductKey is not null) get ID /value 2>nul | findstr /i ID 1>nul && (set %3=1&set %4=1)
|
||||
exit /b
|
||||
|
||||
:casWdet
|
||||
for %%# in (%~3) do set "%%#="
|
||||
if %~1 equ %ospp% for %%# in (DiscoveredKeyManagementServiceMachineIpAddress, KeyManagementServiceLookupDomain, ProductKeyChannel, VLActivationTypeEnabled) do set "%%#="
|
||||
set "cKmsClient="
|
||||
set "cTblClient="
|
||||
set "cAvmClient="
|
||||
set "ExpireMsg="
|
||||
set "_xpr="
|
||||
for /f "tokens=* delims=" %%# in ('"wmic path %~1 where ID='%chkID%' get %~3 /value" ^| findstr ^=') do set "%%#"
|
||||
|
||||
set /a _gpr=(GracePeriodRemaining+1440-1)/1440
|
||||
echo %Description%| findstr /i VOLUME_KMSCLIENT 1>nul && (set cKmsClient=1&set _mTag=Volume)
|
||||
echo %Description%| findstr /i TIMEBASED_ 1>nul && (set cTblClient=1&set _mTag=Timebased)
|
||||
echo %Description%| findstr /i VIRTUAL_MACHINE_ACTIVATION 1>nul && (set cAvmClient=1&set _mTag=Automatic VM)
|
||||
cmd /c exit /b %LicenseStatusReason%
|
||||
set "LicenseReason=%=ExitCode%"
|
||||
set "LicenseMsg=Time remaining: %GracePeriodRemaining% minute(s) (%_gpr% day(s))"
|
||||
if %_gpr% GEQ 1 for /f "tokens=* delims=" %%# in ('powershell -nop -ep bypass -c "$([DateTime]::Now.addMinutes(%GracePeriodRemaining%)).ToString('yyyy-MM-dd HH:mm:ss')" 2^>nul') do set "_xpr=%%#"
|
||||
|
||||
if %LicenseStatus% EQU 0 (
|
||||
set "License=Unlicensed"
|
||||
set "LicenseMsg="
|
||||
)
|
||||
if %LicenseStatus% EQU 1 (
|
||||
set "License=Licensed"
|
||||
set "LicenseMsg="
|
||||
if %GracePeriodRemaining% EQU 0 (
|
||||
if %winID% EQU 1 (set "ExpireMsg=The machine is permanently activated.") else (set "ExpireMsg=The product is permanently activated.")
|
||||
) else (
|
||||
set "LicenseMsg=%_mTag% activation expiration: %GracePeriodRemaining% minute(s) (%_gpr% day(s))"
|
||||
if defined _xpr set "ExpireMsg=%_mTag% activation will expire %_xpr%"
|
||||
)
|
||||
)
|
||||
if %LicenseStatus% EQU 2 (
|
||||
set "License=Initial grace period"
|
||||
if defined _xpr set "ExpireMsg=Initial grace period ends %_xpr%"
|
||||
)
|
||||
if %LicenseStatus% EQU 3 (
|
||||
set "License=Additional grace period (KMS license expired or hardware out of tolerance)"
|
||||
if defined _xpr set "ExpireMsg=Additional grace period ends %_xpr%"
|
||||
)
|
||||
if %LicenseStatus% EQU 4 (
|
||||
set "License=Non-genuine grace period."
|
||||
if defined _xpr set "ExpireMsg=Non-genuine grace period ends %_xpr%"
|
||||
)
|
||||
if %LicenseStatus% EQU 6 (
|
||||
set "License=Extended grace period"
|
||||
if defined _xpr set "ExpireMsg=Extended grace period ends %_xpr%"
|
||||
)
|
||||
if %LicenseStatus% EQU 5 (
|
||||
set "License=Notification"
|
||||
if "%LicenseReason%"=="C004F200" (set "LicenseMsg=Notification Reason: 0xC004F200 (non-genuine)."
|
||||
) else if "%LicenseReason%"=="C004F009" (set "LicenseMsg=Notification Reason: 0xC004F009 (grace time expired)."
|
||||
) else (set "LicenseMsg=Notification Reason: 0x%LicenseReason%"
|
||||
)
|
||||
)
|
||||
if %LicenseStatus% GTR 6 (
|
||||
set "License=Unknown"
|
||||
set "LicenseMsg="
|
||||
)
|
||||
if not defined cKmsClient exit /b
|
||||
|
||||
if %KeyManagementServicePort%==0 set KeyManagementServicePort=1688
|
||||
set "KmsReg=Registered KMS machine name: %KeyManagementServiceMachine%:%KeyManagementServicePort%"
|
||||
if "%KeyManagementServiceMachine%"=="" set "KmsReg=Registered KMS machine name: KMS name not available"
|
||||
|
||||
if %DiscoveredKeyManagementServiceMachinePort%==0 set DiscoveredKeyManagementServiceMachinePort=1688
|
||||
set "KmsDns=KMS machine name from DNS: %DiscoveredKeyManagementServiceMachineName%:%DiscoveredKeyManagementServiceMachinePort%"
|
||||
if "%DiscoveredKeyManagementServiceMachineName%"=="" set "KmsDns=DNS auto-discovery: KMS name not available"
|
||||
|
||||
for /f "tokens=* delims=" %%# in ('"wmic path %~2 get ClientMachineID, KeyManagementServiceHostCaching /value" ^| findstr ^=') do set "%%#"
|
||||
if /i %KeyManagementServiceHostCaching%==True (set KeyManagementServiceHostCaching=Enabled) else (set KeyManagementServiceHostCaching=Disabled)
|
||||
|
||||
if %winbuild% lss 9200 exit /b
|
||||
if %~1 equ %ospp% exit /b
|
||||
|
||||
if "%DiscoveredKeyManagementServiceMachineIpAddress%"=="" set "DiscoveredKeyManagementServiceMachineIpAddress=not available"
|
||||
|
||||
if "%KeyManagementServiceLookupDomain%"=="" set "KeyManagementServiceLookupDomain="
|
||||
|
||||
if %VLActivationTypeEnabled% EQU 3 (
|
||||
set VLActivationType=Token
|
||||
) else if %VLActivationTypeEnabled% EQU 2 (
|
||||
set VLActivationType=KMS
|
||||
) else if %VLActivationTypeEnabled% EQU 1 (
|
||||
set VLActivationType=AD
|
||||
) else (
|
||||
set VLActivationType=All
|
||||
)
|
||||
exit /b
|
||||
|
||||
:casWout
|
||||
echo:
|
||||
echo Name: %Name%
|
||||
echo Description: %Description%
|
||||
echo Activation ID: %ID%
|
||||
echo Extended PID: %ProductKeyID%
|
||||
if defined ProductKeyChannel echo Product Key Channel: %ProductKeyChannel%
|
||||
echo Partial Product Key: %PartialProductKey%
|
||||
echo License Status: %License%
|
||||
if defined LicenseMsg echo %LicenseMsg%
|
||||
if not %LicenseStatus%==0 if not %EvaluationEndDate:~0,8%==16010101 echo Evaluation End Date: %EvaluationEndDate:~0,4%-%EvaluationEndDate:~4,2%-%EvaluationEndDate:~6,2% %EvaluationEndDate:~8,2%:%EvaluationEndDate:~10,2% UTC
|
||||
if not defined cKmsClient (
|
||||
if defined ExpireMsg echo:&echo: %ExpireMsg%
|
||||
exit /b
|
||||
)
|
||||
if defined VLActivationTypeEnabled echo Configured Activation Type: %VLActivationType%
|
||||
echo:
|
||||
if not %LicenseStatus%==1 (
|
||||
echo Please activate the product in order to update KMS client information values.
|
||||
exit /b
|
||||
)
|
||||
echo Most recent activation information:
|
||||
echo Key Management Service client information
|
||||
echo: Client Machine ID (CMID): %ClientMachineID%
|
||||
echo: %KmsDns%
|
||||
echo: %KmsReg%
|
||||
if defined DiscoveredKeyManagementServiceMachineIpAddress echo: KMS machine IP address: %DiscoveredKeyManagementServiceMachineIpAddress%
|
||||
echo: KMS machine extended PID: %KeyManagementServiceProductKeyID%
|
||||
echo: Activation interval: %VLActivationInterval% minutes
|
||||
echo: Renewal interval: %VLRenewalInterval% minutes
|
||||
echo: KMS host caching: %KeyManagementServiceHostCaching%
|
||||
if defined KeyManagementServiceLookupDomain echo: KMS SRV record lookup domain: %KeyManagementServiceLookupDomain%
|
||||
if defined ExpireMsg echo:&echo: %ExpireMsg%
|
||||
exit /b
|
||||
|
||||
:casWend
|
||||
echo:
|
||||
echo Press any key to exit.
|
||||
pause >nul
|
||||
exit /b
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,44 +0,0 @@
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe Virus Total = 0/68
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll Virus Total = 1/67
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe Virus Total = 0/70
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll Virus Total = 0/69
|
||||
48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe Virus Total = 0/67
|
||||
|
||||
Virus Total Report Date: 08-12-2019
|
||||
|
||||
- File Sources:
|
||||
|
||||
- ClipUp.exe (Original):
|
||||
From Windows server 2016 x64 ISO
|
||||
|
||||
- gatherosstate.exe (Original):
|
||||
From Windows 10 x86 14393 ADK
|
||||
|
||||
- ARM64_gatherosstate.exe (Original):
|
||||
From Windows 10 ARM64 18362 ISO
|
||||
|
||||
- ARM64_slc.dll and slc.dll:
|
||||
|
||||
Original slshim
|
||||
https://github.com/vyvojar/slshim
|
||||
|
||||
Improved by @mspaintmsi
|
||||
https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
Source code is included.
|
||||
slc.dll is based on Integrated_Patcher_2 method.
|
||||
It is currently in use in HWID/KMS38 Activation script.
|
||||
|
||||
____________________________________________________________________________________________________
|
||||
|
||||
You can safely delete the following files if it's not required for you.
|
||||
|
||||
ClipUp.exe - Required to KMS38 activate Server Cor and Acor editions.
|
||||
ARM64_gatherosstate.exe and ARM64_slc.dll - Required to activate ARM64 Arch Windows 10.
|
||||
|
||||
====================================================================================================
|
Binary file not shown.
Binary file not shown.
@ -1,746 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
:: For unattended mode, run the script with /u parameter.
|
||||
|
||||
|
||||
|
||||
::=========================================================================================================
|
||||
: Credits:
|
||||
::=========================================================================================================
|
||||
::
|
||||
:: @mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade.
|
||||
:: and Created various methods for HWID/KMS38 Activation
|
||||
:: *Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
:: https://gitlab.com/massgrave/massgrave
|
||||
::
|
||||
:: @vyvojar Original slshim (slc.dll)
|
||||
:: https://github.com/vyvojar/slshim/releases
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: HWID/KMS38 methods Suggestions and improvements:-
|
||||
::
|
||||
:: @sponpa New ideas for the HWID/KM38 Generation
|
||||
:: https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257
|
||||
::
|
||||
:: @leitek8 Improvements for the slc.dll
|
||||
:: https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: Kind Help:-
|
||||
::
|
||||
:: Thanks for having my back and answering all of my queries. (In no particular order)
|
||||
::
|
||||
:: @AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
::
|
||||
:: @BorrowedWifi for providing support in fixing English grammar errors in the Read Me.
|
||||
:: @Chibi ANUBIS and @smashed for testing scripts for ARM64 system.
|
||||
::
|
||||
:: Special thanks to @abbodi1406 for providing the great help.
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only
|
||||
:: manage batch script tool which is based on the above mentioned original co-authors activation methods.
|
||||
::
|
||||
::=========================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
title [HWID] Digital License Activation
|
||||
set Unattended=
|
||||
set _args=
|
||||
set _elev=
|
||||
set "_arg1=%~1"
|
||||
if not defined _arg1 goto :DL_NoProgArgs
|
||||
set "_args=%~1"
|
||||
set "_arg2=%~2"
|
||||
if defined _arg2 set "_args=%~1 %~2"
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
if /i "%%A"=="/u" set Unattended=1)
|
||||
:DL_NoProgArgs
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell -nop -ep bypass -c"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "Red="white" "DarkRed""
|
||||
set "Green="white" "DarkGreen""
|
||||
set "Magenta="white" "darkmagenta""
|
||||
set "Gray="white" "darkgray""
|
||||
set "Black="white" "Black""
|
||||
set "ELine=echo: &call :DL_color "==== ERROR ====" %Red% &echo:"
|
||||
set slp=SoftwareLicensingProduct
|
||||
set sls=SoftwareLicensingService
|
||||
set wApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 10240 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 10.
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :DL_Passed
|
||||
) || (
|
||||
if defined _elev goto :DL_E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
if defined _args set _PSarg="""%~f0""" -el """%_args%"""
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :DL_E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:DL_E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto DL_Done
|
||||
|
||||
:DL_Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
:: Written by @abbodi1406
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode con: cols=102 lines=31
|
||||
|
||||
:: Check Windows OS name
|
||||
|
||||
set winos=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
|
||||
call :DL_CheckPermAct
|
||||
if defined PermAct (
|
||||
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
call :DL_color1 " " %Black% &call :DL_color "Checking: %winos% is Permanently Activated." %Green%
|
||||
call :DL_color1 " " %Black% &call :DL_color "Activation is not required." %Gray%
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
if defined Unattended goto DL_Done
|
||||
|
||||
echo Press [1] or [2] button in Keyboard :
|
||||
echo ___________________________________________
|
||||
echo:
|
||||
choice /C:12 /N /M "> [1] Activate [2] Exit : "
|
||||
|
||||
if errorlevel 2 exit /b
|
||||
if errorlevel 1 Goto DL_Continue
|
||||
)
|
||||
|
||||
:DL_Continue
|
||||
cls
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cd /d "!_work!"
|
||||
pushd "!_work!"
|
||||
|
||||
if not exist "!_work!\BIN\" (
|
||||
%ELine%
|
||||
echo 'BIN' Folder does not exist in current directory.
|
||||
echo It's supposed to have files required for the Activation.
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo %winos%| findstr /I Evaluation >nul && set Eval=1||set Eval=
|
||||
if defined Eval (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild%] HWID Activation is Not Supported.
|
||||
echo %winos%| findstr /I Server >nul && (
|
||||
echo Server Evaluation cannot be activated. Convert it to full Server OS.
|
||||
) || (
|
||||
echo Evaluation Editions cannot be activated. Install full Windows OS.
|
||||
)
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check SKU value
|
||||
|
||||
set SKU=
|
||||
for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
|
||||
if "%osSKU%"=="" (
|
||||
%ELine%
|
||||
echo SKU value was not detected properly. Aborting...
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
set osedition=
|
||||
call :_CheckEdition %nul%
|
||||
|
||||
if "%osedition%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild% ^| SKU:%osSKU%] HWID Activation is Not Supported.
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
:: Check Windows Architecture
|
||||
|
||||
set arch=
|
||||
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > nul && set arch=x86|| set arch=x64
|
||||
wmic os get osarchitecture | find /i "ARM" > nul && set arch=ARM64|| echo %PROCESSOR_ARCHITECTURE% | find /i "ARM" > nul && set arch=ARM64
|
||||
|
||||
if "%arch%"=="ARM64" call :DL_check ARM64_gatherosstate.exe ARM64_slc.dll
|
||||
if not "%arch%"=="ARM64" call :DL_check gatherosstate.exe slc.dll
|
||||
if defined _miss goto DL_Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
set key=
|
||||
call :%osedition% %nul%
|
||||
|
||||
if "%key%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild%] HWID Activation is Not Supported.
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
echo Checking OS Info [%winos% ^| %winbuild% ^| %arch%]
|
||||
|
||||
set "Chkint=Checking Internet Connection "
|
||||
set IntCon=
|
||||
ping -n 1 www.microsoft.com %nul% && (
|
||||
set IntCon=1
|
||||
echo %Chkint% [Connected]
|
||||
) || (
|
||||
call :DL_color "%Chkint% [Not connected] [Ping www.microsoft.com - Failed]" %Red%
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo:
|
||||
set _1=ClipSVC
|
||||
set _2=wlidsvc
|
||||
set _3=sppsvc
|
||||
set _4=wuauserv
|
||||
|
||||
for %%# in (%_1% %_2% %_3% %_4%) do call :DL_ServiceCheck %%#
|
||||
|
||||
set "CLecho=Checking %_1% [Service Status -%Cl_state%] [Startup Type -%Cl_start_type%]"
|
||||
set "wlecho=Checking %_2% [Service Status -%wl_state%] [Startup Type -%wl_start_type%]"
|
||||
set "specho=Checking %_3% [Service Status -%sp_state%] [Startup Type -%sp_start_type%]"
|
||||
set "wuecho=Checking %_4% [Service Status -%wu_state%] [Startup Type -%wu_start_type%]"
|
||||
|
||||
if not "%Cl_start_type%"=="Demand" (call :DL_color "%CLecho%" %Red% & set Clst_e=1) else (echo %CLecho%)
|
||||
if not "%wl_start_type%"=="Demand" (call :DL_color "%wlecho%" %Red% & set wlst_e=1) else (echo %wlecho%)
|
||||
if not "%sp_start_type%"=="Delayed-Auto" (call :DL_color "%specho%" %Red% & set spst_e=1) else (echo %specho%)
|
||||
|
||||
if "%wu_start_type%"=="Disabled" (set "_C=%Red%") else (set "_C=%Gray%")
|
||||
if not "%wu_start_type%"=="Auto" (call :DL_color "%wuecho%" %_C% & set wust_e=1) else (echo %wuecho%)
|
||||
|
||||
echo:
|
||||
if defined Clst_e (sc config %_1% start= Demand %nul% && set Clst_s=%_1%-Demand || set Clst_u=%_1%-Demand )
|
||||
if defined wlst_e (sc config %_2% start= Demand %nul% && set wlst_s=%_2%-Demand || set wlst_u=%_2%-Demand )
|
||||
if defined spst_e (sc config %_3% start= Delayed-Auto %nul% && set spst_s=%_3%-Delayed-Auto || set spst_u=%_3%-Delayed-Auto )
|
||||
if defined wust_e (sc config %_4% start= Auto %nul% && set wust_s=%_4%-Auto || set wust_u=%_4%-Auto )
|
||||
|
||||
for %%# in (Clst_s,wlst_s,spst_s,wust_s) do if defined %%# set st_s=1
|
||||
if defined st_s (echo Changing services Startup Type to [ %Clst_s%%wlst_s%%spst_s%%wust_s%] [Successful])
|
||||
|
||||
for %%# in (Clst_u,wlst_u,spst_u,wust_u) do if defined %%# set st_u=1
|
||||
if defined st_u (call :DL_color "Error in changing Startup Type to [ %Clst_u%%wlst_u%%spst_u%%wust_u%]" %Red%)
|
||||
|
||||
if not "%Cl_state%"=="Running" (%_psc% start-service %_1% %nul% && set Cl_s=%_1% || set Cl_u=%_1% )
|
||||
if not "%wl_state%"=="Running" (%_psc% start-service %_2% %nul% && set wl_s=%_2% || set wl_u=%_2% )
|
||||
if not "%sp_state%"=="Running" (%_psc% start-service %_3% %nul% && set sp_s=%_3% || set sp_u=%_3% )
|
||||
if not "%wu_state%"=="Running" (%_psc% start-service %_4% %nul% && set wu_s=%_4% || set wu_u=%_4% )
|
||||
|
||||
for %%# in (Cl_s,wl_s,sp_s,wu_s) do if defined %%# set s_s=1
|
||||
if defined s_s (echo Starting services [ %Cl_s%%wl_s%%sp_s%%wu_s%] [Successful])
|
||||
|
||||
for %%# in (Cl_u,wl_u,sp_u,wu_u) do if defined %%# set s_u=1
|
||||
if defined s_u (call :DL_color "Error in starting services [ %Cl_u%%wl_u%%sp_u%%wu_u%]" %Red%)
|
||||
|
||||
if defined wust_u (
|
||||
call :DL_color "Most likely the Windows Update Service was blocked with a tool, identify and unblock it." %Magenta%
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Thanks to @abbodi1406 for the WMI methods
|
||||
|
||||
echo:
|
||||
set _channel=
|
||||
set _Keyexist=
|
||||
set _partial=
|
||||
|
||||
for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#"
|
||||
for %%A in (MAK, OEM, Retail) do echo %_channel%| findstr /i %%A >nul && set _Keyexist=1
|
||||
|
||||
if defined _Keyexist (
|
||||
for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get PartialProductKey /value 2^>nul') do set "_partial=%%#"
|
||||
call echo Checking Installed Product Key [%_channel%] [Partial Key -%%_partial%%]
|
||||
)
|
||||
|
||||
if not defined _Keyexist (
|
||||
set "InsKey=Installing Generic Product Key "
|
||||
wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="%key%" %nul% && (
|
||||
for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#"
|
||||
call echo %%InsKey%% [%key%] [%%_channel%%] [Successful]
|
||||
) || (
|
||||
call :DL_color "%%InsKey%% [%key%] [Unsuccessful]" %Red%
|
||||
)
|
||||
)
|
||||
|
||||
wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Files are copied to temp to generate ticket to avoid possible issues in case the path contains special character or non English names.
|
||||
|
||||
echo:
|
||||
set "temp_=%SystemRoot%\Temp\_Ticket_Work"
|
||||
if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul%
|
||||
md "%temp_%\" %nul%
|
||||
|
||||
cd /d "!_work!\BIN\"
|
||||
|
||||
set ARM64_file=
|
||||
if "%arch%"=="ARM64" set ARM64_file=ARM64_
|
||||
|
||||
copy /y /b "%ARM64_file%gatherosstate.exe" "%temp_%\gatherosstate.exe" %nul%
|
||||
copy /y /b "%ARM64_file%slc.dll" "%temp_%\slc.dll" %nul%
|
||||
|
||||
set cfailed=
|
||||
if not exist "%temp_%\gatherosstate.exe" set cfailed=1
|
||||
if not exist "%temp_%\slc.dll" set cfailed=1
|
||||
|
||||
set "copyfiles=Copying Required Files to Temp "
|
||||
if defined cfailed (
|
||||
call :DL_color "%copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Unsuccessful] Aborting..." %Red%
|
||||
goto :DL_Act_Cont
|
||||
) else (
|
||||
echo %copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Successful]
|
||||
)
|
||||
|
||||
cd /d "%temp_%\"
|
||||
attrib -R -A -S -H *.*
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set "GatherMod=Creating modified gatherosstate "
|
||||
|
||||
if not "%arch%"=="ARM64" (
|
||||
rundll32 "%temp_%\slc.dll",PatchGatherosstate %nul%
|
||||
if not exist "%temp_%\gatherosstatemodified.exe" (
|
||||
call :DL_color "%GatherMod% [Unsuccessful] Aborting" %Red%
|
||||
call :DL_color "Most likely Antivirus program blocked the process, disable it and-or create proper exclsuions." %Magenta%
|
||||
goto :DL_Act_Cont
|
||||
) else (
|
||||
echo %GatherMod% [Successful]
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set _gather=
|
||||
if "%arch%"=="ARM64" (
|
||||
set _gather=gatherosstate.exe
|
||||
) else (
|
||||
set _gather=gatherosstatemodified.exe
|
||||
)
|
||||
|
||||
start /wait "" "%temp_%/%_gather%" %nul%
|
||||
if not exist "%temp_%\GenuineTicket.xml" (
|
||||
call "%temp_%/%_gather%" %nul%
|
||||
)
|
||||
|
||||
set "GenTicket=Generating GenuineTicket.xml "
|
||||
if not exist "%temp_%\GenuineTicket.xml" (
|
||||
call :DL_color "%GenTicket% [Unsuccessful] Aborting..." %Red%
|
||||
goto :DL_Act_Cont
|
||||
) else (
|
||||
echo %GenTicket% [Successful]
|
||||
)
|
||||
|
||||
:: clipup -v -o -altto <Ticket path> method to apply ticket was not used to avoid the certain issues in case the username have spaces or non English names.
|
||||
|
||||
set "InsTicket=Installing GenuineTicket.xml "
|
||||
set "TDir=%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket"
|
||||
if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul%
|
||||
copy /y /b "%temp_%\GenuineTicket.xml" "%TDir%\GenuineTicket.xml" %nul%
|
||||
|
||||
if not exist "%TDir%\GenuineTicket.xml" (
|
||||
call :DL_color "Failed to copy Ticket to [%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket\] Aborting..." %Red%
|
||||
goto :DL_Act_Cont
|
||||
)
|
||||
|
||||
%_psc% Restart-Service ClipSVC %nul%
|
||||
|
||||
if exist "%TDir%\GenuineTicket.xml" (
|
||||
net stop ClipSVC %nul%
|
||||
net start ClipSVC %nul%
|
||||
)
|
||||
|
||||
if exist "%TDir%\GenuineTicket.xml" (
|
||||
%nul% clipup -v -o
|
||||
set "fallback_=[Fallback method: clipup -v -o]"
|
||||
)
|
||||
|
||||
if not exist "%TDir%\GenuineTicket.xml" (
|
||||
echo %InsTicket% [Successful] %fallback_%
|
||||
) else (
|
||||
call :DL_color "%InsTicket% [Unsuccessful] Aborting..." %Red%
|
||||
if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul%
|
||||
goto :DL_Act_Cont
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo:
|
||||
echo Activating...
|
||||
echo:
|
||||
|
||||
wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" call Activate %nul%
|
||||
call :DL_CheckPermAct
|
||||
if defined PermAct goto DL_Act_successful
|
||||
|
||||
call :DL_ReTry
|
||||
if not "%ErrCode%"=="" set "Error_Code_=[Error Code %ErrCode%]"
|
||||
call :DL_CheckPermAct
|
||||
|
||||
:DL_Act_successful
|
||||
|
||||
if defined PermAct (
|
||||
call :DL_color "%winos% is permanently activated." %Green%
|
||||
goto :DL_Act_Cont
|
||||
)
|
||||
|
||||
call :DL_color "Activation Failed %Error_Code_%" %Red%
|
||||
call :DL_color "Try the Troubleshoot Guide listed in the ReadMe." %Magenta%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_Act_Cont
|
||||
|
||||
echo:
|
||||
set "changing_wust_back=Changing wu Startup Type back to [%wu_start_type%]"
|
||||
if defined wust_s (
|
||||
sc config %_4% start= %wu_start_type% %nul% && echo %changing_wust_back% [Successful]
|
||||
) || (
|
||||
call :DL_color "%changing_wust_back% [Unsuccessful]" %Red%
|
||||
)
|
||||
|
||||
cd /d "!_work!\"
|
||||
if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul%
|
||||
set "delFiles=Cleaning Temp Files "
|
||||
if exist "%temp_%\" (
|
||||
call :DL_color "%delFiles% [Unsuccessful]" %Red%
|
||||
) else (
|
||||
echo %delFiles% [Successful]
|
||||
)
|
||||
|
||||
goto DL_Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Echo all the missing files.
|
||||
:: Written by @abbodi1406 (MDL)
|
||||
|
||||
:DL_check
|
||||
|
||||
for %%# in (%1 %2) do (if not exist "!_work!\BIN\%%#" (if defined _miss (set "_miss=!_miss! %%#") else (set "_miss=%%#")))
|
||||
if defined _miss (
|
||||
%ELine%
|
||||
echo Following required file^(s^) is missing in 'BIN' folder. Aborting...
|
||||
echo:
|
||||
echo !_miss!
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_ServiceCheck
|
||||
|
||||
:: Detect Service status and start type
|
||||
:: Written by @RPO
|
||||
|
||||
for /f "tokens=1,3 delims=: " %%a in ('sc query %1') do (if /i %%a==state set "state=%%b")
|
||||
for /f "tokens=1-4 delims=: " %%a in ('sc qc %1') do (if /i %%a==start_type set "start_type=%%c %%d")
|
||||
|
||||
if /i "%state%"=="STOPPED" set state=Stopped
|
||||
if /i "%state%"=="RUNNING" set state=Running
|
||||
|
||||
if /i "%start_type%"=="auto_start (delayed)" set start_type=Delayed-Auto
|
||||
if /i "%start_type%"=="auto_start " set start_type=Auto
|
||||
if /i "%start_type%"=="demand_start " set start_type=Demand
|
||||
if /i "%start_type%"=="disabled " set start_type=Disabled
|
||||
|
||||
for %%i in (%*) do (
|
||||
if /i "%%i"=="%_4%" set "wu_start_type=%start_type%" & set "wu_state=%state%"
|
||||
if /i "%%i"=="%_3%" set "sp_start_type=%start_type%" & set "sp_state=%state%"
|
||||
if /i "%%i"=="%_1%" set "Cl_start_type=%start_type%" & set "Cl_state=%state%"
|
||||
if /i "%%i"=="%_2%" set "wl_start_type=%start_type%" & set "wl_state=%state%"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_CheckPermAct
|
||||
|
||||
:: Check Windows Permanent Activation status
|
||||
:: Written by @abbodi1406
|
||||
|
||||
wmic path %slp% where (LicenseStatus='1' and GracePeriodRemaining='0' and PartialProductKey is not NULL) get Name 2>nul | findstr /i "Windows" 1>nul && set PermAct=1||set PermAct=
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_ReTry
|
||||
|
||||
if defined IntCon if not defined wust_u if not defined wu_u call :DL_ReTry_2
|
||||
|
||||
:: Detect Error Code in the Activation
|
||||
:: Written by @abbodi1406
|
||||
|
||||
wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" call Activate %nul%
|
||||
set errorcode=%errorlevel%
|
||||
cmd /c exit /b %errorcode%
|
||||
if %errorcode% NEQ 0 set "ErrCode=0x%=ExitCode%"
|
||||
exit /b
|
||||
|
||||
:DL_ReTry_2
|
||||
|
||||
set app=
|
||||
%_psc% Restart-Service sppsvc %nul%
|
||||
|
||||
:: Specific rearm - reset the licensing status of the Windows SKU and app, without the need to restart the system.
|
||||
:: wmic method by @abbodi1406
|
||||
|
||||
for /f "tokens=2 delims==" %%G in ('"wmic path %slp% where (ApplicationID='%wApp%' AND ProductKeyID like '%%-%%') get ID /value" 2^>nul') do (set app=%%G)
|
||||
wmic path %sls% where __CLASS='%sls%' call ReArmApp ApplicationId="%wApp%" %nul%
|
||||
wmic path %slp% where ID='%app%' call ReArmsku %nul%
|
||||
|
||||
wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
cscript /nologo %windir%\system32\slmgr.vbs -ato %nul%
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_color
|
||||
|
||||
%_psc% write-host '%1' -fore '%2' -back '%3'
|
||||
exit /b
|
||||
|
||||
:DL_color1
|
||||
|
||||
%_psc% write-host '%1' -fore '%2' -back '%3' -NoNewline
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_Done
|
||||
|
||||
echo:
|
||||
if defined Unattended (
|
||||
echo Exiting in 3 seconds...
|
||||
if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3)
|
||||
:: set a value to use in certain conditions of setupcomplete.cmd file.
|
||||
if defined key if not defined PermAct (endlocal & endlocal & set HWIDAct=1)
|
||||
exit /b
|
||||
)
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
:_CheckEdition
|
||||
|
||||
for %%# in (
|
||||
4:Enterprise
|
||||
27:EnterpriseN
|
||||
48:Professional
|
||||
49:ProfessionalN
|
||||
98:CoreN
|
||||
99:CoreCountrySpecific
|
||||
100:CoreSingleLanguage
|
||||
101:Core
|
||||
121:Education
|
||||
122:EducationN
|
||||
125:EnterpriseS
|
||||
126:EnterpriseSN
|
||||
161:ProfessionalWorkstation
|
||||
162:ProfessionalWorkstationN
|
||||
164:ProfessionalEducation
|
||||
165:ProfessionalEducationN
|
||||
175:ServerRdsh
|
||||
188:IoTEnterprise
|
||||
) do for /f "tokens=1,2 delims=:" %%A in ("%%#") do (
|
||||
if %osSKU%==%%A set "osedition=%%B"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Retail_OEM Key List
|
||||
|
||||
:Core
|
||||
set "key=YTMG3-N6DKC-DKB77-7M9GH-8HVX7"
|
||||
exit /b
|
||||
|
||||
:CoreCountrySpecific
|
||||
set "key=N2434-X9D7W-8PF6X-8DV9T-8TYMD"
|
||||
exit /b
|
||||
|
||||
:CoreN
|
||||
set "key=4CPRK-NM3K3-X6XXQ-RXX86-WXCHW"
|
||||
exit /b
|
||||
|
||||
:CoreSingleLanguage
|
||||
set "key=BT79Q-G7N6G-PGBYW-4YWX6-6F4BT"
|
||||
exit /b
|
||||
|
||||
:Education
|
||||
set "key=YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY"
|
||||
exit /b
|
||||
|
||||
:EducationN
|
||||
set "key=84NGF-MHBT6-FXBX8-QWJK7-DRR8H"
|
||||
exit /b
|
||||
|
||||
:Enterprise
|
||||
set "key=XGVPP-NMH47-7TTHJ-W3FW7-8HV2C"
|
||||
exit /b
|
||||
|
||||
:EnterpriseN
|
||||
set "key=3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT"
|
||||
exit /b
|
||||
|
||||
:EnterpriseS
|
||||
if "%winbuild%" EQU "10240" set "key=FWN7H-PF93Q-4GGP8-M8RF3-MDWWW"
|
||||
if "%winbuild%" EQU "14393" set "key=NK96Y-D9CD8-W44CQ-R8YTK-DYJWX"
|
||||
exit /b
|
||||
|
||||
:EnterpriseSN
|
||||
if "%winbuild%" EQU "10240" set "key=8V8WN-3GXBH-2TCMG-XHRX3-9766K"
|
||||
if "%winbuild%" EQU "14393" set "key=2DBW3-N2PJG-MVHW3-G7TDK-9HKR4"
|
||||
exit /b
|
||||
|
||||
:Professional
|
||||
set "key=VK7JG-NPHTM-C97JM-9MPGT-3V66T"
|
||||
exit /b
|
||||
|
||||
:ProfessionalEducation
|
||||
set "key=8PTT6-RNW4C-6V7J2-C2D3X-MHBPB"
|
||||
exit /b
|
||||
|
||||
:ProfessionalEducationN
|
||||
set "key=GJTYN-HDMQY-FRR76-HVGC7-QPF8P"
|
||||
exit /b
|
||||
|
||||
:ProfessionalN
|
||||
set "key=2B87N-8KFHP-DKV6R-Y2C8J-PKCKT"
|
||||
exit /b
|
||||
|
||||
:ProfessionalWorkstation
|
||||
set "key=DXG7C-N36C4-C4HTG-X4T3X-2YV77"
|
||||
exit /b
|
||||
|
||||
:ProfessionalWorkstationN
|
||||
set "key=WYPNQ-8C467-V2W6J-TX4WX-WT2RQ"
|
||||
exit /b
|
||||
|
||||
:ServerRdsh
|
||||
set "key=NJCF7-PW8QT-3324D-688JX-2YV66"
|
||||
exit /b
|
||||
|
||||
:IoTEnterprise
|
||||
set "key=XQQYW-NFFMW-XJPBH-K8732-CKFFD"
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,868 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
:: For unattended mode, run the script with /u parameter.
|
||||
|
||||
|
||||
|
||||
::=========================================================================================================
|
||||
: Credits:
|
||||
::=========================================================================================================
|
||||
::
|
||||
:: @mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade.
|
||||
:: and Created various methods for HWID/KMS38 Activation
|
||||
:: *Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
:: https://gitlab.com/massgrave/massgrave
|
||||
::
|
||||
:: @vyvojar Original slshim (slc.dll)
|
||||
:: https://github.com/vyvojar/slshim/releases
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: HWID/KMS38 methods Suggestions and improvements:-
|
||||
::
|
||||
:: @sponpa New ideas for the HWID/KM38 Generation
|
||||
:: https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257
|
||||
::
|
||||
:: @leitek8 Improvements for the slc.dll
|
||||
:: https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: Kind Help:-
|
||||
::
|
||||
:: Thanks for having my back and answering all of my queries. (In no particular order)
|
||||
::
|
||||
:: @AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
::
|
||||
:: @BorrowedWifi for providing support in fixing English grammar errors in the Read Me.
|
||||
:: @Chibi ANUBIS and @smashed for testing scripts for ARM64 system.
|
||||
::
|
||||
:: Special thanks to @abbodi1406 for providing the great help.
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only
|
||||
:: manage batch script tool which is based on the above mentioned original co-authors activation methods.
|
||||
::
|
||||
::=========================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
title KMS38 Activation
|
||||
set Unattended=
|
||||
set _args=
|
||||
set _elev=
|
||||
set "_arg1=%~1"
|
||||
if not defined _arg1 goto :K38_NoProgArgs
|
||||
set "_args=%~1"
|
||||
set "_arg2=%~2"
|
||||
if defined _arg2 set "_args=%~1 %~2"
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
if /i "%%A"=="/u" set Unattended=1)
|
||||
:K38_NoProgArgs
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell -nop -ep bypass -c"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "Red="white" "DarkRed""
|
||||
set "Green="white" "DarkGreen""
|
||||
set "Magenta="white" "darkmagenta""
|
||||
set "Gray="white" "darkgray""
|
||||
set "Black="white" "Black""
|
||||
set "ELine=echo: &call :K38_color "==== ERROR ====" %Red% &echo:"
|
||||
set slp=SoftwareLicensingProduct
|
||||
set sls=SoftwareLicensingService
|
||||
set wApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 14393 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 10 / Server - 1607 [14393] and later builds.
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :K38_Passed
|
||||
) || (
|
||||
if defined _elev goto :K38_E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
if defined _args set _PSarg="""%~f0""" -el """%_args%"""
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :K38_E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:K38_E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto K38_Done
|
||||
|
||||
:K38_Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
:: Written by @abbodi1406
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode con: cols=102 lines=30
|
||||
|
||||
:: Check Windows OS name
|
||||
|
||||
set winos=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
|
||||
call :K38_CheckPermAct
|
||||
if defined PermAct (
|
||||
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
call :K38_color1 " " %Black% &call :K38_color "Checking: %winos% is Permanently Activated." %Green%
|
||||
call :K38_color1 " " %Black% &call :K38_color "Activation is not required." %Gray%
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
if defined Unattended goto K38_Done
|
||||
|
||||
echo Press [1] or [2] button in Keyboard :
|
||||
echo ___________________________________________
|
||||
echo:
|
||||
choice /C:12 /N /M "> [1] Activate [2] Exit : "
|
||||
|
||||
if errorlevel 2 exit /b
|
||||
if errorlevel 1 Goto K38_Continue
|
||||
)
|
||||
|
||||
:K38_Continue
|
||||
cls
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cd /d "!_work!"
|
||||
pushd "!_work!"
|
||||
|
||||
if not exist "!_work!\BIN\" (
|
||||
%ELine%
|
||||
echo 'BIN' Folder does not exist in current directory.
|
||||
echo It's supposed to have files required for the Activation.
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo %winos%| findstr /I Evaluation >nul && set Eval=1||set Eval=
|
||||
if defined Eval (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild%] KMS38 Activation is Not Supported.
|
||||
echo %winos%| findstr /I Server >nul && (
|
||||
echo Server Evaluation cannot be activated. Convert it to full Server OS.
|
||||
) || (
|
||||
echo Evaluation Editions cannot be activated. Install full Windows OS.
|
||||
)
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check SKU value
|
||||
|
||||
set SKU=
|
||||
for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
|
||||
if "%osSKU%"=="" (
|
||||
%ELine%
|
||||
echo SKU value was not detected properly. Aborting...
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
set osedition=
|
||||
call :K38_CheckEdition %nul%
|
||||
|
||||
if "%osedition%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild% ^| SKU:%osSKU%] KMS38 Activation is Not Supported.
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
:: Check Activation ID
|
||||
|
||||
set app=
|
||||
for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%' and LicenseFamily='%osedition%' and Description like '%%KMSCLIENT%%') get ID /VALUE" 2^>nul') do set "app=%%a"
|
||||
|
||||
:: Check Windows Architecture
|
||||
|
||||
set arch=
|
||||
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > nul && set arch=x86|| set arch=x64
|
||||
wmic os get osarchitecture | find /i "ARM" > nul && set arch=ARM64|| echo %PROCESSOR_ARCHITECTURE% | find /i "ARM" > nul && set arch=ARM64
|
||||
|
||||
if "%arch%"=="ARM64" call :K38_check ARM64_gatherosstate.exe ARM64_slc.dll
|
||||
if not "%arch%"=="ARM64" call :K38_check gatherosstate.exe slc.dll
|
||||
if defined _miss goto K38_Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
if "%app%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild%] KMS38 Activation is Not Supported.
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
set key=
|
||||
call :%app% %nul%
|
||||
|
||||
if "%key%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild% ^| %app%] KMS38 Activation is Not Supported.
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
:: clipup.exe does not exist in server cor and acor editions.
|
||||
|
||||
set A_Cor=
|
||||
echo %osedition%| findstr /I /B Server >nul && if not exist "%systemroot%\System32\clipup.exe" set A_Cor=1
|
||||
|
||||
if defined A_Cor (
|
||||
call :K38_check clipup.exe
|
||||
if defined _miss goto K38_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
echo Checking OS Info [%winos% ^| %winbuild% ^| %arch%]
|
||||
|
||||
echo:
|
||||
set _1=ClipSVC
|
||||
set _3=sppsvc
|
||||
|
||||
for %%# in (%_1% %_3%) do call :K38_ServiceCheck %%#
|
||||
|
||||
set "CLecho=Checking %_1% [Service Status -%Cl_state%] [Startup Type -%Cl_start_type%]"
|
||||
set "specho=Checking %_3% [Service Status -%sp_state%] [Startup Type -%sp_start_type%]"
|
||||
|
||||
if not "%Cl_start_type%"=="Demand" (call :K38_color "%CLecho%" %Red% & set Clst_e=1) else (echo %CLecho%)
|
||||
if not "%sp_start_type%"=="Delayed-Auto" (call :K38_color "%specho%" %Red% & set spst_e=1) else (echo %specho%)
|
||||
|
||||
echo:
|
||||
if defined Clst_e (sc config %_1% start= Demand %nul% && set Clst_s=%_1%-Demand || set Clst_u=%_1%-Demand )
|
||||
if defined spst_e (sc config %_3% start= Delayed-Auto %nul% && set spst_s=%_3%-Delayed-Auto || set spst_u=%_3%-Delayed-Auto )
|
||||
|
||||
for %%# in (Clst_s,spst_s) do if defined %%# set st_s=1
|
||||
if defined st_s (echo Changing services Startup Type to [ %Clst_s%%spst_s%] [Successful])
|
||||
|
||||
for %%# in (Clst_u,spst_u) do if defined %%# set st_u=1
|
||||
if defined st_u (call :K38_color "Error in changing Startup Type to [ %Clst_u%%spst_u%]" %Red%)
|
||||
|
||||
if not "%Cl_state%"=="Running" (%_psc% start-service %_1% %nul% && set Cl_s=%_1% || set Cl_u=%_1% )
|
||||
if not "%sp_state%"=="Running" (%_psc% start-service %_3% %nul% && set sp_s=%_3% || set sp_u=%_3% )
|
||||
|
||||
for %%# in (Cl_s,sp_s) do if defined %%# set s_s=1
|
||||
if defined s_s (echo Starting services [ %Cl_s%%sp_s%] [Successful])
|
||||
|
||||
for %%# in (Cl_u,sp_u) do if defined %%# set s_u=1
|
||||
if defined s_u (call :K38_color "Error in starting services [ %Cl_u%%sp_u%]" %Red%)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Thanks to @abbodi1406 for the WMI methods
|
||||
|
||||
echo:
|
||||
set _channel=
|
||||
set _Keyexist=
|
||||
set _partial=
|
||||
|
||||
wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel 2>nul | findstr /i GVLK 1>nul && (set _Keyexist=1)
|
||||
|
||||
if defined _Keyexist (
|
||||
for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get PartialProductKey /value 2^>nul') do set "_partial=%%#"
|
||||
call echo Checking Installed Product Key [Volume:GVLK] [Partial Key -%%_partial%%]
|
||||
)
|
||||
|
||||
if not defined _Keyexist (
|
||||
set "InsKey=Installing KMS Client Setup Key "
|
||||
wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="%key%" %nul% && (
|
||||
call echo %%InsKey%% [%key%] [Successful]
|
||||
) || (
|
||||
call :K38_color "%%InsKey%% [%key%] [Unsuccessful]" %Red%
|
||||
)
|
||||
)
|
||||
|
||||
wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Set specific KMS host to Local Host
|
||||
:: Thanks to @abbodi1406
|
||||
|
||||
:: By doing this, global KMS IP can not replace KMS38 activation but can be used with Office and other Windows Editions.
|
||||
|
||||
echo:
|
||||
set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
|
||||
reg delete "HKLM\%SPPk%\%wApp%" /f %nul%
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul%
|
||||
|
||||
set setkms_error=
|
||||
set "setkms_=Setting Specific KMS Host to "
|
||||
|
||||
wmic path %slp% where ID='%app%' call ClearKeyManagementServiceMachine %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call ClearKeyManagementServicePort %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call SetKeyManagementServiceMachine MachineName="127.0.0.2" %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call SetKeyManagementServicePort 1688 %nul% || (set setkms_error=1)
|
||||
|
||||
if not defined setkms_error (
|
||||
echo %setkms_% [LocalHost 127.0.0.2] [Successful]
|
||||
) else (
|
||||
call :K38_color "%setkms_% [LocalHost 127.0.0.2] [Unsuccessful]" %Red%
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Files are copied to temp to generate ticket to avoid possible issues in case the path contains special character or non English names.
|
||||
|
||||
echo:
|
||||
set "temp_=%SystemRoot%\Temp\_Ticket_Work"
|
||||
if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul%
|
||||
md "%temp_%\" %nul%
|
||||
|
||||
cd /d "!_work!\BIN\"
|
||||
|
||||
set ARM64_file=
|
||||
if "%arch%"=="ARM64" set ARM64_file=ARM64_
|
||||
|
||||
set "A_Cor_cl=%systemroot%\System32\clipup.exe"
|
||||
copy /y /b "%ARM64_file%gatherosstate.exe" "%temp_%\gatherosstate.exe" %nul%
|
||||
copy /y /b "%ARM64_file%slc.dll" "%temp_%\slc.dll" %nul%
|
||||
if defined A_Cor (copy /y /b "ClipUp.exe" "%A_Cor_cl%" %nul%)
|
||||
|
||||
set cfailed=
|
||||
if not exist "%temp_%\gatherosstate.exe" set cfailed=1
|
||||
if not exist "%temp_%\slc.dll" set cfailed=1
|
||||
|
||||
set "copyfiles=Copying Required Files to Temp "
|
||||
set "copyclipup=Copying clipup.exe File to "
|
||||
|
||||
if defined cfailed (
|
||||
call :K38_color "%copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Unsuccessful] Aborting..." %Red%
|
||||
goto K38_Act_Cont
|
||||
) else (
|
||||
echo %copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Successful]
|
||||
)
|
||||
|
||||
if defined A_Cor (
|
||||
if not exist "%A_Cor_cl%" call :K38_color "%copyclipup% [%systemroot%\System32\] [Unsuccessful] Aborting..." %Red% & goto K38_Act_Cont
|
||||
if exist "%A_Cor_cl%" echo %copyclipup% [%systemroot%\System32\] [Successful]
|
||||
)
|
||||
|
||||
cd /d "%temp_%\"
|
||||
attrib -R -A -S -H *.*
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
start /wait "" "%temp_%/gatherosstate.exe" %nul%
|
||||
if not exist "%temp_%\GenuineTicket.xml" (
|
||||
call "%temp_%/gatherosstate.exe" %nul%
|
||||
)
|
||||
|
||||
set "GenTicket=Generating GenuineTicket.xml "
|
||||
if not exist "%temp_%\GenuineTicket.xml" (
|
||||
call :K38_color "%GenTicket% [Unsuccessful] Aborting..." %Red%
|
||||
goto K38_Act_Cont
|
||||
) else (
|
||||
echo %GenTicket% [Successful]
|
||||
)
|
||||
|
||||
:: clipup -v -o -altto <Ticket path> method to apply ticket was not used to avoid the certain issues in case the username have spaces or non English names.
|
||||
|
||||
set "InsTicket=Installing GenuineTicket.xml "
|
||||
set "TDir=%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket"
|
||||
if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul%
|
||||
copy /y /b "%temp_%\GenuineTicket.xml" "%TDir%\GenuineTicket.xml" %nul%
|
||||
|
||||
if not exist "%TDir%\GenuineTicket.xml" (
|
||||
call :K38_color "Failed to copy Ticket to [%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket\] Aborting..." %Red%
|
||||
goto K38_Act_Cont
|
||||
)
|
||||
|
||||
%_psc% Restart-Service ClipSVC %nul%
|
||||
|
||||
if exist "%TDir%\GenuineTicket.xml" (
|
||||
net stop ClipSVC %nul%
|
||||
net start ClipSVC %nul%
|
||||
)
|
||||
|
||||
if exist "%TDir%\GenuineTicket.xml" (
|
||||
%nul% clipup -v -o
|
||||
set "fallback_=[Fallback method: clipup -v -o]"
|
||||
)
|
||||
|
||||
if not exist "%TDir%\GenuineTicket.xml" (
|
||||
echo %InsTicket% [Successful] %fallback_%
|
||||
) else (
|
||||
call :K38_color "%InsTicket% [Unsuccessful] Aborting..." %Red%
|
||||
if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul%
|
||||
goto K38_Act_Cont
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo:
|
||||
echo Activating...
|
||||
echo:
|
||||
|
||||
call :K38_CheckEXPtime
|
||||
if %gpr% GTR 259200 (
|
||||
call :K38_Actinfo
|
||||
goto K38_Act_Cont
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Clear 180 Days KMS Activation lock without full Rearm and Restart
|
||||
|
||||
set RearmF=
|
||||
set "Rearm=Applying SKU-APP ID Rearm "
|
||||
wmic path %sls% where __CLASS='%sls%' call ReArmApp ApplicationId="%wApp%" %nul% || (set RearmF=1)
|
||||
wmic path %slp% where ID='%app%' call ReArmsku %nul% || (set RearmF=1)
|
||||
|
||||
if defined RearmF (
|
||||
call :K38_color "%Rearm% [Unsuccessful]" %Red%
|
||||
) else (
|
||||
echo %Rearm% [Successful]
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo:
|
||||
call :K38_CheckEXPtime
|
||||
if %gpr% GTR 259200 (
|
||||
call :K38_Actinfo
|
||||
goto K38_Act_Cont
|
||||
)
|
||||
|
||||
%_psc% Restart-Service sppsvc %nul%
|
||||
wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
|
||||
call :K38_CheckEXPtime
|
||||
if %gpr% GTR 259200 (
|
||||
call :K38_Actinfo
|
||||
goto K38_Act_Cont
|
||||
)
|
||||
|
||||
call :K38_color "Activation Failed." %Red%
|
||||
call :K38_color "Try the Troubleshoot Guide listed in the ReadMe." %Magenta%
|
||||
|
||||
:K38_Act_Cont
|
||||
|
||||
:: clipup.exe does not exist in server cor and acor editions by default, it was copied there with this script.
|
||||
|
||||
echo:
|
||||
cd /d "!_work!\"
|
||||
if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul%
|
||||
if defined A_Cor (if exist "%A_Cor_cl%" del /f /q "%A_Cor_cl%" %nul%)
|
||||
|
||||
set "delFiles=Cleaning Temp Files "
|
||||
set "delclipup=Deleting copied clipup.exe file "
|
||||
|
||||
if exist "%temp_%\" (
|
||||
call :K38_color "%delFiles% [Unsuccessful]" %Red%
|
||||
) else (
|
||||
echo %delFiles% [Successful]
|
||||
)
|
||||
|
||||
if defined A_Cor (
|
||||
if exist "%A_Cor_cl%" call :K38_color "%delclipup% [Unsuccessful]" %Red%
|
||||
if not exist "%A_Cor_cl%" echo %delclipup% [Successful]
|
||||
)
|
||||
|
||||
goto K38_Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Echo all the missing files.
|
||||
:: Written by @abbodi1406 (MDL)
|
||||
|
||||
:K38_check
|
||||
|
||||
for %%# in (%1 %2) do (if not exist "!_work!\BIN\%%#" (if defined _miss (set "_miss=!_miss! %%#") else (set "_miss=%%#")))
|
||||
if defined _miss (
|
||||
%ELine%
|
||||
echo Following required file^(s^) is missing in 'BIN' folder. Aborting...
|
||||
echo:
|
||||
echo !_miss!
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:K38_ServiceCheck
|
||||
|
||||
:: Detect Service status and start type
|
||||
:: Written by @RPO
|
||||
|
||||
for /f "tokens=1,3 delims=: " %%a in ('sc query %1') do (if /i %%a==state set "state=%%b")
|
||||
for /f "tokens=1-4 delims=: " %%a in ('sc qc %1') do (if /i %%a==start_type set "start_type=%%c %%d")
|
||||
|
||||
if /i "%state%"=="STOPPED" set state=Stopped
|
||||
if /i "%state%"=="RUNNING" set state=Running
|
||||
|
||||
if /i "%start_type%"=="auto_start (delayed)" set start_type=Delayed-Auto
|
||||
if /i "%start_type%"=="auto_start " set start_type=Auto
|
||||
if /i "%start_type%"=="demand_start " set start_type=Demand
|
||||
if /i "%start_type%"=="disabled " set start_type=Disabled
|
||||
|
||||
for %%i in (%*) do (
|
||||
if /i "%%i"=="%_3%" set "sp_start_type=%start_type%" & set "sp_state=%state%"
|
||||
if /i "%%i"=="%_1%" set "Cl_start_type=%start_type%" & set "Cl_state=%state%"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:K38_CheckPermAct
|
||||
|
||||
:: Check Windows Permanent Activation status
|
||||
:: Written by @abbodi1406
|
||||
|
||||
wmic path %slp% where (LicenseStatus='1' and GracePeriodRemaining='0' and PartialProductKey is not NULL) get Name 2>nul | findstr /i "Windows" 1>nul && set PermAct=1||set PermAct=
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Expiration date with powershell
|
||||
:: Written by @abbodi1406
|
||||
|
||||
:K38_Actinfo
|
||||
|
||||
for /f "tokens=* delims=" %%# in ('%_psc% "$([DateTime]::Now.addMinutes(%gpr%)).ToString('yyyy-MM-dd HH:mm:ss')" 2^>nul') do set "_xpr=%%#"
|
||||
call :K38_color "%winos% is activated till %_xpr%" %Green%
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:K38_CheckEXPtime
|
||||
|
||||
:: Check Activation remaining time
|
||||
:: Written by @abbodi1406
|
||||
|
||||
for /f "tokens=2 delims==" %%# in ('"wmic path %slp% where (ApplicationID='%wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get GracePeriodRemaining /VALUE" ') do set "gpr=%%#"
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:K38_color
|
||||
|
||||
%_psc% write-host '%1' -fore '%2' -back '%3'
|
||||
exit /b
|
||||
|
||||
:K38_color1
|
||||
|
||||
%_psc% write-host '%1' -fore '%2' -back '%3' -NoNewline
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:K38_Done
|
||||
|
||||
echo:
|
||||
if defined Unattended (
|
||||
echo Exiting in 3 seconds...
|
||||
if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3)
|
||||
exit /b
|
||||
)
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
:K38_CheckEdition
|
||||
|
||||
for %%# in (
|
||||
4:Enterprise
|
||||
7:ServerStandard
|
||||
8:ServerDatacenter
|
||||
27:EnterpriseN
|
||||
48:Professional
|
||||
49:ProfessionalN
|
||||
50:ServerSolution
|
||||
98:CoreN
|
||||
99:CoreCountrySpecific
|
||||
100:CoreSingleLanguage
|
||||
101:Core
|
||||
110:ServerCloudStorage
|
||||
120:ServerARM64
|
||||
121:Education
|
||||
122:EducationN
|
||||
125:EnterpriseS
|
||||
126:EnterpriseSN
|
||||
145:ServerDatacenterACor
|
||||
146:ServerStandardACor
|
||||
161:ProfessionalWorkstation
|
||||
162:ProfessionalWorkstationN
|
||||
164:ProfessionalEducation
|
||||
165:ProfessionalEducationN
|
||||
168:ServerAzureCor
|
||||
171:EnterpriseG
|
||||
172:EnterpriseGN
|
||||
175:ServerRdsh
|
||||
183:CloudE
|
||||
) do for /f "tokens=1,2 delims=:" %%A in ("%%#") do (
|
||||
if %osSKU%==%%A set "osedition=%%B"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Generic Volume License Key (GVLK) List
|
||||
|
||||
:: Windows 10 [RS5]
|
||||
:32d2fab3-e4a8-42c2-923b-4bf4fd13e6ee
|
||||
set "key=M7XTQ-FN8P6-TTKYV-9D4CC-J462D" &:: Enterprise LTSC 2019
|
||||
exit /b
|
||||
|
||||
:7103a333-b8c8-49cc-93ce-d37c09687f92
|
||||
set "key=92NFX-8DJQP-P6BBQ-THF9C-7CG2H" &:: Enterprise LTSC 2019 N
|
||||
exit /b
|
||||
|
||||
:ec868e65-fadf-4759-b23e-93fe37f2cc29
|
||||
set "key=CPWHC-NT2C7-VYW78-DHDB2-PG3GK" &:: Enterprise for Virtual Desktops
|
||||
exit /b
|
||||
|
||||
:0df4f814-3f57-4b8b-9a9d-fddadcd69fac
|
||||
set "key=NBTWJ-3DR69-3C4V8-C26MC-GQ9M6" &:: Lean
|
||||
exit /b
|
||||
|
||||
:: Windows 10 [RS3]
|
||||
:82bbc092-bc50-4e16-8e18-b74fc486aec3
|
||||
set "key=NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J" &:: Pro Workstation
|
||||
exit /b
|
||||
|
||||
:4b1571d3-bafb-4b40-8087-a961be2caf65
|
||||
set "key=9FNHH-K3HBT-3W4TD-6383H-6XYWF" &:: Pro Workstation N
|
||||
exit /b
|
||||
|
||||
:e4db50ea-bda1-4566-b047-0ca50abc6f07
|
||||
set "key=7NBT4-WGBQX-MP4H7-QXFF8-YP3KX" &:: Enterprise Remote Server
|
||||
exit /b
|
||||
|
||||
:: Windows 10 [RS2]
|
||||
:e0b2d383-d112-413f-8a80-97f373a5820c
|
||||
set "key=YYVX9-NTFWV-6MDM3-9PT4T-4M68B" &:: Enterprise G
|
||||
exit /b
|
||||
|
||||
:e38454fb-41a4-4f59-a5dc-25080e354730
|
||||
set "key=44RPN-FTY23-9VTTB-MP9BX-T84FV" &:: Enterprise G N
|
||||
exit /b
|
||||
|
||||
:: Windows 10 [RS1]
|
||||
:2d5a5a60-3040-48bf-beb0-fcd770c20ce0
|
||||
set "key=DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ" &:: Enterprise 2016 LTSB
|
||||
exit /b
|
||||
|
||||
:9f776d83-7156-45b2-8a5c-359b9c9f22a3
|
||||
set "key=QFFDN-GRT3P-VKWWX-X7T3R-8B639" &:: Enterprise 2016 LTSB N
|
||||
exit /b
|
||||
|
||||
:3f1afc82-f8ac-4f6c-8005-1d233e606eee
|
||||
set "key=6TP4R-GNPTD-KYYHQ-7B7DP-J447Y" &:: Pro Education
|
||||
exit /b
|
||||
|
||||
:5300b18c-2e33-4dc2-8291-47ffcec746dd
|
||||
set "key=YVWGF-BXNMC-HTQYQ-CPQ99-66QFC" &:: Pro Education N
|
||||
exit /b
|
||||
|
||||
:: Windows 10 [TH]
|
||||
:58e97c99-f377-4ef1-81d5-4ad5522b5fd8
|
||||
set "key=TX9XD-98N7V-6WMQ6-BX7FG-H8Q99" &:: Home
|
||||
exit /b
|
||||
|
||||
:7b9e1751-a8da-4f75-9560-5fadfe3d8e38
|
||||
set "key=3KHY7-WNT83-DGQKR-F7HPR-844BM" &:: Home N
|
||||
exit /b
|
||||
|
||||
:cd918a57-a41b-4c82-8dce-1a538e221a83
|
||||
set "key=7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH" &:: Home Single Language
|
||||
exit /b
|
||||
|
||||
:a9107544-f4a0-4053-a96a-1479abdef912
|
||||
set "key=PVMJN-6DFY6-9CCP6-7BKTT-D3WVR" &:: Home China
|
||||
exit /b
|
||||
|
||||
:2de67392-b7a7-462a-b1ca-108dd189f588
|
||||
set "key=W269N-WFGWX-YVC9B-4J6C9-T83GX" &:: Pro
|
||||
exit /b
|
||||
|
||||
:a80b5abf-76ad-428b-b05d-a47d2dffeebf
|
||||
set "key=MH37W-N47XK-V7XM9-C7227-GCQG9" &:: Pro N
|
||||
exit /b
|
||||
|
||||
:e0c42288-980c-4788-a014-c080d2e1926e
|
||||
set "key=NW6C2-QMPVW-D7KKK-3GKT6-VCFB2" &:: Education
|
||||
exit /b
|
||||
|
||||
:3c102355-d027-42c6-ad23-2e7ef8a02585
|
||||
set "key=2WH4N-8QGBV-H22JP-CT43Q-MDWWJ" &:: Education N
|
||||
exit /b
|
||||
|
||||
:73111121-5638-40f6-bc11-f1d7b0d64300
|
||||
set "key=NPPR9-FWDCX-D2C8J-H872K-2YT43" &:: Enterprise
|
||||
exit /b
|
||||
|
||||
:e272e3e2-732f-4c65-a8f0-484747d0d947
|
||||
set "key=DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4" &:: Enterprise N
|
||||
exit /b
|
||||
|
||||
:7b51a46c-0c04-4e8f-9af4-8496cca90d5e
|
||||
set "key=WNMTR-4C88C-JK8YV-HQ7T2-76DF9" &:: Enterprise 2015 LTSB
|
||||
exit /b
|
||||
|
||||
:87b838b7-41b6-4590-8318-5797951d8529
|
||||
set "key=2F77B-TNFGY-69QQF-B8YKP-D69TJ" &:: Enterprise 2015 LTSB N
|
||||
exit /b
|
||||
|
||||
:: Windows Server 2019 [RS5]
|
||||
:de32eafd-aaee-4662-9444-c1befb41bde2
|
||||
set "key=N69G4-B89J2-4G8F4-WWYCC-J464C" &:: Standard
|
||||
exit /b
|
||||
|
||||
:34e1ae55-27f8-4950-8877-7a03be5fb181
|
||||
set "key=WMDGN-G9PQG-XVVXX-R3X43-63DFG" &:: Datacenter
|
||||
exit /b
|
||||
|
||||
:034d3cbb-5d4b-4245-b3f8-f84571314078
|
||||
set "key=WVDHN-86M7X-466P6-VHXV7-YY726" &:: Essentials
|
||||
exit /b
|
||||
|
||||
:a99cc1f0-7719-4306-9645-294102fbff95
|
||||
set "key=FDNH6-VW9RW-BXPJ7-4XTYG-239TB" &:: Azure Core
|
||||
exit /b
|
||||
|
||||
:73e3957c-fc0c-400d-9184-5f7b6f2eb409
|
||||
set "key=N2KJX-J94YW-TQVFB-DG9YT-724CC" &:: Standard ACor
|
||||
exit /b
|
||||
|
||||
:90c362e5-0da1-4bfd-b53b-b87d309ade43
|
||||
set "key=6NMRW-2C8FM-D24W7-TQWMY-CWH2D" &:: Datacenter ACor
|
||||
exit /b
|
||||
|
||||
:8de8eb62-bbe0-40ac-ac17-f75595071ea3
|
||||
set "key=GRFBW-QNDC4-6QBHG-CCK3B-2PR88" &:: ServerARM64
|
||||
exit /b
|
||||
|
||||
:: Windows Server 2016 [RS4]
|
||||
:43d9af6e-5e86-4be8-a797-d072a046896c
|
||||
set "key=K9FYF-G6NCK-73M32-XMVPY-F9DRR" &:: ServerARM64
|
||||
exit /b
|
||||
|
||||
:: Windows Server 2016 [RS3]
|
||||
:61c5ef22-f14f-4553-a824-c4b31e84b100
|
||||
set "key=PTXN8-JFHJM-4WC78-MPCBR-9W4KR" &:: Standard ACor
|
||||
exit /b
|
||||
|
||||
:e49c08e7-da82-42f8-bde2-b570fbcae76c
|
||||
set "key=2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG" &:: Datacenter ACor
|
||||
exit /b
|
||||
|
||||
:: Windows Server 2016 [RS1]
|
||||
:8c1c5410-9f39-4805-8c9d-63a07706358f
|
||||
set "key=WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY" &:: Standard
|
||||
exit /b
|
||||
|
||||
:21c56779-b449-4d20-adfc-eece0e1ad74b
|
||||
set "key=CB7KF-BWN84-R7R2Y-793K2-8XDDG" &:: Datacenter
|
||||
exit /b
|
||||
|
||||
:2b5a1b0f-a5ab-4c54-ac2f-a6d94824a283
|
||||
set "key=JCKRF-N37P4-C2D82-9YXRT-4M63B" &:: Essentials
|
||||
exit /b
|
||||
|
||||
:7b4433f4-b1e7-4788-895a-c45378d38253
|
||||
set "key=QN4C6-GBJD2-FB422-GHWJK-GJG2R" &:: Cloud Storage
|
||||
exit /b
|
||||
|
||||
:3dbf341b-5f6c-4fa7-b936-699dce9e263f
|
||||
set "key=VP34G-4NPPG-79JTQ-864T4-R3MQX" &:: Azure Core
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,332 +0,0 @@
|
||||
====================================================================================================
|
||||
[HWID] Digital License Activation:
|
||||
====================================================================================================
|
||||
|
||||
- This activation is supported for Windows 10 ONLY.
|
||||
- This activation does not store any files in your system.
|
||||
- This activation is a permanent activation for your system Hardware.
|
||||
|
||||
- On a system, this activation can be created for all the supported editions, and all can be
|
||||
linked to Microsoft account without any issues.
|
||||
|
||||
- Once a system is activated, this activation cannot be removed. (Because the license is stored in
|
||||
the Microsoft servers and not in the user's system.)
|
||||
|
||||
- Any significant changes in the Hardware (such as a motherboard) may deactivate the system.
|
||||
It is possible to reactivate a system that was deactivated because of significant hardware
|
||||
changes, IF your activation, was linked to an online Microsoft account.
|
||||
|
||||
- For activation to succeed, the Windows Update Service and internet connectivity must be enabled.
|
||||
If you are trying to activate without these conditions being met, then the system will auto-
|
||||
activate later when the conditions are met.
|
||||
|
||||
- Auto activation scenario after the Windows reinstall:
|
||||
- The Internet is required. (Only at the time of activation)
|
||||
- The system will auto-activate if Retail (Consumer) media was used for the installation.
|
||||
- The system will NOT auto-activate if VL (Business) media was used for the installation.
|
||||
In this case, the user will have to insert that windows edition Retail/OEM key (find keys below
|
||||
in this page) to activate, if the user doesn't wish to activate again using this script.
|
||||
|
||||
- Possible reasons for activation failure:
|
||||
- The Internet is not connected.
|
||||
- Windows update service is disabled.
|
||||
- Use of a VPN, and/or a privacy-based hosts file, firewall rules.
|
||||
- Corrupt system files.
|
||||
- Microsoft servers block the activation request from some countries such as Iran.
|
||||
- Rarely, Microsoft's activation servers are the problem.
|
||||
- Some machines are not able to generate GenuineTicket.xml file using gatherosstate.exe
|
||||
The reason is unknown (to me). Please contact me if it happens to you.
|
||||
|
||||
* Troubleshoot guide is listed below.
|
||||
|
||||
====================================================================================================
|
||||
|
||||
Documentation by @mspaintmsi
|
||||
|
||||
Included topics-
|
||||
|
||||
How does it work?
|
||||
Is it possible that Microsoft can block these Digital Licenses (HWID)?
|
||||
|
||||
https://pastebin.com/raw/7Xyaf15Z
|
||||
Mirror Link-
|
||||
https://textuploader.com/1dg8d/raw
|
||||
|
||||
====================================================================================================
|
||||
Supported Products:
|
||||
====================================================================================================
|
||||
|
||||
Windows 10 Versions that can be activated:
|
||||
|
||||
Core
|
||||
CoreCountrySpecific
|
||||
CoreN
|
||||
CoreSingleLanguage
|
||||
Education
|
||||
EducationN
|
||||
Enterprise
|
||||
EnterpriseN
|
||||
EnterpriseS [LTSB 2015 & 2016]
|
||||
EnterpriseSN [LTSB 2015 & 2016]
|
||||
Professional
|
||||
ProfessionalEducation
|
||||
ProfessionalEducationN
|
||||
ProfessionalN
|
||||
ProfessionalWorkstation
|
||||
ProfessionalWorkstationN
|
||||
ServerRdsh
|
||||
IoTEnterprise
|
||||
|
||||
|
||||
Note - X86-X64 and ARM64 architecture systems are supported.
|
||||
- Any Evaluation version of Windows (i.e. 'EVAL' LTSB/C) cannot be activated.
|
||||
- LTSC 2019 is not supported.
|
||||
|
||||
====================================================================================================
|
||||
Switches for the Script:
|
||||
====================================================================================================
|
||||
|
||||
- To run the script in unattended mode, use /u parameter.
|
||||
"HWID_Activation.cmd" /u
|
||||
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe Virus Total = 0/68
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll Virus Total = 1/67
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe Virus Total = 0/70
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll Virus Total = 0/69
|
||||
|
||||
Virus Total Report Date: 08-12-2019
|
||||
|
||||
- File Sources:
|
||||
|
||||
- gatherosstate.exe (Original):
|
||||
From Windows 10 x86 14393 ADK
|
||||
|
||||
- ARM64_gatherosstate.exe (Original):
|
||||
From Windows 10 ARM64 18362 ISO
|
||||
|
||||
- ARM64_slc.dll and slc.dll:
|
||||
|
||||
Original slshim
|
||||
https://github.com/vyvojar/slshim
|
||||
|
||||
Improved by @mspaintmsi
|
||||
https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
Source code is included.
|
||||
slc.dll is based on Integrated_Patcher_2 method.
|
||||
It is currently in use in HWID/KMS38 Activation script.
|
||||
|
||||
____________________________________________________________________________________________________
|
||||
|
||||
You can safely delete the following files if it's not required for you.
|
||||
|
||||
ARM64_gatherosstate.exe and ARM64_slc.dll - Required to activate ARM64 Arch Windows 10.
|
||||
|
||||
====================================================================================================
|
||||
Manual Activation Process:
|
||||
====================================================================================================
|
||||
|
||||
- Prerequisite:
|
||||
|
||||
For Windows 10 x86-x64 system, you need following files,
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll
|
||||
|
||||
For Windows 10 ARM64 system, you need following files,
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll
|
||||
* Rename the ARM64 files to gatherosstate.exe and slc.dll respectively.
|
||||
|
||||
|
||||
Make a folder named 'Files' in C drive, [C:\Files] and copy the required files in that folder.
|
||||
|
||||
-------------------------------------------------------------------------------------------------
|
||||
|
||||
Retail/OEM Keys Windows 10 Editions
|
||||
|
||||
YTMG3-N6DKC-DKB77-7M9GH-8HVX7 Core
|
||||
4CPRK-NM3K3-X6XXQ-RXX86-WXCHW CoreN
|
||||
N2434-X9D7W-8PF6X-8DV9T-8TYMD CoreCountrySpecific
|
||||
BT79Q-G7N6G-PGBYW-4YWX6-6F4BT CoreSingleLanguage
|
||||
YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY Education
|
||||
84NGF-MHBT6-FXBX8-QWJK7-DRR8H EducationN
|
||||
XGVPP-NMH47-7TTHJ-W3FW7-8HV2C Enterprise
|
||||
3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT EnterpriseN
|
||||
FWN7H-PF93Q-4GGP8-M8RF3-MDWWW EnterpriseS [LTSB 2015]
|
||||
8V8WN-3GXBH-2TCMG-XHRX3-9766K EnterpriseSN [LTSB 2015]
|
||||
NK96Y-D9CD8-W44CQ-R8YTK-DYJWX EnterpriseS [LTSB 2016]
|
||||
2DBW3-N2PJG-MVHW3-G7TDK-9HKR4 EnterpriseSN [LTSB 2016]
|
||||
VK7JG-NPHTM-C97JM-9MPGT-3V66T Professional
|
||||
2B87N-8KFHP-DKV6R-Y2C8J-PKCKT ProfessionalN
|
||||
8PTT6-RNW4C-6V7J2-C2D3X-MHBPB ProfessionalEducation
|
||||
GJTYN-HDMQY-FRR76-HVGC7-QPF8P ProfessionalEducationN
|
||||
DXG7C-N36C4-C4HTG-X4T3X-2YV77 ProfessionalWorkstation
|
||||
WYPNQ-8C467-V2W6J-TX4WX-WT2RQ ProfessionalWorkstationN
|
||||
NJCF7-PW8QT-3324D-688JX-2YV66 ServerRdsh
|
||||
XQQYW-NFFMW-XJPBH-K8732-CKFFD IoTEnterprise
|
||||
|
||||
-------------------------------------------------------------------------------------------------
|
||||
|
||||
- Make sure the Windows Update Service and internet are both enabled.
|
||||
- Open a command prompt (run cmd.exe) as administrator, and enter following listed commands in the
|
||||
the sequence in which they are given.
|
||||
- Enter Retail/OEM Key, (Replace '%key%' with the key from the above list) with the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /ipk %key%
|
||||
|
||||
- Make sure slc.dll and gatherosstate.exe files are located in the folder, "C:\Files" and enter
|
||||
the following commands to generate GenuineTicket.xml file.
|
||||
|
||||
For x86-x64 systems,
|
||||
|
||||
pushd "C:\Files"
|
||||
rundll32 "C:\Files\slc.dll",PatchGatherosstate
|
||||
call "C:\Files\gatherosstatemodified.exe"
|
||||
|
||||
For ARM64 systems,
|
||||
|
||||
call "C:\Files\gatherosstate.exe"
|
||||
|
||||
- Now a GenuineTicket.xml file should be created in the folder "C:\Files\", copy and paste this file in the
|
||||
folder named, "C:\ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket\"
|
||||
|
||||
- Now apply this ticket using the following commands in this sequence:
|
||||
|
||||
net stop ClipSVC
|
||||
net start ClipSVC
|
||||
|
||||
- Activate Windows with the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /ato
|
||||
|
||||
- Check Activation Status with the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /xpr
|
||||
|
||||
- Done.
|
||||
|
||||
* Note - [clipup -v -o -altto <ticket_path>] method to apply the ticket was not suggested because
|
||||
of the issues in case the username have spaces or non English characters.
|
||||
|
||||
====================================================================================================
|
||||
Troubleshoot activation issues:
|
||||
====================================================================================================
|
||||
|
||||
- Make sure the internet is connected.
|
||||
|
||||
- Open CMD and type services.msc and hit Enter, When Services opens up, look for 'Windows Update'
|
||||
and Make sure its startup type is set to Automatic. Some update blocking tools and scripts
|
||||
usually permanently block the update service, you need to make sure it's not the case.
|
||||
|
||||
- VPN, privacy-based hosts and/or firewall rules may cause problems with the activation. Disable
|
||||
them if you are facing problems in activation.
|
||||
|
||||
- Reboot the system.
|
||||
|
||||
- Now run the script to activate Windows 10, and if unsuccessful,
|
||||
Try the troubleshoot button in the settings activation page.
|
||||
If still unsuccessful then read additional troubleshoot options listed below.
|
||||
|
||||
--------------------------------------------
|
||||
|
||||
- Open CMD as administrator, and enter the following command:
|
||||
|
||||
Dism /online /Cleanup-Image /RestoreHealth
|
||||
|
||||
- After it's done, reboot the system and open CMD as administrator again, and enter the
|
||||
following command:
|
||||
|
||||
sfc.exe /scannow
|
||||
|
||||
- After it's done, reboot the system and run the activation script, and if unsuccessful,
|
||||
open CMD as administrator again, and enter the following command:
|
||||
|
||||
slmgr.vbs /rearm
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
You may try to rebuild licensing Tokens.dat as suggested in https://support.microsoft.com/en-us/help/2736303
|
||||
(this will require to repair Office afterwards.)
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
try cleaning the clipup using the following commands, it will reset all the HWID/KMS38 installed
|
||||
licences in the current system installation. open CMD as administrator again, and enter the
|
||||
following commands one by one:
|
||||
|
||||
net stop ClipSVC
|
||||
rundll32 clipc.dll,ClipCleanUpState
|
||||
|
||||
- Reboot the system (important) and run the activation script, and if unsuccessful,
|
||||
Make sure hardware component proper drivers are installed, check manufacturer site/Windows-
|
||||
update for drivers.
|
||||
|
||||
- After it's done, reboot the system and run the activation script, and if unsuccessful,
|
||||
it may be time to start over from the very beginning and do a clean install of windows :D
|
||||
|
||||
-------------------------------------------
|
||||
Activation is blocked in some countries -
|
||||
-------------------------------------------
|
||||
|
||||
- Microsoft servers block the activation request from some countries such as Iran,
|
||||
To activate the system in those countries, follow the below steps,
|
||||
- In the settings app, Change Region and Timezone to the USA location and use a VPN, choose the
|
||||
the location of the USA. Now run the script, it should activate now.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- Some machines are not able to generate GenuineTicket.xml file using gatherosstate.exe
|
||||
The reason is unknown (to me). Please contact me if it happens to you.
|
||||
|
||||
=========================================================================================================
|
||||
Credits:
|
||||
=========================================================================================================
|
||||
|
||||
@mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade.
|
||||
and Created various methods for HWID/KMS38 Activation
|
||||
*Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
@vyvojar Original slshim (slc.dll)
|
||||
https://github.com/vyvojar/slshim/releases
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
HWID/KMS38 methods Suggestions and improvements:-
|
||||
|
||||
@sponpa New ideas for the HWID/KM38 Generation
|
||||
https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257
|
||||
|
||||
@leitek8 Improvements for the slc.dll
|
||||
https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
Kind Help:-
|
||||
|
||||
Thanks for having my back and answering all of my queries. (In no particular order)
|
||||
|
||||
@AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
|
||||
@BorrowedWifi for providing support in fixing English grammar errors in the Read Me.
|
||||
@Chibi ANUBIS and @smashed for testing scripts for ARM64 system.
|
||||
|
||||
Special thanks to @abbodi1406 for providing the great help.
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
This script is a part of 'Microsoft Activation Scripts' project.
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only
|
||||
manage batch script tool which is based on the above mentioned original co-authors activation methods.
|
||||
|
||||
=========================================================================================================
|
@ -1,350 +0,0 @@
|
||||
====================================================================================================
|
||||
KMS38 Activation:
|
||||
====================================================================================================
|
||||
|
||||
- This activation method activates Windows 10 and Windows Server (14393 and later builds),
|
||||
until the year 2038.
|
||||
- This activation method does not store any files on the system.
|
||||
|
||||
- Make sure the following things have been accounted for, before applying KMS38 Activation:
|
||||
- Before the activation, if any KMS activator is installed, then make sure to uninstall it
|
||||
completely.
|
||||
- After KMS38 activation for the Windows Operating System has been achieved, if you want to
|
||||
additionally, use the 180 Days KMS Activator for MS Office, then you must make sure that
|
||||
it (the 180 Days KMS Activator for MS Office) is compatible with Windows KMS38 activation.
|
||||
FYI, the following activators are compatible and can activate Office
|
||||
without disrupting the Windows KMS38 activation.
|
||||
|
||||
KMS_VL_ALL by @abbodi1406 https://forums.mydigitallife.net/posts/838808
|
||||
Online KMS Activation Script https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
|
||||
- Any KMS Activator which is not compatible with KMS38, may overwrite the KMS38 activation for
|
||||
Windows with its own 180 days activation, thereby destroying the KMS38 activation for Windows.
|
||||
To prevent this accidental overwriting, you can apply KMS38 protection for Windows, check
|
||||
the Extras folder for more details.
|
||||
|
||||
- Why is the script setting the specific KMS host to 127.0.0.2 (localhost)?
|
||||
- By doing this, global KMS IP can not replace KMS38 activation but can be used with Office and
|
||||
other Windows Editions.
|
||||
- In case you don't like it, you can remove it with following codes, open CMD as admin and enter,
|
||||
|
||||
set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
|
||||
reg delete "HKLM\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f
|
||||
|
||||
====================================================================================================
|
||||
|
||||
Documentation by @mspaintmsi
|
||||
|
||||
Included topics-
|
||||
|
||||
How does it work?
|
||||
|
||||
https://pastebin.com/raw/7Xyaf15Z
|
||||
Mirror Link-
|
||||
https://textuploader.com/1dg8d/raw
|
||||
|
||||
====================================================================================================
|
||||
Supported Products:
|
||||
====================================================================================================
|
||||
|
||||
Windows 10:
|
||||
|
||||
Core
|
||||
CoreCountrySpecific
|
||||
CoreN
|
||||
CoreSingleLanguage
|
||||
Education
|
||||
EducationN
|
||||
Enterprise
|
||||
EnterpriseG
|
||||
EnterpriseGN
|
||||
EnterpriseN
|
||||
EnterpriseS [LTSB 2016 & LTSC 2019]
|
||||
EnterpriseSN [LTSB 2016 & LTSC 2019]
|
||||
Professional
|
||||
ProfessionalEducation
|
||||
ProfessionalEducationN
|
||||
ProfessionalN
|
||||
ProfessionalWorkstation
|
||||
ProfessionalWorkstationN
|
||||
ServerRdsh
|
||||
|
||||
------------------------
|
||||
|
||||
Windows Server:
|
||||
|
||||
ServerCloudStorage [Server 2016]
|
||||
ServerDatacenter [Server 2016 & 2019]
|
||||
ServerDatacenterCor [Server 2016 & 2019]
|
||||
ServerSolution [Server 2016 & 2019]
|
||||
ServerSolutionCor [Server 2016 & 2019]
|
||||
ServerStandard [Server 2016 & 2019]
|
||||
ServerStandardCor [Server 2016 & 2019]
|
||||
ServerAzureCor [Server 2016 & 2019]
|
||||
ServerDatacenterACor [All versions]
|
||||
ServerStandardACor [All versions]
|
||||
|
||||
|
||||
Note - X86-X64 and ARM64 architecture systems are supported.
|
||||
- Any Evaluation version of Windows and Server (i.e. 'EVAL' LTSB/C) cannot be activated.
|
||||
- KMS38 only supports Windows/server version 14393 (1607) and newer versions.
|
||||
|
||||
====================================================================================================
|
||||
Switches in the Script:
|
||||
====================================================================================================
|
||||
|
||||
- For unattended mode, run the script with /u parameter.
|
||||
|
||||
"KMS38_Activation.cmd" /u
|
||||
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe Virus Total = 0/68
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll Virus Total = 1/67
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe Virus Total = 0/70
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll Virus Total = 0/69
|
||||
48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe Virus Total = 0/67
|
||||
|
||||
Virus Total Report Date: 08-12-2019
|
||||
|
||||
- File Sources:
|
||||
|
||||
- ClipUp.exe (Original):
|
||||
From Windows server 2016 x64 ISO
|
||||
|
||||
- gatherosstate.exe (Original):
|
||||
From Windows 10 x86 14393 ADK
|
||||
|
||||
- ARM64_gatherosstate.exe (Original):
|
||||
From Windows 10 ARM64 18362 ISO
|
||||
|
||||
- ARM64_slc.dll and slc.dll:
|
||||
|
||||
Original slshim
|
||||
https://github.com/vyvojar/slshim
|
||||
|
||||
Improved by @mspaintmsi
|
||||
https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
Source code is included.
|
||||
slc.dll is based on Integrated_Patcher_2 method.
|
||||
It is currently in use in HWID/KMS38 Activation script.
|
||||
|
||||
____________________________________________________________________________________________________
|
||||
|
||||
You can safely delete the following files if it's not required for you.
|
||||
|
||||
ClipUp.exe - Required to KMS38 activate Server Cor and Acor editions.
|
||||
ARM64_gatherosstate.exe and ARM64_slc.dll - Required to activate ARM64 Arch Windows 10.
|
||||
|
||||
====================================================================================================
|
||||
Manual Activation Process:
|
||||
====================================================================================================
|
||||
|
||||
- Prerequisite:
|
||||
|
||||
For Windows 10 / Server x86-x64 system, you need following files,
|
||||
48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll
|
||||
* ClipUp.exe is only required to activate Server Cor and Acor editions.
|
||||
|
||||
For Windows 10 ARM64 system, you need following files,
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll
|
||||
* Rename the ARM64 files to gatherosstate.exe and slc.dll respectively.
|
||||
|
||||
Make a folder named 'Files' in C drive, [C:\Files] and copy the required files in that folder.
|
||||
|
||||
-------------------------------------------------------------------------------------------------
|
||||
|
||||
GVLK Windows 10 Editions
|
||||
|
||||
TX9XD-98N7V-6WMQ6-BX7FG-H8Q99 Core
|
||||
PVMJN-6DFY6-9CCP6-7BKTT-D3WVR CoreCountrySpecific
|
||||
3KHY7-WNT83-DGQKR-F7HPR-844BM CoreN
|
||||
7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH CoreSingleLanguage
|
||||
NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 Education
|
||||
2WH4N-8QGBV-H22JP-CT43Q-MDWWJ EducationN
|
||||
NPPR9-FWDCX-D2C8J-H872K-2YT43 Enterprise
|
||||
YYVX9-NTFWV-6MDM3-9PT4T-4M68B EnterpriseG
|
||||
44RPN-FTY23-9VTTB-MP9BX-T84FV EnterpriseGN
|
||||
DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4 EnterpriseN
|
||||
DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ EnterpriseS [LTSB 2016]
|
||||
M7XTQ-FN8P6-TTKYV-9D4CC-J462D EnterpriseS [LTSC 2019]
|
||||
QFFDN-GRT3P-VKWWX-X7T3R-8B639 EnterpriseSN [LTSB 2016]
|
||||
92NFX-8DJQP-P6BBQ-THF9C-7CG2H EnterpriseSN [LTSC 2019]
|
||||
W269N-WFGWX-YVC9B-4J6C9-T83GX Professional
|
||||
6TP4R-GNPTD-KYYHQ-7B7DP-J447Y ProfessionalEducation
|
||||
YVWGF-BXNMC-HTQYQ-CPQ99-66QFC ProfessionalEducationN
|
||||
MH37W-N47XK-V7XM9-C7227-GCQG9 ProfessionalN
|
||||
NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J ProfessionalWorkstation
|
||||
9FNHH-K3HBT-3W4TD-6383H-6XYWF ProfessionalWorkstationN
|
||||
7NBT4-WGBQX-MP4H7-QXFF8-YP3KX ServerRdsh [Less than 1809]
|
||||
CPWHC-NT2C7-VYW78-DHDB2-PG3GK ServerRdsh [Greater or Equal 1809]
|
||||
|
||||
GVLK Windows Server Editions
|
||||
|
||||
QN4C6-GBJD2-FB422-GHWJK-GJG2R ServerCloudStorage [Server 2016]
|
||||
CB7KF-BWN84-R7R2Y-793K2-8XDDG ServerDatacenter, ServerDatacenterCor [Server 2016]
|
||||
WMDGN-G9PQG-XVVXX-R3X43-63DFG ServerDatacenter, ServerDatacenterCor [Server 2019]
|
||||
JCKRF-N37P4-C2D82-9YXRT-4M63B ServerSolution, ServerSolutionCor [Server 2016]
|
||||
WVDHN-86M7X-466P6-VHXV7-YY726 ServerSolution, ServerSolutionCor [Server 2019]
|
||||
WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY ServerStandard, ServerStandardCor [Server 2016]
|
||||
N69G4-B89J2-4G8F4-WWYCC-J464C ServerStandard, ServerStandardCor [Server 2019]
|
||||
VP34G-4NPPG-79JTQ-864T4-R3MQX ServerAzureCor [Server 2016]
|
||||
FDNH6-VW9RW-BXPJ7-4XTYG-239TB ServerAzureCor [Server 2019]
|
||||
6Y6KB-N82V8-D8CQV-23MJW-BWTG6 ServerDatacenterACor [Server 1709 and later]
|
||||
DPCNP-XQFKJ-BJF7R-FRC8D-GF6G4 ServerStandardACor [Server 1709 and later]
|
||||
|
||||
-------------------------------------------------------------------------------------------------
|
||||
|
||||
- Make sure to properly and completely remove any previously-installed KMS activator if one already exists.
|
||||
- Open CMD as Admin, and enter the following listed commands in the sequence in which they are given.
|
||||
- Enter Generic Volume License Key (GVLK) (Replace '%key%' with the key from the above list)
|
||||
with the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /ipk %key%
|
||||
|
||||
- Set specific KMS host to 127.0.0.2 [Localhost] with the following command: (Run one by one)
|
||||
- By doing this, the global KMS IP can not replace the KMS38 activation, and can then safely be used with MS Office
|
||||
and other Windows Editions.
|
||||
- It's optional.
|
||||
|
||||
set spp=SoftwareLicensingProduct
|
||||
for /f "tokens=2 delims==" %G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%' and Name like 'Windows%%' and PartialProductKey is not NULL) get ID /VALUE"') do (set app=%G)
|
||||
wmic path %spp% where ID='%app%' call ClearKeyManagementServiceMachine
|
||||
wmic path %spp% where ID='%app%' call ClearKeyManagementServicePort
|
||||
wmic path %spp% where ID='%app%' call SetKeyManagementServiceMachine MachineName="127.0.0.2"
|
||||
wmic path %spp% where ID='%app%' call SetKeyManagementServicePort 1688
|
||||
|
||||
- Make sure slc.dll and gatherosstate.exe files are located in the folder, "C:\Files" and enter
|
||||
following command to generate GenuineTicket.xml file.
|
||||
|
||||
call "C:\Files\gatherosstate.exe"
|
||||
|
||||
- Now a GenuineTicket.xml file should be created in the folder "C:\Files\", copy and paste this file in the
|
||||
folder named, "C:\ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket\"
|
||||
|
||||
- Now apply this ticket using the following commands in this sequence:
|
||||
(In case of server cor and acor editions, copy the clipup.exe file to the folder "C:\Windows\System32\")
|
||||
|
||||
net stop ClipSVC
|
||||
net start ClipSVC
|
||||
|
||||
- Check the expiry date of the activation with the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /xpr
|
||||
|
||||
- If the expiry date is not in the year 2038, then enter the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /rearm-app 55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
set spp=SoftwareLicensingProduct
|
||||
for /f "tokens=2 delims==" %G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%' and Name like 'Windows%%' and PartialProductKey is not NULL) get ID /VALUE"') do (set app=%G)
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /rearm-sku %app%
|
||||
|
||||
- check expiry date again, now it should show activation until the year 2038.
|
||||
|
||||
- Done.
|
||||
|
||||
====================================================================================================
|
||||
Troubleshoot activation issues:
|
||||
====================================================================================================
|
||||
|
||||
- Make sure to completely remove any previously-installed KMS activators if any exist, before
|
||||
installing KMS38 activation.
|
||||
|
||||
- Reboot the system.
|
||||
|
||||
- Now run the script to activate Windows 10, and if unsuccessful,
|
||||
Try the troubleshoot button in settings activation page.
|
||||
If still unsuccessful then read additional troubleshoot options listed below.
|
||||
|
||||
--------------------------------------------
|
||||
|
||||
- Open CMD as Admin, and enter the following command:
|
||||
|
||||
Dism /online /Cleanup-Image /RestoreHealth
|
||||
|
||||
- After its done, reboot the system and Open CMD as Admin, and enter the following command:
|
||||
|
||||
sfc.exe /scannow
|
||||
|
||||
- After it's done, reboot the system and run the activation script, and if unsuccessful,
|
||||
open CMD as administrator again, and enter the following command:
|
||||
|
||||
slmgr.vbs /rearm
|
||||
|
||||
- Reboot the system (important) and run the activation script, and if unsuccessful,
|
||||
You may try to rebuild licensing Tokens.dat as suggested in https://support.microsoft.com/en-us/help/2736303
|
||||
(this will require to repair Office afterwards.)
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
try cleaning the clipup using the following commands, it will reset all the HWID/KMS38 installed
|
||||
licences in the current system installation. open CMD as administrator again, and enter the
|
||||
following commands one by one:
|
||||
|
||||
net stop ClipSVC
|
||||
rundll32 clipc.dll,ClipCleanUpState
|
||||
|
||||
- Reboot the system (important) and run the activation script, and if unsuccessful, it may be
|
||||
time to start over from the very beginning and do a clean install of windows :D
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- Some machines are not able to generate GenuineTicket.xml file using gatherosstate.exe
|
||||
The reason is unknown (to me). Please contact me if it happens to you.
|
||||
|
||||
=========================================================================================================
|
||||
Credits:
|
||||
=========================================================================================================
|
||||
|
||||
@mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade.
|
||||
and Created various methods for HWID/KMS38 Activation
|
||||
*Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
@vyvojar Original slshim (slc.dll)
|
||||
https://github.com/vyvojar/slshim/releases
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
HWID/KMS38 methods Suggestions and improvements:-
|
||||
|
||||
@sponpa New ideas for the HWID/KM38 Generation
|
||||
https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257
|
||||
|
||||
@leitek8 Improvements for the slc.dll
|
||||
https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
Kind Help:-
|
||||
|
||||
Thanks for having my back and answering all of my queries. (In no particular order)
|
||||
|
||||
@AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
|
||||
@BorrowedWifi for providing support in fixing English grammar errors in the Read Me.
|
||||
@Chibi ANUBIS and @smashed for testing scripts for ARM64 system.
|
||||
|
||||
Special thanks to @abbodi1406 for providing the great help.
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
This script is a part of 'Microsoft Activation Scripts' project.
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only
|
||||
manage batch script tool which is based on the above mentioned original co-authors activation methods.
|
||||
|
||||
=========================================================================================================
|
File diff suppressed because it is too large
Load Diff
@ -1,16 +0,0 @@
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe Virus Total = 0/66
|
||||
39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe Virus Total = 1/66
|
||||
|
||||
Virus Total Report Date: 12-11-2019
|
||||
|
||||
These files are official Microsoft files and in this script, these are used in
|
||||
cleaning office license in C2R Retail office to VL conversion process.
|
||||
|
||||
The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab
|
||||
You can get the original file here https://s.put.re/WFuXpyWA.zip
|
||||
|
||||
====================================================================================================
|
Binary file not shown.
Binary file not shown.
@ -1,652 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:: =======================================================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: =======================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
set Unattended=
|
||||
set _args=
|
||||
set _elev=
|
||||
set RenTask=
|
||||
set RenActTask=
|
||||
set DeskMenu=
|
||||
set _SkipWinAct=
|
||||
set _end=
|
||||
set "_arg1=%~1"
|
||||
if not defined _arg1 goto :NoProgArgs
|
||||
set "_args=%~1"
|
||||
set "_arg2=%~2"
|
||||
set "_arg3=%~3"
|
||||
if defined _arg2 set "_args=%~1 %~2"
|
||||
if defined _arg3 set "_args=%~1 %~2 %~3"
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
if /i "%%A"=="/swa" set _SkipWinAct=1
|
||||
if /i "%%A"=="/rt" set RenTask=1&set Unattended=1
|
||||
if /i "%%A"=="/rat" set RenActTask=1&set Unattended=1
|
||||
if /i "%%A"=="/dcm" set DeskMenu=1&set Unattended=1)
|
||||
:NoProgArgs
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell -nop -ep bypass -c"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "EchoRed=%_psc% write-host -back Black -fore Red"
|
||||
set "EchoGreen=%_psc% write-host -back Black -fore Green"
|
||||
set "EchoYellow=%_psc% write-host -back Black -fore DarkYellow"
|
||||
set "ELine=echo: & %EchoRed% ==== ERROR ==== &echo:"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
set _end=1
|
||||
goto Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 7600 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 7/8/8.1/10 and their Server equivalent.
|
||||
set _end=1
|
||||
goto Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :Passed
|
||||
) || (
|
||||
if defined _elev goto :E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
if defined _args set _PSarg="""%~f0""" -el """%_args%"""
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
set _end=1
|
||||
goto Done
|
||||
|
||||
:Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
:: Written by @abbodi1406
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if not exist "!_work!\Activate.cmd" (
|
||||
%ELine%
|
||||
echo File [Activate.cmd] does not exist in current folder..
|
||||
echo It's required for the Task Creation.
|
||||
set _end=1
|
||||
goto Done
|
||||
)
|
||||
|
||||
call :check cleanosppx64.exe cleanosppx86.exe
|
||||
if defined _miss set _end=1&goto Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set "_dest=%ProgramData%\Online_KMS_Activation"
|
||||
set "key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks"
|
||||
|
||||
:ActivationRenewal
|
||||
|
||||
cls
|
||||
title Online KMS Activation Renewal
|
||||
mode con cols=98 lines=30
|
||||
set ActTask=
|
||||
set error_=
|
||||
set DelDeskCont=
|
||||
set error_1=
|
||||
|
||||
if defined RenTask goto:Task
|
||||
if defined RenActTask set ActTask=1&goto:Task
|
||||
if defined DeskMenu goto:ContextMenu
|
||||
echo:
|
||||
echo:
|
||||
echo:
|
||||
echo You can apply the option [either 1 or 2] and [3].
|
||||
echo ______________________________________________________
|
||||
echo ^| ^|
|
||||
echo ^| Auto Renewal via Task Scheduler ^|
|
||||
echo ^| ^|
|
||||
echo ^| [1] Create Renewal Task ^|
|
||||
echo ^| ^|
|
||||
echo ^| [2] Create Renewal and Activation Task ^|
|
||||
echo ^|______________________________________________________^|
|
||||
echo ^| ^|
|
||||
echo ^| Manual Renewal via Desktop Context Menu ^|
|
||||
echo ^| ^|
|
||||
echo ^| [3] Add Desktop Context Menu ^|
|
||||
echo ^|______________________________________________________^|
|
||||
echo ^| ^|
|
||||
echo ^| [4] Exit ^|
|
||||
echo ^| ^|
|
||||
echo ^|______________________________________________________^|
|
||||
echo:
|
||||
choice /C:1234 /N /M ". Enter Your Choice [1,2,3,4] : "
|
||||
|
||||
if errorlevel 4 exit /b
|
||||
if errorlevel 3 goto:ContextMenu
|
||||
if errorlevel 2 set ActTask=1&goto:Task
|
||||
if errorlevel 1 goto:Task
|
||||
|
||||
:======================================================================================================================================================
|
||||
|
||||
:Task
|
||||
|
||||
cls
|
||||
if defined ActTask (
|
||||
title Create Renewal And Activation Tasks
|
||||
) else (
|
||||
title Create Renewal Task
|
||||
)
|
||||
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul%
|
||||
)
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul%
|
||||
)
|
||||
If exist "%_dest%\" (
|
||||
@RD /s /q "%_dest%\" %nul%
|
||||
)
|
||||
If exist "%windir%\Online_KMS_Activation_Script\" (
|
||||
@RD /s /q "%windir%\Online_KMS_Activation_Script\" %nul%
|
||||
)
|
||||
If exist "%ProgramData%\Online_KMS_Activation.cmd" (
|
||||
Reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul%
|
||||
del /f /q "%ProgramData%\Online_KMS_Activation.cmd" %nul%
|
||||
set DelDeskCont=1
|
||||
)
|
||||
|
||||
md "%_dest%\BIN\" %nul%
|
||||
|
||||
set "_temp=%SystemRoot%\Temp\_KMS_Task_Work"
|
||||
if exist "%_temp%\" @RD /S /Q "%_temp%\" %nul%
|
||||
md "%_temp%\" %nul%
|
||||
|
||||
call :Export renewal "%_temp%\Renewal.xml" Unicode
|
||||
if defined ActTask (call :Export run_once "%_temp%\Run_Once.xml" Unicode)
|
||||
|
||||
call :Export info "%_dest%\Info.txt" ASCII
|
||||
|
||||
copy /y /b "!_work!\BIN\cleanosppx64.exe" "%_dest%\BIN\cleanosppx64.exe" %nul%
|
||||
copy /y /b "!_work!\BIN\cleanosppx86.exe" "%_dest%\BIN\cleanosppx86.exe" %nul%
|
||||
|
||||
cd /d "!_work!"
|
||||
|
||||
if defined _SkipWinAct (
|
||||
%nul% %_psc% "(gc Activate.cmd) -replace 'set ActWindows=1', 'set ActWindows=0' | Out-File -encoding ASCII "%_dest%\Activate.cmd"" || (set error_=1)
|
||||
) else (
|
||||
copy /y /b "!_work!\Activate.cmd" "%_dest%\Activate.cmd" %nul%
|
||||
)
|
||||
schtasks /create /tn "Online_KMS_Activation_Script-Renewal" /ru "SYSTEM" /xml "%_temp%\Renewal.xml" %nul%
|
||||
if defined ActTask (schtasks /create /tn "Online_KMS_Activation_Script-Run_Once" /ru "SYSTEM" /xml "%_temp%\Run_Once.xml" %nul%)
|
||||
|
||||
if exist "%_temp%\" @RD /S /Q "%_temp%\" %nul%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul || (set error_=1)
|
||||
if defined ActTask reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul || (set error_=1)
|
||||
|
||||
If not exist "%_dest%\Activate.cmd" (set error_=1)
|
||||
If not exist "%_dest%\Info.txt" (set error_=1)
|
||||
If not exist "%_dest%\BIN\cleanosppx64.exe" (set error_=1)
|
||||
If not exist "%_dest%\BIN\cleanosppx86.exe" (set error_=1)
|
||||
|
||||
if defined error_ (
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul%
|
||||
)
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul%
|
||||
)
|
||||
reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul%
|
||||
If exist "%_dest%\" (
|
||||
@RD /s /q "%_dest%\" %nul%
|
||||
)
|
||||
echo _________________________________________________________________
|
||||
echo:
|
||||
%ELine%
|
||||
echo Run the Online KMS Complete Uninstall script and then try again.
|
||||
echo _________________________________________________________________
|
||||
) else (
|
||||
echo:
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
if defined DelDeskCont (
|
||||
%EchoYellow% Previous desktop context menu entry for Online KMS Activation is deleted.
|
||||
echo:
|
||||
)
|
||||
if defined _SkipWinAct (
|
||||
%EchoYellow% %_dest%\Activate.cmd is set to skip Windows Activation.
|
||||
echo:
|
||||
)
|
||||
|
||||
echo Files created:
|
||||
echo %_dest%\BIN\cleanosppx64.exe
|
||||
echo %_dest%\BIN\cleanosppx86.exe
|
||||
echo %_dest%\Activate.cmd
|
||||
echo %_dest%\Info.txt
|
||||
echo:
|
||||
echo Scheduled Tasks created:
|
||||
echo \Online_KMS_Activation_Script-Renewal
|
||||
if defined ActTask (echo \Online_KMS_Activation_Script-Run_Once)
|
||||
echo:
|
||||
echo It's recommended to set exclusion for the following file in your Antivirus Program.
|
||||
echo:
|
||||
echo %_dest%\Activate.cmd
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
if defined ActTask (
|
||||
%EchoGreen% Online KMS Activation - Renewal and Activation Tasks are successfully created.
|
||||
) else (
|
||||
%EchoGreen% Online KMS Activation - Renewal Task is successfully created.
|
||||
)
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
)
|
||||
|
||||
goto Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:ContextMenu
|
||||
|
||||
cls
|
||||
title Add Desktop Context Menu
|
||||
|
||||
If exist "%ProgramData%\Online_KMS_Activation.cmd" (
|
||||
del /f /q "%ProgramData%\Online_KMS_Activation.cmd" %nul%
|
||||
set DelDeskCont=1
|
||||
)
|
||||
|
||||
reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul%
|
||||
|
||||
if exist "%_dest%\BIN\" (
|
||||
@RD /s /q "%_dest%\BIN\" %nul%
|
||||
)
|
||||
|
||||
md "%_dest%\BIN\" %nul%
|
||||
copy /y /b "!_work!\BIN\cleanosppx64.exe" "%_dest%\BIN\cleanosppx64.exe" %nul%
|
||||
copy /y /b "!_work!\BIN\cleanosppx86.exe" "%_dest%\BIN\cleanosppx86.exe" %nul%
|
||||
|
||||
if exist "%_dest%\Activate.cmd" (
|
||||
del /f /q "%_dest%\Activate.cmd" %nul%
|
||||
)
|
||||
|
||||
cd /d "!_work!"
|
||||
|
||||
if defined _SkipWinAct (
|
||||
%nul% %_psc% "(gc Activate.cmd) -replace 'set ActWindows=1', 'set ActWindows=0' | Out-File -encoding ASCII "%_dest%\Activate.cmd"" || (set error_=1)
|
||||
) else (
|
||||
copy /y /b "!_work!\Activate.cmd" "%_dest%\Activate.cmd" %nul%
|
||||
)
|
||||
|
||||
if exist "%_dest%\Info.txt" (
|
||||
del /f /q "%_dest%\Info.txt" %nul%
|
||||
)
|
||||
|
||||
call :Export info "%_dest%\Info.txt" ASCII
|
||||
|
||||
reg add "HKCR\DesktopBackground\shell\Activate Windows - Office" /v "Icon" /t REG_SZ /d "%SystemRoot%%\System32\shell32.dll,71" /f >nul 2>&1 || (set error_1=1)
|
||||
reg add "HKCR\DesktopBackground\shell\Activate Windows - Office\command" /ve /d "%_dest%\Activate.cmd" /f %nul% || (set error_1=1)
|
||||
|
||||
If not exist "%_dest%\Activate.cmd" (set error_=1)
|
||||
If not exist "%_dest%\Info.txt" (set error_=1)
|
||||
If not exist "%_dest%\BIN\cleanosppx64.exe" (set error_=1)
|
||||
If not exist "%_dest%\BIN\cleanosppx86.exe" (set error_=1)
|
||||
|
||||
reg query "HKCR\DesktopBackground\shell\Activate Windows - Office" %nul% || (set error_1=1)
|
||||
|
||||
if defined error_1 (
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul%
|
||||
)
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul%
|
||||
)
|
||||
reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul%
|
||||
If exist "%_dest%\" (
|
||||
@RD /s /q "%_dest%\" %nul%
|
||||
)
|
||||
echo _________________________________________________________________
|
||||
echo:
|
||||
%ELine%
|
||||
echo Run the Online KMS Complete Uninstall script and then try again.
|
||||
echo _________________________________________________________________
|
||||
) else (
|
||||
echo:
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
if defined DelDeskCont (
|
||||
%EchoYellow% Previous desktop context menu entry for Online KMS Activation is deleted.
|
||||
echo:
|
||||
)
|
||||
if defined _SkipWinAct (
|
||||
%EchoYellow% %_dest%\Activate.cmd is set to skip Windows Activation.
|
||||
echo:
|
||||
)
|
||||
|
||||
echo Files created:
|
||||
echo %_dest%\BIN\cleanosppx64.exe
|
||||
echo %_dest%\BIN\cleanosppx86.exe
|
||||
echo %_dest%\Activate.cmd
|
||||
echo %_dest%\Info.txt
|
||||
echo:
|
||||
echo Registry entry added:
|
||||
echo HKCR\DesktopBackground\shell\Activate Windows - Office
|
||||
echo HKCR\DesktopBackground\shell\Activate Windows - Office\command
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
%EchoGreen% Desktop context menu entry for Online KMS Activation is successfully created.
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Done
|
||||
echo:
|
||||
if defined Unattended (
|
||||
echo Exiting in 3 seconds...
|
||||
if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3)
|
||||
exit /b
|
||||
)
|
||||
if defined _end (
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
) else (
|
||||
echo Press any key to go back...
|
||||
pause >nul
|
||||
goto ActivationRenewal
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:info:
|
||||
====================================================================================================
|
||||
Online KMS Activation:
|
||||
====================================================================================================
|
||||
|
||||
The use of this script is to activate / renew your Windows /Server /Office license
|
||||
using online KMS.
|
||||
|
||||
- Scheduled task name (If Renewal Task is created) (Weekly).
|
||||
\Online_KMS_Activation_Script-Renewal
|
||||
|
||||
- Scheduled task name (If Activation Task is created).
|
||||
\Online_KMS_Activation_Script-Run_Once
|
||||
|
||||
The scheduled task runs only if the system is connected to the Internet.
|
||||
Activation Task will run on the system login and after successful activation, this task will
|
||||
delete itself.
|
||||
|
||||
- If system preactivation is done via HWID + Online KMS, and HWID was applied but was not
|
||||
successful due to lack of internet at the time of installation of Windows, in that case,
|
||||
Online KMS script will be set to skip Windows activation.
|
||||
|
||||
- Registry entry name and location (If desktop context menu is created).
|
||||
HKCR\DesktopBackground\shell\Activate Windows - Office
|
||||
|
||||
For complete script and more info, browse the script homepage.
|
||||
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe Virus Total = 0/66
|
||||
39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe Virus Total = 1/66
|
||||
|
||||
Virus Total Report Date: 12-11-2019
|
||||
|
||||
These files are official Microsoft files and in this script, these are used in
|
||||
cleaning office license in C2R Retail office to VL conversion process.
|
||||
|
||||
The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab
|
||||
You can get the original file here https://s.put.re/WFuXpyWA.zip
|
||||
|
||||
====================================================================================================
|
||||
|
||||
Online KMS Activation script is just a fork of @abbodi1406's KMS_VL_ALL Project.
|
||||
KMS_VL_ALL homepage: https://forums.mydigitallife.net/posts/838808
|
||||
|
||||
This fork was made to avoid having any KMS binary files and system can be activated using
|
||||
some manual commands or transparent batch script files.
|
||||
|
||||
Online KMS Activation script is a part of 'Microsoft Activation Scripts'
|
||||
Maintained by @WindowsAddict
|
||||
Homepage: https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
|
||||
====================================================================================================
|
||||
:info:
|
||||
|
||||
:renewal:
|
||||
<?xml version="1.0" encoding="UTF-16"?>
|
||||
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
|
||||
<RegistrationInfo>
|
||||
<Source>Microsoft Corporation</Source>
|
||||
<Date>1999-01-01T12:00:00.34375</Date>
|
||||
<Author>RPO/WindowsAddict</Author>
|
||||
<Version>1.0</Version>
|
||||
<Description>Online_KMS_Activation_Script-Renewal - Weekly Activation Renewal Task</Description>
|
||||
<URI>\Online_KMS_Activation_Script-Renewal</URI>
|
||||
<SecurityDescriptor>D:P(A;;FA;;;SY)(A;;FA;;;BA)(A;;FRFX;;;LS)(A;;FRFW;;;S-1-5-80-123231216-2592883651-3715271367-3753151631-4175906628)(A;;FR;;;S-1-5-4)</SecurityDescriptor>
|
||||
</RegistrationInfo>
|
||||
<Triggers>
|
||||
<CalendarTrigger>
|
||||
<StartBoundary>1999-01-01T12:00:00</StartBoundary>
|
||||
<Enabled>true</Enabled>
|
||||
<ScheduleByWeek>
|
||||
<DaysOfWeek>
|
||||
<Sunday />
|
||||
</DaysOfWeek>
|
||||
<WeeksInterval>1</WeeksInterval>
|
||||
</ScheduleByWeek>
|
||||
</CalendarTrigger>
|
||||
</Triggers>
|
||||
<Principals>
|
||||
<Principal id="LocalSystem">
|
||||
<UserId>S-1-5-18</UserId>
|
||||
<RunLevel>HighestAvailable</RunLevel>
|
||||
</Principal>
|
||||
</Principals>
|
||||
<Settings>
|
||||
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
|
||||
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
|
||||
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
|
||||
<AllowHardTerminate>true</AllowHardTerminate>
|
||||
<StartWhenAvailable>true</StartWhenAvailable>
|
||||
<RunOnlyIfNetworkAvailable>true</RunOnlyIfNetworkAvailable>
|
||||
<IdleSettings>
|
||||
<StopOnIdleEnd>false</StopOnIdleEnd>
|
||||
<RestartOnIdle>false</RestartOnIdle>
|
||||
</IdleSettings>
|
||||
<AllowStartOnDemand>true</AllowStartOnDemand>
|
||||
<Enabled>true</Enabled>
|
||||
<Hidden>true</Hidden>
|
||||
<RunOnlyIfIdle>false</RunOnlyIfIdle>
|
||||
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
|
||||
<UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
|
||||
<WakeToRun>false</WakeToRun>
|
||||
<ExecutionTimeLimit>PT10M</ExecutionTimeLimit>
|
||||
<Priority>7</Priority>
|
||||
<RestartOnFailure>
|
||||
<Interval>PT2M</Interval>
|
||||
<Count>3</Count>
|
||||
</RestartOnFailure>
|
||||
</Settings>
|
||||
<Actions Context="LocalSystem">
|
||||
<Exec>
|
||||
<Command>%ProgramData%\Online_KMS_Activation\Activate.cmd</Command>
|
||||
<Arguments>Task</Arguments>
|
||||
</Exec>
|
||||
</Actions>
|
||||
</Task>
|
||||
:renewal:
|
||||
|
||||
:run_once:
|
||||
<?xml version="1.0" encoding="UTF-16"?>
|
||||
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
|
||||
<RegistrationInfo>
|
||||
<Source>Microsoft Corporation</Source>
|
||||
<Date>1999-01-01T12:00:00.34375</Date>
|
||||
<Author>RPO/WindowsAddict</Author>
|
||||
<Version>1.0</Version>
|
||||
<Description>Online_KMS_Activation_Script-Run_Once - Run and Delete itself on first Internet Contact</Description>
|
||||
<URI>\Online_KMS_Activation_Script-Run_Once</URI>
|
||||
<SecurityDescriptor>D:P(A;;FA;;;SY)(A;;FA;;;BA)(A;;FRFX;;;LS)(A;;FRFW;;;S-1-5-80-123231216-2592883651-3715271367-3753151631-4175906628)(A;;FR;;;S-1-5-4)</SecurityDescriptor>
|
||||
</RegistrationInfo>
|
||||
<Triggers>
|
||||
<LogonTrigger>
|
||||
<Enabled>true</Enabled>
|
||||
</LogonTrigger>
|
||||
</Triggers>
|
||||
<Principals>
|
||||
<Principal id="LocalSystem">
|
||||
<UserId>S-1-5-18</UserId>
|
||||
<RunLevel>HighestAvailable</RunLevel>
|
||||
</Principal>
|
||||
</Principals>
|
||||
<Settings>
|
||||
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
|
||||
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
|
||||
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
|
||||
<AllowHardTerminate>true</AllowHardTerminate>
|
||||
<StartWhenAvailable>true</StartWhenAvailable>
|
||||
<RunOnlyIfNetworkAvailable>true</RunOnlyIfNetworkAvailable>
|
||||
<IdleSettings>
|
||||
<StopOnIdleEnd>false</StopOnIdleEnd>
|
||||
<RestartOnIdle>false</RestartOnIdle>
|
||||
</IdleSettings>
|
||||
<AllowStartOnDemand>true</AllowStartOnDemand>
|
||||
<Enabled>true</Enabled>
|
||||
<Hidden>true</Hidden>
|
||||
<RunOnlyIfIdle>false</RunOnlyIfIdle>
|
||||
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
|
||||
<UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
|
||||
<WakeToRun>false</WakeToRun>
|
||||
<ExecutionTimeLimit>PT10M</ExecutionTimeLimit>
|
||||
<Priority>7</Priority>
|
||||
<RestartOnFailure>
|
||||
<Interval>PT2M</Interval>
|
||||
<Count>3</Count>
|
||||
</RestartOnFailure>
|
||||
</Settings>
|
||||
<Actions Context="LocalSystem">
|
||||
<Exec>
|
||||
<Command>%ProgramData%\Online_KMS_Activation\Activate.cmd</Command>
|
||||
<Arguments>Task</Arguments>
|
||||
</Exec>
|
||||
</Actions>
|
||||
</Task>
|
||||
:run_once:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Echo all the missing files.
|
||||
:: Written by @abbodi1406 (MDL)
|
||||
|
||||
:check
|
||||
|
||||
for %%# in (%1 %2) do (if not exist "!_work!\BIN\%%#" (if defined _miss (set "_miss=!_miss! %%#") else (set "_miss=%%#")))
|
||||
if defined _miss (
|
||||
%ELine%
|
||||
echo Following required file^(s^) is missing in 'BIN' folder. Aborting...
|
||||
echo:
|
||||
echo !_miss!
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Extract the text from batch script without character and file encoding issue
|
||||
:: Thanks to @abbodi1406
|
||||
|
||||
:Export
|
||||
%nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::%~3);" &exit/b
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,263 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
:: For unattended mode, run the script with /u parameter.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:: =======================================================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: =======================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
title Online KMS Complete Uninstall
|
||||
set Unattended=
|
||||
set _args=
|
||||
set _elev=
|
||||
set "_arg1=%~1"
|
||||
if not defined _arg1 goto :NoProgArgs
|
||||
set "_args=%~1"
|
||||
set "_arg2=%~2"
|
||||
if defined _arg2 set "_args=%~1 %~2"
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
if /i "%%A"=="/u" set Unattended=1)
|
||||
:NoProgArgs
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell -nop -ep bypass -c"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "EchoRed=%_psc% write-host -back Black -fore Red"
|
||||
set "EchoGreen=%_psc% write-host -back Black -fore Green"
|
||||
set "ELine=echo: & %EchoRed% ==== ERROR ==== &echo:"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto UN_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 7600 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 7/8/8.1/10 and their Server equivalent.
|
||||
goto UN_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :Passed
|
||||
) || (
|
||||
if defined _elev goto :E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
if defined _args set _PSarg="""%~f0""" -el """%_args%"""
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto UN_Done
|
||||
|
||||
:Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode con: cols=98 lines=30
|
||||
setlocal EnableDelayedExpansion
|
||||
set "key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks"
|
||||
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (
|
||||
echo Deleting [Task] Online_KMS_Activation_Script-Renewal
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul%
|
||||
)
|
||||
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (
|
||||
echo Deleting [Task] Online_KMS_Activation_Script-Run_Once
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul%
|
||||
)
|
||||
|
||||
If exist "%windir%\Online_KMS_Activation_Script\" (
|
||||
echo Deleting [Folder] %windir%\Online_KMS_Activation_Script\
|
||||
@RD /s /q "%windir%\Online_KMS_Activation_Script\" %nul%
|
||||
)
|
||||
|
||||
If exist "%ProgramData%\Online_KMS_Activation\" (
|
||||
echo Deleting [Folder] %ProgramData%\Online_KMS_Activation\
|
||||
@RD /s /q "%ProgramData%\Online_KMS_Activation\" %nul%
|
||||
)
|
||||
|
||||
if exist "%ProgramData%\Online_KMS_Activation.cmd" (
|
||||
echo Deleting [File] %ProgramData%\Online_KMS_Activation.cmd
|
||||
del /f /q "%ProgramData%\Online_KMS_Activation.cmd" %nul%
|
||||
)
|
||||
|
||||
reg query "HKCR\DesktopBackground\shell\Activate Windows - Office" %nul% && (
|
||||
echo Deleting [Context Menu Registry] HKCR\DesktopBackground\shell\Activate Windows - Office
|
||||
Reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul%
|
||||
)
|
||||
|
||||
echo:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Clear-KMS-Cache.cmd
|
||||
:: https://forums.mydigitallife.net/posts/1511883
|
||||
:: Written by @abbodi1406 (MDL)
|
||||
|
||||
set "SysPath=%Windir%\System32"
|
||||
if exist "%Windir%\Sysnative\reg.exe" (set "SysPath=%Windir%\Sysnative")
|
||||
set "Path=%SysPath%;%Windir%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\"
|
||||
set "OSPP=SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform"
|
||||
set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
|
||||
wmic path SoftwareLicensingProduct where (Description like '%%KMSCLIENT%%') get Name 2>nul | findstr /i Windows 1>nul && (set SppHook=1) || (set SppHook=0)
|
||||
wmic path SoftwareLicensingProduct where (Description like '%%KMSCLIENT%%') get Name 2>nul | findstr /i Office 1>nul && (set SppHook=1)
|
||||
wmic path OfficeSoftwareProtectionService get Version >nul 2>&1 && (set OsppHook=1) || (set OsppHook=0)
|
||||
if %SppHook% NEQ 0 call :UN_cKMS SoftwareLicensingProduct SoftwareLicensingService SPP
|
||||
if %OsppHook% NEQ 0 call :UN_cKMS OfficeSoftwareProtectionProduct OfficeSoftwareProtectionService OSPP
|
||||
call :UN_cREG >nul 2>&1
|
||||
echo:
|
||||
goto UN_Verify
|
||||
|
||||
:UN_cKMS
|
||||
echo Clearing %3 KMS Cache...
|
||||
set spp=%1
|
||||
set sps=%2
|
||||
for /f "tokens=2 delims==" %%G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%') get ID /VALUE" 2^>nul') do (set app=%%G&call :UN_cAPP)
|
||||
for /f "tokens=2 delims==" %%A in ('"wmic path %sps% get Version /VALUE"') do set ver=%%A
|
||||
wmic path %sps% where version='%ver%' call ClearKeyManagementServiceMachine >nul 2>&1
|
||||
wmic path %sps% where version='%ver%' call ClearKeyManagementServicePort >nul 2>&1
|
||||
wmic path %sps% where version='%ver%' call DisableKeyManagementServiceDnsPublishing 1 >nul 2>&1
|
||||
wmic path %sps% where version='%ver%' call DisableKeyManagementServiceHostCaching 1 >nul 2>&1
|
||||
goto :eof
|
||||
|
||||
:UN_cAPP
|
||||
wmic path %spp% where ID='%app%' call ClearKeyManagementServiceMachine >nul 2>&1
|
||||
wmic path %spp% where ID='%app%' call ClearKeyManagementServicePort >nul 2>&1
|
||||
goto :eof
|
||||
|
||||
:UN_cREG
|
||||
reg delete "HKLM\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f
|
||||
reg delete "HKLM\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f
|
||||
reg delete "HKLM\%SPPk%" /f /v KeyManagementServiceName
|
||||
reg delete "HKLM\%SPPk%" /f /v KeyManagementServicePort
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f
|
||||
reg delete "HKLM\%OSPP%\59a52881-a989-479d-af46-f275c6370663" /f
|
||||
reg delete "HKLM\%OSPP%\0ff1ce15-a989-479d-af46-f275c6370663" /f
|
||||
reg delete "HKLM\%OSPP%" /f /v KeyManagementServiceName
|
||||
reg delete "HKLM\%OSPP%" /f /v KeyManagementServicePort
|
||||
if %OsppHook% NEQ 1 (
|
||||
reg delete "HKLM\%OSPP%" /f
|
||||
reg delete "HKU\S-1-5-20\%OSPP%" /f
|
||||
)
|
||||
goto :eof
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:UN_Verify
|
||||
|
||||
set error_=
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (set error_=1)
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (set error_=1)
|
||||
If exist "%windir%\Online_KMS_Activation_Script\" (set error_=1)
|
||||
if exist "%ProgramData%\Online_KMS_Activation\" (set error_=1)
|
||||
|
||||
reg query "HKCR\DesktopBackground\shell\Activate Windows - Office" >nul 2>&1 && (set error_=1)
|
||||
if exist "%ProgramData%\Online_KMS_Activation.cmd" (set error_=1)
|
||||
|
||||
if defined error_ (
|
||||
echo ______________________________________
|
||||
%ELine%
|
||||
echo Try Again.
|
||||
echo ______________________________________
|
||||
) else (
|
||||
echo _________________________________________________________________
|
||||
echo:
|
||||
%EchoGreen% Online KMS Complete Uninstall is done successfully.
|
||||
echo _________________________________________________________________
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:UN_Done
|
||||
|
||||
echo:
|
||||
if defined Unattended (
|
||||
echo Exiting in 3 seconds...
|
||||
if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3)
|
||||
exit /b
|
||||
)
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,655 +0,0 @@
|
||||
====================================================================================================
|
||||
|
||||
Online KMS Activation script is just a fork of @abbodi1406's KMS_VL_ALL Project.
|
||||
KMS_VL_ALL homepage: https://forums.mydigitallife.net/posts/838808
|
||||
|
||||
This fork was made to avoid having any KMS binary files and system can be activated using
|
||||
some manual commands or transparent batch script files.
|
||||
|
||||
This script is a part of 'Microsoft Activation Scripts' project.
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
====================================================================================================
|
||||
Online KMS Activation:
|
||||
====================================================================================================
|
||||
|
||||
- This KMS script skips the activation of any permanently / KMS38-activated product.
|
||||
- This KMS script can activate both Retail and VL Windows / Server installation.
|
||||
- This KMS script can activate C2R Retail and VL Office, but not 2010/2013 MSI Retail Office.
|
||||
|
||||
----------------------
|
||||
- Activation Renewal
|
||||
----------------------
|
||||
|
||||
- KMS activates Windows / Server / Office for 180 Days. (For Core/ProWMC edition it is 30/45 Days)
|
||||
|
||||
- By design, using the KMS activation method, the system contacts the registered server every 7
|
||||
days, and if contacted successfully it will automatically renew and reset the activation for the
|
||||
the full period of 180 days again, starting from the day of successful contact.
|
||||
If the system cannot contact the server, it will be deactivated after 180 days and it will
|
||||
remain deactivated until contact can be restored.
|
||||
|
||||
- The KMS servers I've added have been working steadily for two to three years, but there can be
|
||||
no guarantee that they will remain online indefinitely. If a registered server goes
|
||||
down, you will need to create a renewal task, or do a manual renewal, for the lifetime of the
|
||||
activation.
|
||||
|
||||
There are 3 ways you can renew the KMS server and as a result, renew the activation.
|
||||
|
||||
1- Activate.cmd
|
||||
|
||||
Run this file whenever the system needs activation. Depending upon the particular (never fully-knowable)
|
||||
circumstances, a successful activation may last for a period of a MINIMUM of 180 days,
|
||||
or a maximum of the full life of the machine it's running on, and you may never need to run it again.
|
||||
|
||||
2- Manual Renewal via Desktop Context Menu
|
||||
|
||||
This method is exactly same as above but here we put the following files in,
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
C:\ProgramData\Online_KMS_Activation\Info.txt
|
||||
|
||||
and create registry entries in,
|
||||
HKCR\DesktopBackground\shell\Activate Windows - Office
|
||||
HKCR\DesktopBackground\shell\Activate Windows - Office\command
|
||||
|
||||
It creates an easy to reach Desktop context menu for the manual activation renewal.
|
||||
|
||||
3- Automatic Renewal via Task Scheduler
|
||||
|
||||
This method put the following files in,
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
C:\ProgramData\Online_KMS_Activation\Info.txt
|
||||
|
||||
And creates a scheduled task to run the script every 7 days.
|
||||
|
||||
The scheduled task runs only if the system is connected to the Internet.
|
||||
With this method, the Activation task can also be created which will run on the system login
|
||||
and after successful activation, this task will delete itself.
|
||||
|
||||
IMPORTANT NOTE - Some sensitive AV's may flag the Automatic Renewal via the Task, and not
|
||||
because of KMS, because for them it's suspicious to run long scripts in the background as Tasks.
|
||||
|
||||
It's recommended to set exclusions in Antivirus for
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
or
|
||||
use the 1st or 2nd option for activation renewal.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
----------------------
|
||||
- Remarks
|
||||
----------------------
|
||||
|
||||
- This Online KMS Activation provides immediate global activation for Windows 8.1 and Windows 10, which
|
||||
means that in the following three scenarios, the system will self-activate when connected to the
|
||||
internet, and also means that users will not need to manually run the activation script again.
|
||||
|
||||
Scenario 1: Subsequent installation or alteration of any 2013, 2016, or 2019 Volume License
|
||||
(VL) Office product.
|
||||
Scenario 2: Windows edition change (with GVLK).
|
||||
Scenario 3: Date change, system hardware change, etc.
|
||||
|
||||
- What is left in the system in the activation process?
|
||||
- Activate.cmd
|
||||
After activation, it leaves only the KMS Server name in the registry, which helps you to get the
|
||||
above-mentioned global activation feature whereby the system auto-renews the activations,
|
||||
so it's a good thing if you leave the server name in the registry.
|
||||
However, you can clear this registered KMS Server name upon activation, and do that, open
|
||||
the script with notepad and set Clear-KMS-Cache to 1 from 0.
|
||||
What is left in the system when Renewal methods are installed, has been mentioned.
|
||||
|
||||
- This script includes the most-stable KMS servers (6+) list. The server selection process is
|
||||
fully automatic. You don't need to worry about the server's availability.
|
||||
|
||||
- If your system date is incorrect (beyond 180 days) and you are offline, the system will be
|
||||
deactivated, but will automatically reactivate when you correct the system date.
|
||||
|
||||
- Why should you choose the Online KMS activation method over offline KMS?
|
||||
The main benefit of Online KMS activation is that it doesn't need any KMS binary file and system
|
||||
can be activated using some manual commands or transparent batch script files.
|
||||
So this is for those who don't like/have difficulties/trust issue in offline KMS because of its
|
||||
binary files and antivirus detections.
|
||||
|
||||
If you prefer offline KMS then checkout an open-source activator,
|
||||
@abbodi1406's KMS_VL_ALL https://forums.mydigitallife.net/posts/838808
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
--------------------------------------
|
||||
- Office C2R Retail to VL conversion
|
||||
--------------------------------------
|
||||
|
||||
This activation script will convert Office C2R Retail to Volume without needing separate tools.
|
||||
|
||||
- Supports: Office 365, Office 2019, Office 2016, Office 2013
|
||||
- Activated Retail products will be skipped from conversion
|
||||
this includes valid Office 365 subscriptions, or perpetual Office (MAK, OEM, MSDN, Retail..)
|
||||
- Current Office licenses will be cleaned up (unless retail-activated Office detected)
|
||||
then, proper Volume licenses will be installed based on the detected Product IDs
|
||||
- Office Mondo suite cover all products, if detected, only its licenses will be installed
|
||||
- Office 365 products will be converted with Mondo licenses by default
|
||||
also, corresponding Office 365 Retail Grace Key will be installed
|
||||
- Office 2016 products will be converted with corresponding Office 2019 licenses
|
||||
- Office Professional suite will be converted with Office 2019 ProPlus licenses
|
||||
- Office HomeBusiness/HomeStudent suites will be converted with Office 2019 Standard licenses
|
||||
- If Office 2019 RTM licenses are not detected, Office 2016 licenses will be used instead
|
||||
- Office 2013 products follow the same logic but handled separately
|
||||
- If main products SKUs are detected, single apps licenses will not be installed to avoid duplication
|
||||
|
||||
- SKUs:
|
||||
O365ProPlus, O365Business, O365SmallBusPrem, O365HomePrem, O365EduCloud
|
||||
ProPlus, Professional, Standard, HomeBusiness, HomeStudent, Visio, Project
|
||||
|
||||
* Apps:
|
||||
Access, Excel, InfoPath, Onenote, Outlook, PowerPoint, Publisher, SkypeForBusiness, Word,
|
||||
Groove (OneDrive for Business)
|
||||
|
||||
- O365ProPlus, O365Business, O365SmallBusPrem, ProPlus cover all apps
|
||||
Professional cover all apps except SkypeForBusiness
|
||||
Standard cover all apps except Access, SkypeForBusiness
|
||||
|
||||
## Notice
|
||||
|
||||
- On Windows 7, Office 2016/2019 licensing service require Universal C Runtime to work correctly
|
||||
- UCRT is available in the latest Monthly Rollup, or the separate update KB3118401
|
||||
- Additionally, Office programs themselves require recent Windows 7 updates to start properly
|
||||
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe Virus Total = 0/66
|
||||
39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe Virus Total = 1/66
|
||||
|
||||
Virus Total Report Date: 12-11-2019
|
||||
|
||||
These files are official Microsoft files and in this script, these are used in
|
||||
cleaning office license in C2R Retail office to VL conversion process.
|
||||
|
||||
The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab
|
||||
You can get the original file here https://s.put.re/WFuXpyWA.zip
|
||||
|
||||
====================================================================================================
|
||||
|
||||
How does it work?
|
||||
Is it safe?
|
||||
|
||||
https://pastebin.com/raw/7Xyaf15Z
|
||||
Mirror:
|
||||
https://textuploader.com/1dg8d/raw
|
||||
|
||||
====================================================================================================
|
||||
Products Compatibility:
|
||||
====================================================================================================
|
||||
|
||||
Supported Products: [Only Volume-capable]
|
||||
|
||||
Windows 8 / 8.1 / 10 (all official editions, except Windows 10 S)
|
||||
Windows 7 (Enterprise /N/E, Professional /N/E, Embedded Standard/POSReady/ThinPC)
|
||||
Windows Server 2008 R2 / 2012 / 2012 R2 / 2016 / 2019
|
||||
Office Volume 2010 / 2013 / 2016 / 2019
|
||||
|
||||
[Activation script will convert Office C2R Retail O365/2013/2016/2019 to Volume]
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Unsupported Products:
|
||||
|
||||
Office Retail [Office MSI Retail 2010/2013]
|
||||
Windows Editions which do not support KMS activation by design:
|
||||
Windows Evaluation Editions
|
||||
Windows 7 (Starter, HomeBasic, HomePremium, Ultimate)
|
||||
Windows 10 (Cloud "S", IoTEnterprise, IoTEnterpriseS, ProfessionalSingleLanguage... etc)
|
||||
Windows Server (Server Foundation, Storage Server, Home Server 2011... etc)
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
These editions are only KMS-activatable for 45 days at max:
|
||||
Windows 10 Home edition variants
|
||||
Windows 8.1 Core edition variants, Pro with Media Center, Pro Student
|
||||
|
||||
These editions are only KMS-activatable for 30 days at max:
|
||||
Windows 8 Core edition variants, Pro with Media Center
|
||||
|
||||
Notes:
|
||||
Supported Windows products do need volume conversion, only the GVLK (KMS key) is needed, which
|
||||
the script will install accordingly.
|
||||
KMS Activation works in all (MBR, GPT, UEFI, BIOS) systems.
|
||||
|
||||
====================================================================================================
|
||||
Switches in the Script:
|
||||
====================================================================================================
|
||||
|
||||
* Applies to MAS Separate Files version
|
||||
|
||||
- For unattended mode, run the scripts with /u parameter.
|
||||
|
||||
Activate.cmd /u
|
||||
Uninstall.cmd /u
|
||||
|
||||
To create Renewal Task in unattended mode,
|
||||
Renewal_Setup.cmd /rt
|
||||
|
||||
To create Renewal and Activation Task in unattended mode,
|
||||
Renewal_Setup.cmd /rat
|
||||
|
||||
To create desktop context menu in unattended mode,
|
||||
Renewal_Setup.cmd /dcm
|
||||
|
||||
To skip Windows activation in renewal script,
|
||||
Renewal_Setup.cmd /rat /swa
|
||||
or
|
||||
Renewal_Setup.cmd /dcm /swa
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
- Activate.cmd
|
||||
|
||||
- To run the script in Debug mode to find out the cause of errors in activation or just details,
|
||||
search "set _Debug=" and change the value from 0 to 1.
|
||||
|
||||
- To replace KMS38 activation with KMS activation, search "set SkipKMS38=" and change the value
|
||||
from 1 to 0.
|
||||
|
||||
- To skip Windows activation, search "set ActWindows=" and change the value from 1 to 0.
|
||||
- To skip Office activation, search "set ActOffice=" and change the value from 1 to 0.
|
||||
- This is not effective if Windows and/or Office installation is already Volume (GVLK installed)
|
||||
- In [Online KMS + HWID] $OEM$ preactivation, Windows KMS activation is turned off
|
||||
by default.
|
||||
|
||||
- To turn OFF auto conversion for Office C2R Retail to Volume, search "set AutoR2V=" and
|
||||
change the value from 1 to 0.
|
||||
|
||||
- To set the script to use only one specific KMS server address, search "set KMS_Server="
|
||||
paste the server address after the = sign.
|
||||
|
||||
- To clear the KMS cache, search "set Clear-KMS-Cache=" and change the value from 0 to 1.
|
||||
- Registered KMS server address (cache) enables the system to automatically renew the license
|
||||
(for next 180 days) every 7 days, as long as the server is online.
|
||||
- This process is the same as how the legal KMS works, so no security program will flag
|
||||
this behavior.
|
||||
- Changing this option here won't have any effect if manual (Desktop Context menu) and/or auto,
|
||||
renewal activation script is installed. [default (0)].
|
||||
- I recommend leaving this option as default (0).
|
||||
|
||||
====================================================================================================
|
||||
Manual Activation Process:
|
||||
====================================================================================================
|
||||
|
||||
- Prerequisite:
|
||||
|
||||
online Public KMS Server List:
|
||||
|
||||
kms.srv.crsoo.com
|
||||
kms.loli.beer
|
||||
kms8.MSGuides.com
|
||||
|
||||
kms9.MSGuides.com
|
||||
kms.zhuxiaole.org
|
||||
kms.lolico.moe
|
||||
kms.moeclub.org
|
||||
|
||||
Generic Volume License Key (GVLK):
|
||||
Thanks to @abbodi1406 for the Key collection.
|
||||
|
||||
GVLK Edition
|
||||
|
||||
Windows 10
|
||||
|
||||
TX9XD-98N7V-6WMQ6-BX7FG-H8Q99 Home
|
||||
3KHY7-WNT83-DGQKR-F7HPR-844BM Home N
|
||||
7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH Home Single Language
|
||||
PVMJN-6DFY6-9CCP6-7BKTT-D3WVR Home China
|
||||
W269N-WFGWX-YVC9B-4J6C9-T83GX Pro
|
||||
MH37W-N47XK-V7XM9-C7227-GCQG9 Pro N
|
||||
6TP4R-GNPTD-KYYHQ-7B7DP-J447Y Pro Education
|
||||
YVWGF-BXNMC-HTQYQ-CPQ99-66QFC Pro Education N
|
||||
NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J Pro Workstation
|
||||
9FNHH-K3HBT-3W4TD-6383H-6XYWF Pro Workstation N
|
||||
NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 Education
|
||||
2WH4N-8QGBV-H22JP-CT43Q-MDWWJ Education N
|
||||
NPPR9-FWDCX-D2C8J-H872K-2YT43 Enterprise
|
||||
DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4 Enterprise N
|
||||
YYVX9-NTFWV-6MDM3-9PT4T-4M68B Enterprise G
|
||||
44RPN-FTY23-9VTTB-MP9BX-T84FV Enterprise G N
|
||||
WNMTR-4C88C-JK8YV-HQ7T2-76DF9 Enterprise 2015 LTSB
|
||||
2F77B-TNFGY-69QQF-B8YKP-D69TJ Enterprise 2015 LTSB N
|
||||
DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ Enterprise 2016 LTSB
|
||||
QFFDN-GRT3P-VKWWX-X7T3R-8B639 Enterprise 2016 LTSB N
|
||||
M7XTQ-FN8P6-TTKYV-9D4CC-J462D Enterprise LTSC 2019
|
||||
92NFX-8DJQP-P6BBQ-THF9C-7CG2H Enterprise LTSC 2019 N
|
||||
CPWHC-NT2C7-VYW78-DHDB2-PG3GK Enterprise for Virtual Desktops
|
||||
7NBT4-WGBQX-MP4H7-QXFF8-YP3KX Remote Server
|
||||
NBTWJ-3DR69-3C4V8-C26MC-GQ9M6 Lean
|
||||
|
||||
Windows 8.1
|
||||
|
||||
M9Q9P-WNJJT-6PXPY-DWX8H-6XWKK Core
|
||||
7B9N3-D94CG-YTVHR-QBPX3-RJP64 Core N
|
||||
BB6NG-PQ82V-VRDPW-8XVD2-V8P66 Core Single Language
|
||||
NCTT7-2RGK8-WMHRF-RY7YQ-JTXG3 Core China
|
||||
XYTND-K6QKT-K2MRH-66RTM-43JKP Core ARM
|
||||
GCRJD-8NW9H-F2CDX-CCM8D-9D6T9 Pro
|
||||
HMCNV-VVBFX-7HMBH-CTY9B-B4FXY Pro N
|
||||
789NJ-TQK6T-6XTH8-J39CJ-J8D3P Pro with Media Center
|
||||
MHF9N-XY6XB-WVXMC-BTDCT-MKKG7 Enterprise
|
||||
TT4HM-HN7YT-62K67-RGRQJ-JFFXW Enterprise N
|
||||
NMMPB-38DD4-R2823-62W8D-VXKJB Embedded Industry Pro
|
||||
FNFKF-PWTVT-9RC8H-32HB2-JB34X Embedded Industry Enterprise
|
||||
VHXM3-NR6FT-RY6RT-CK882-KW2CJ Embedded Industry Automotive
|
||||
3PY8R-QHNP9-W7XQD-G6DPH-3J2C9 with Bing
|
||||
Q6HTR-N24GM-PMJFP-69CD8-2GXKR with Bing N
|
||||
KF37N-VDV38-GRRTV-XH8X6-6F3BB with Bing Single Language
|
||||
R962J-37N87-9VVK2-WJ74P-XTMHR with Bing China
|
||||
MX3RK-9HNGX-K3QKC-6PJ3F-W8D7B Pro for Students
|
||||
TNFGH-2R6PB-8XM3K-QYHX2-J4296 Pro for Students N
|
||||
|
||||
Windows 8
|
||||
|
||||
BN3D2-R7TKB-3YPBD-8DRP2-27GG4 Core
|
||||
8N2M2-HWPGY-7PGT9-HGDD8-GVGGY Core N
|
||||
2WN2H-YGCQR-KFX6K-CD6TF-84YXQ Core Single Language
|
||||
4K36P-JN4VD-GDC6V-KDT89-DYFKP Core China
|
||||
DXHJF-N9KQX-MFPVR-GHGQK-Y7RKV Core ARM
|
||||
NG4HW-VH26C-733KW-K6F98-J8CK4 Pro
|
||||
XCVCF-2NXM9-723PB-MHCB7-2RYQQ Pro N
|
||||
GNBB8-YVD74-QJHX6-27H4K-8QHDG Pro with Media Center
|
||||
32JNW-9KQ84-P47T8-D8GGY-CWCK7 Enterprise
|
||||
JMNMF-RHW7P-DMY6X-RF3DR-X2BQT Enterprise N
|
||||
RYXVT-BNQG7-VD29F-DBMRY-HT73M Embedded Industry Pro
|
||||
NKB3R-R2F8T-3XCDP-7Q2KW-XWYQ2 Embedded Industry Enterprise
|
||||
|
||||
Windows 7
|
||||
|
||||
FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4 Professional
|
||||
MRPKT-YTG23-K7D7T-X2JMM-QY7MG Professional N
|
||||
W82YF-2Q76Y-63HXB-FGJG9-GF7QX Professional E
|
||||
33PXH-7Y6KF-2VJC9-XBBR8-HVTHH Enterprise
|
||||
YDRBP-3D83W-TY26F-D46B2-XCKRJ Enterprise N
|
||||
C29WB-22CC8-VJ326-GHFJW-H9DH4 Enterprise E
|
||||
YBYF6-BHCR3-JPKRB-CDW7B-F9BK4 Embedded POSReady 7
|
||||
XGY72-BRBBT-FF8MH-2GG8H-W7KCW Embedded Standard
|
||||
73KQT-CD9G6-K7TQG-66MRP-CQ22C Embedded ThinPC
|
||||
|
||||
Windows Server 2019
|
||||
|
||||
N69G4-B89J2-4G8F4-WWYCC-J464C Standard
|
||||
WMDGN-G9PQG-XVVXX-R3X43-63DFG Datacenter
|
||||
WVDHN-86M7X-466P6-VHXV7-YY726 Essentials
|
||||
FDNH6-VW9RW-BXPJ7-4XTYG-239TB Azure Core
|
||||
N2KJX-J94YW-TQVFB-DG9YT-724CC Standard ACor
|
||||
6NMRW-2C8FM-D24W7-TQWMY-CWH2D Datacenter ACor
|
||||
GRFBW-QNDC4-6QBHG-CCK3B-2PR88 ServerARM64
|
||||
|
||||
Windows Server 2016
|
||||
|
||||
WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY Standard
|
||||
CB7KF-BWN84-R7R2Y-793K2-8XDDG Datacenter
|
||||
JCKRF-N37P4-C2D82-9YXRT-4M63B Essentials
|
||||
QN4C6-GBJD2-FB422-GHWJK-GJG2R Cloud Storage
|
||||
VP34G-4NPPG-79JTQ-864T4-R3MQX Azure Core
|
||||
PTXN8-JFHJM-4WC78-MPCBR-9W4KR Standard ACor
|
||||
2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG Datacenter ACor
|
||||
K9FYF-G6NCK-73M32-XMVPY-F9DRR ServerARM64
|
||||
|
||||
Windows Server 2012 R2
|
||||
|
||||
D2N9P-3P6X9-2R39C-7RTCD-MDVJX Standard
|
||||
W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9 Datacenter
|
||||
KNC87-3J2TX-XB4WP-VCPJV-M4FWM Essentials
|
||||
3NPTF-33KPT-GGBPR-YX76B-39KDD Cloud Storage
|
||||
|
||||
Windows Server 2012
|
||||
|
||||
XC9B7-NBPP2-83J2H-RHMBY-92BT4 Standard
|
||||
48HP8-DN98B-MYWDG-T2DCC-8W83P Datacenter
|
||||
HM7DN-YVMH3-46JC3-XYTG7-CYQJJ MultiPoint Standard
|
||||
XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G MultiPoint Premium
|
||||
|
||||
Windows Server 2008 R2
|
||||
|
||||
6TPJF-RBVHG-WBW2R-86QPH-6RTM4 Web
|
||||
TT8MH-CG224-D3D7Q-498W2-9QCTX HPC
|
||||
YC6KT-GKW9T-YTKYR-T4X34-R7VHC Standard
|
||||
74YFP-3QFB3-KQT8W-PMXWJ-7M648 Datacenter
|
||||
489J6-VHDMP-X63PK-3K798-CPX3Y Enterprise
|
||||
GT63C-RJFQ3-4GMB6-BRFB9-CB83V Itanium
|
||||
736RG-XDKJK-V34PF-BHK87-J6X3K MultiPoint Server
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
----------------------------------------------
|
||||
Windows /Server (All VL Supported Versions)
|
||||
----------------------------------------------
|
||||
|
||||
- Connect to the internet.
|
||||
- Open CMD as Admin, and enter the following listed commands in the sequence in which they are given.
|
||||
- Enter Generic Volume License Key (GVLK) (Replace %key% with the key from above list) with
|
||||
the following command:
|
||||
|
||||
slmgr.vbs /ipk %key%
|
||||
|
||||
- Register the KMS Server, (Replace %server% with one of the above-listed servers)
|
||||
(If activation is unsuccessful then try a different server) with the following command:
|
||||
|
||||
slmgr.vbs /skms %server%
|
||||
|
||||
- Activate Windows with the following command:
|
||||
|
||||
slmgr.vbs /ato
|
||||
|
||||
- Check Activation Status with the following command:
|
||||
|
||||
slmgr.vbs /dli
|
||||
|
||||
- Check Activation Expiry Date with the following command:
|
||||
|
||||
slmgr.vbs /xpr
|
||||
|
||||
- Clear the name of the KMS server (Optional) (It'll prevent activation auto-renewal) with the following command:
|
||||
|
||||
slmgr.vbs /ckms
|
||||
|
||||
- Done.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Office VL Activation (Office 2010, 2013, 2016, 2019) -
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
- Connect to the internet.
|
||||
- Open CMD as Admin, and enter the following listed commands in the sequence in which they are given.
|
||||
- If Office is installed as VL (Volume License) then there is no need to enter its key.
|
||||
- If Office is installed as Retail, then you need to convert it to VL, by using C2R-R2V by @abbodi1406
|
||||
https://forums.mydigitallife.net/posts/1150042
|
||||
|
||||
- Change to the directory where Office is installed.
|
||||
If your system is 32-bit Office on 32-bit Windows or 64-bit Office on 64-bit Windows use the following:
|
||||
|
||||
For Office 2016 or 2019 enter the command:
|
||||
|
||||
cd "C:\Program Files\Microsoft Office\Office16"
|
||||
|
||||
For Office 2013 enter the command:
|
||||
|
||||
cd "C:\Program Files\Microsoft Office\Office15"
|
||||
|
||||
For Office 2010 enter the command:
|
||||
|
||||
cd "C:\Program Files\Microsoft Office\Office14"
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
If your system is 32-bit Office on 64-bit Windows, use the following:
|
||||
|
||||
For Office 2016 or 2019 enter the command:
|
||||
|
||||
cd "C:\Program Files (x86)\Microsoft Office\Office16"
|
||||
|
||||
For Office 2013 enter the command:
|
||||
|
||||
cd "C:\Program Files (x86)\Microsoft Office\Office15"
|
||||
|
||||
For Office 2010 enter the command:
|
||||
|
||||
cd "C:\Program Files (x86)\Microsoft Office\Office14"
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
- Once all of that is done correctly, you must register the KMS Server, (In the following,
|
||||
replace %server% with one of the above-listed servers.) (If activation is unsuccessful
|
||||
then try a different server.) with the following command:
|
||||
|
||||
cscript ospp.vbs /sethst:%server%
|
||||
|
||||
- Activate Office with the following command:
|
||||
|
||||
cscript ospp.vbs /act
|
||||
|
||||
- Check Activation Status with the following command:
|
||||
|
||||
cscript ospp.vbs /dstatus
|
||||
|
||||
- Clear the name of the KMS server, (Optional) (It'll prevent activation auto-renewal)
|
||||
with the appropriate following commands:
|
||||
|
||||
To clear the KMS Server name for Office in Win 7, or Office 2010 on Win 8 or Win 10,
|
||||
enter each of the following commands in the sequence which is given:
|
||||
|
||||
set "OSPP=HKLM\SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform"
|
||||
reg delete "%OSPP%" /f /v KeyManagementServiceName 2>nul
|
||||
reg delete "%OSPP%" /f /v KeyManagementServicePort 2>nul
|
||||
reg delete "%OSPP%\59a52881-a989-479d-af46-f275c6370663" /f 2>nul
|
||||
reg delete "%OSPP%\0ff1ce15-a989-479d-af46-f275c6370663" /f 2>nul
|
||||
|
||||
To clear the KMS server name for Office (except Office 2010) on Win 8 or Win 10, run the following command:
|
||||
|
||||
set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
|
||||
reg delete "HKLM\%SPPk%" /f /v KeyManagementServiceName 2>nul
|
||||
reg delete "HKLM\%SPPk%" /f /v KeyManagementServicePort 2>nul
|
||||
reg delete "HKLM\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f 2>nul
|
||||
reg delete "HKEY_USERS\S-1-5-20\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f 2>nul
|
||||
|
||||
- Done.
|
||||
|
||||
====================================================================================================
|
||||
Troubleshoot activation issues:
|
||||
====================================================================================================
|
||||
|
||||
- Make sure the Internet is connected.
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
Open CMD as Admin, and enter the following command: (For Windows 10\8\8.1)
|
||||
|
||||
Dism /online /Cleanup-Image /RestoreHealth
|
||||
|
||||
- After its done, reboot the system and open CMD as Admin and enter the following command:
|
||||
|
||||
sfc.exe /scannow
|
||||
|
||||
- After it's done, reboot the system and run the activation script, and if unsuccessful,
|
||||
open CMD as administrator again, and enter the following command:
|
||||
|
||||
slmgr.vbs /rearm
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
You may try to rebuild licensing Tokens.dat as suggested in https://support.microsoft.com/en-us/help/2736303
|
||||
(this will require to repair Office afterwards.)
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
Try KMS_VL_ALL by @abbodi1406 https://forums.mydigitallife.net/posts/838808/
|
||||
If still unsuccessful, it may be time to start over from the very beginning
|
||||
and do a clean install of windows :D
|
||||
|
||||
-------------------------------
|
||||
|
||||
- If you have issues with Office activation, or got undesired or duplicate licenses (e.g. Office 2016 and 2019):
|
||||
Download Office Scrubber pack from https://forums.mydigitallife.net/posts/1466365/
|
||||
To get rid of any conflicted licenses, run Uninstall_Licenses.cmd, then you must start any
|
||||
Office program to repair the licensing. You may also try Uninstall_Keys.cmd for similar manner.
|
||||
|
||||
If you wish to remove Office and leftovers completely and start clean:
|
||||
Uninstall Office normally from Control Panel / Programs and Feature then run Full_Scrub.cmd
|
||||
afterwards, install new Office.
|
||||
|
||||
- Can't activate Windows 7 with KMS: [Error 0xC004F035]
|
||||
Some OEM licensed computers cannot be activated with KMS on WINDOWS 7.
|
||||
Quote from the MS page https://tinyurl.com/yy8wfu5m
|
||||
'Computers obtained through OEM channels that have an ACPI_SLIC table in the (BIOS) are
|
||||
required to have a valid Windows marker in the same ACPI_SLIC table.
|
||||
---Computers that have an ACPI_SLIC table without a valid Windows marker generate an error
|
||||
when a volume edition of Windows 7 is installed.'
|
||||
|
||||
====================================================================================================
|
||||
Credits:
|
||||
====================================================================================================
|
||||
|
||||
@abbodi1406 Activate.cmd (KMS_VL_ALL)
|
||||
https://forums.mydigitallife.net/posts/838808
|
||||
(* With the great help from @RPO, Forked it to work with Multi KMS Servers,
|
||||
Renewal task, Desktop context menu, $OEM$, etc for Online KMS)
|
||||
|
||||
Clear-KMS-Cache.cmd
|
||||
https://forums.mydigitallife.net/posts/1511883
|
||||
(*Applied it as it is)
|
||||
|
||||
Check-Activation-Status-wmic.cmd
|
||||
https://forums.mydigitallife.net/posts/838808
|
||||
(*Applied it as it is)
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Online Public KMS Servers:
|
||||
|
||||
kms.srv.crsoo.com
|
||||
kms.loli.beer
|
||||
kms8.MSGuides.com
|
||||
|
||||
kms9.MSGuides.com
|
||||
kms.zhuxiaole.org
|
||||
kms.lolico.moe
|
||||
kms.moeclub.org
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Special Thanks to @RPO
|
||||
|
||||
For providing great support in making and improvements of this script,
|
||||
To name a few,
|
||||
|
||||
Internet test with Powershell (No ping)
|
||||
KMS server 1688 port test with Powershell
|
||||
Multi KMS server integration
|
||||
Scheduled task to renew the activation
|
||||
|
||||
And for solving countless problems in this batch script.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Kind Help:-
|
||||
|
||||
Thanks for having my back and answering all of my queries. (In no particular order)
|
||||
|
||||
@AveYo aka @BAU, @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
|
||||
@BorrowedWifi For providing support in fixing English grammar errors in the Read Me.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
This script is a part of 'Microsoft Activation Scripts' project.
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
====================================================================================================
|
@ -1,12 +0,0 @@
|
||||
----------------------------------------------------------------------------------------------
|
||||
Activation Type Supported Product Activation Period
|
||||
----------------------------------------------------------------------------------------------
|
||||
|
||||
Digital License - Windows 10 - Permanent
|
||||
KMS38 - Windows 10 / Server - Until the year 2038
|
||||
Online KMS - Windows / Server / Office - For 180 Days, renewal task needs to be
|
||||
created for lifetime auto activation.
|
||||
|
||||
----------------------------------------------------------------------------------------------
|
||||
|
||||
* For more details, use the ReadMe.txt included in the respective activation folders.
|
@ -1,129 +0,0 @@
|
||||
====================================================================================================
|
||||
Credits:
|
||||
====================================================================================================
|
||||
|
||||
Microsoft Activation Scripts (MAS):
|
||||
|
||||
It is a collection of scripts for activating Microsoft products, these scripts are mostly a fork
|
||||
of other honourable developer's tools and scripts.
|
||||
|
||||
This project consists of the following three activation methods:
|
||||
|
||||
* HWID Activation - Windows 10
|
||||
* KMS38 Activation - Windows 10 /Server
|
||||
* Online KMS Activation - Windows /Server /Office
|
||||
|
||||
The primary focus of this project is the following features:
|
||||
|
||||
* Open-source.
|
||||
* Batch scripts for better transparency.
|
||||
* Clean from antivirus detections (*As much as possible, but it's not completely clean).
|
||||
* Easy to use.
|
||||
|
||||
Homepages:-
|
||||
Discussion Forum: https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
To achieve this I have used the following projects as the base of this activator.
|
||||
I would like to say thanks to the following authors for making such awesome projects.
|
||||
|
||||
====================================
|
||||
HWID and KMS38 Activation:
|
||||
====================================
|
||||
|
||||
@mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade.
|
||||
and Created various methods for HWID/KMS38 Activation
|
||||
*Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
@vyvojar Original slshim (slc.dll)
|
||||
https://github.com/vyvojar/slshim/releases
|
||||
|
||||
====================================
|
||||
|
||||
HWID/KMS38 methods Suggestions and improvements:-
|
||||
|
||||
@sponpa New ideas for the HWID/KM38 Generation
|
||||
https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257
|
||||
|
||||
@leitek8 Improvements for the slc.dll
|
||||
https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005
|
||||
|
||||
====================================
|
||||
Online KMS Activation:
|
||||
====================================
|
||||
|
||||
@abbodi1406 Activate.cmd (KMS_VL_ALL)
|
||||
https://forums.mydigitallife.net/posts/838808
|
||||
(* With the great help from @RPO, Forked it to work with Multi KMS Servers,
|
||||
Renewal task, Desktop context menu, $OEM$, etc for Online KMS)
|
||||
|
||||
Clear-KMS-Cache.cmd
|
||||
https://forums.mydigitallife.net/posts/1511883
|
||||
(*Applied it as it is)
|
||||
|
||||
Check-Activation-Status-wmic.cmd
|
||||
https://forums.mydigitallife.net/posts/838808
|
||||
(*Applied it as it is)
|
||||
|
||||
====================================
|
||||
|
||||
Online Public KMS Servers:
|
||||
|
||||
kms.srv.crsoo.com
|
||||
kms.loli.beer
|
||||
kms8.MSGuides.com
|
||||
|
||||
kms9.MSGuides.com
|
||||
kms.zhuxiaole.org
|
||||
kms.lolico.moe
|
||||
kms.moeclub.org
|
||||
|
||||
====================================
|
||||
Useful scripts and ideas I used :
|
||||
====================================
|
||||
|
||||
@AveYo (@BAU) Compressed2TXT
|
||||
https://github.com/AveYo/Compressed2TXT
|
||||
(For storing the files in text format)
|
||||
|
||||
Reg_takeownership snippet
|
||||
pastebin.com/XTPt0JSC
|
||||
(*Applied in KMS38 Protection)
|
||||
|
||||
@hearywarlot Elevate program as admin with vbs method
|
||||
https://forums.mydigitallife.net/threads/.74332/
|
||||
|
||||
@dbenham Set buffer height independently of window height
|
||||
https://stackoverflow.com/a/13351373
|
||||
|
||||
@Ratiborus Ratiborus Tools
|
||||
http://forum.ru-board.com/topic.cgi?forum=2&topic=5734#1
|
||||
|
||||
@abbodi1406 Continuously providing best solutions for tons of issues.
|
||||
|
||||
abbodi1406's Batch Scripts Repo
|
||||
https://forums.mydigitallife.net/threads/74197/
|
||||
|
||||
@s1ave77 slave77s S-M-R-T JATDevice MkIII
|
||||
https://forums.mydigitallife.net/threads/44717/
|
||||
|
||||
====================================
|
||||
Kind Help:
|
||||
====================================
|
||||
|
||||
Thanks to the following people for answering all of my queries. (In no particular order)
|
||||
|
||||
@AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
|
||||
@BorrowedWifi for providing support in fixing English grammar errors in the Read Me.
|
||||
@Chibi ANUBIS for testing scripts for ARM64 system.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Special thanks to @RPO and @abbodi1406,
|
||||
For providing great support and solving countless issues in this tool.
|
||||
|
||||
====================================================================================================
|
@ -1,6 +0,0 @@
|
||||
[{000214A0-0000-0000-C000-000000000046}]
|
||||
Prop3=19,11
|
||||
[InternetShortcut]
|
||||
IDList=
|
||||
URL=https://pastebin.com/raw/jduBSazJ
|
||||
HotKey=0
|
@ -1,620 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:: =======================================================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: =======================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
title Extract $OEM$ Folder
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell -nop -ep bypass -c"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "EchoRed=%_psc% write-host -back Black -fore Red"
|
||||
set "EchoGreen=%_psc% write-host -back Black -fore Green"
|
||||
set "ELine=echo: & %EchoRed% ==== ERROR ==== &echo:"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 7600 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 7/8/8.1/10 and their Server equivalent.
|
||||
goto Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
:: Written by @abbodi1406
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode con cols=98 lines=30
|
||||
|
||||
:: Get correct Desktop Location with powershell
|
||||
:: Written by @dcshoecomp (superuser.com)
|
||||
:: https://superuser.com/a/1413170
|
||||
|
||||
for /f "delims=" %%a in ('%_psc% "& {write-host $([Environment]::GetFolderPath('Desktop'))}"') do Set "desktop=%%a"
|
||||
|
||||
if exist "%desktop%\$OEM$\" (
|
||||
echo _____________________________________________________
|
||||
%ELine%
|
||||
echo $OEM$ folder already exists on the Desktop.
|
||||
echo _____________________________________________________
|
||||
goto Done2
|
||||
)
|
||||
|
||||
set "_dir=%desktop%\$OEM$\$$\Setup\Scripts"
|
||||
set _nofile=
|
||||
|
||||
set "_fdir1=Activators\HWID-KMS38_Activation"
|
||||
set "HWID_Activation.cmd=%_fdir1%\HWID_Activation.cmd"
|
||||
set "KMS38_Activation.cmd=%_fdir1%\KMS38_Activation.cmd"
|
||||
set "ClipUp.exe=%_fdir1%\BIN\ClipUp.exe"
|
||||
set "gatherosstate.exe=%_fdir1%\BIN\gatherosstate.exe"
|
||||
set "slc.dll=%_fdir1%\BIN\slc.dll"
|
||||
set "ARM64_gatherosstate.exe=%_fdir1%\BIN\ARM64_gatherosstate.exe"
|
||||
set "ARM64_slc.dll=%_fdir1%\BIN\ARM64_slc.dll"
|
||||
|
||||
set "_fdir2=Activators\Online_KMS_Activation"
|
||||
set "Activate.cmd=%_fdir2%\Activate.cmd"
|
||||
set "Renewal_Setup.cmd=%_fdir2%\Renewal_Setup.cmd"
|
||||
set "cleanosppx64.exe=%_fdir2%\BIN\cleanosppx64.exe"
|
||||
set "cleanosppx86.exe=%_fdir2%\BIN\cleanosppx86.exe"
|
||||
|
||||
cd /d "!_work!"
|
||||
pushd "!_work!"
|
||||
cd ..
|
||||
cd ..
|
||||
|
||||
if not exist "%HWID_Activation.cmd%" set _nofile=1
|
||||
if not exist "%KMS38_Activation.cmd%" set _nofile=1
|
||||
if not exist "%ClipUp.exe%" set _nofile=1
|
||||
if not exist "%gatherosstate.exe%" set _nofile=1
|
||||
if not exist "%slc.dll%" set _nofile=1
|
||||
if not exist "%ARM64_gatherosstate.exe%" set _nofile=1
|
||||
if not exist "%ARM64_slc.dll%" set _nofile=1
|
||||
|
||||
if not exist "%Activate.cmd%" set _nofile=1
|
||||
if not exist "%Renewal_Setup.cmd%" set _nofile=1
|
||||
if not exist "%cleanosppx64.exe%" set _nofile=1
|
||||
if not exist "%cleanosppx86.exe%" set _nofile=1
|
||||
|
||||
if defined _nofile (
|
||||
echo _____________________________________________________
|
||||
%ELine%
|
||||
echo Some files are missing in the 'Activators' folder.
|
||||
echo _____________________________________________________
|
||||
goto Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Menu
|
||||
|
||||
cls
|
||||
echo:
|
||||
echo:
|
||||
echo Extract the $OEM$ Folder on your desktop.
|
||||
echo For more details use Read me.
|
||||
echo _______________________________________________________
|
||||
echo ^| ^|
|
||||
echo ^| ^|
|
||||
echo ^| [1] HWID ^|
|
||||
echo ^| ^|
|
||||
echo ^| [2] KMS38 ^|
|
||||
echo ^| ^|
|
||||
echo ^| [3] HWID, Fallback to KMS38 ^|
|
||||
echo ^| ^|
|
||||
echo ^| [4] Online KMS ^|
|
||||
echo ^| ^|
|
||||
echo ^| [5] HWID ^+ Online KMS ^|
|
||||
echo ^| ^|
|
||||
echo ^| [6] KMS38 ^+ Online KMS ^|
|
||||
echo ^| ^|
|
||||
echo ^| [7] HWID, Fallback to KMS38 ^+ Online KMS ^|
|
||||
echo ^| ^|
|
||||
echo ^| [8] Exit ^|
|
||||
echo ^| ^|
|
||||
echo ^|_______________________________________________________^|
|
||||
echo:
|
||||
choice /C:12345678 /N /M "> Enter Your Choice [1,2,3,4,5,6,7,8] : "
|
||||
|
||||
if errorlevel 8 exit /b
|
||||
if errorlevel 7 goto:$OEM$HWID_FB_KMS38-KMS
|
||||
if errorlevel 6 goto:$OEM$KMS38KMS
|
||||
if errorlevel 5 goto:$OEM$HWIDKMS
|
||||
if errorlevel 4 goto:$OEM$KMS
|
||||
if errorlevel 3 goto:$OEM$HWID_FB_KMS38
|
||||
if errorlevel 2 goto:$OEM$KMS38
|
||||
if errorlevel 1 goto:$OEM$HWID
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$HWID
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
call :HWIDPrep
|
||||
call :export HWIDSetup "%_dir%\SetupComplete.cmd"
|
||||
set error_=
|
||||
call :HWIDPrep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=HWID"
|
||||
goto Done
|
||||
|
||||
:HWIDSetup:
|
||||
@echo off
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
call "%~dp0HWID_Activation.cmd" /u
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:HWIDSetup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$KMS38
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
call :KMS38Prep
|
||||
call :export KMS38Setup "%_dir%\SetupComplete.cmd"
|
||||
set error_=
|
||||
call :KMS38Prep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=KMS38"
|
||||
goto Done
|
||||
|
||||
:KMS38Setup:
|
||||
@echo off
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
call "%~dp0KMS38_Activation.cmd" /u
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:KMS38Setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$HWID_FB_KMS38
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
|
||||
copy /y /b "%HWID_Activation.cmd%" "%_dir%\HWID_Activation.cmd" %nul%
|
||||
call :KMS38Prep
|
||||
call :export HWID_FB_KMS38 "%_dir%\SetupComplete.cmd"
|
||||
|
||||
set error_=
|
||||
If not exist "%_dir%\HWID_Activation.cmd" (set error_=1)
|
||||
call :KMS38Prep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=HWID`, Fallback to KMS38"
|
||||
goto Done
|
||||
|
||||
:HWID_FB_KMS38:
|
||||
@echo off
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
|
||||
:: Check Windows Edition
|
||||
set osedition=
|
||||
for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' and PartialProductKey is not NULL) get LicenseFamily /VALUE" 2^>nul') do if not errorlevel 1 set "osedition=%%a"
|
||||
if not defined osedition for /f "tokens=3 delims=: " %%a in ('DISM /English /Online /Get-CurrentEdition 2^>nul ^| find /i "Current Edition :"') do set "osedition=%%a"
|
||||
|
||||
:: Check Installation type
|
||||
set instype=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType 2^>nul') do if not errorlevel 1 set "instype=%%b"
|
||||
|
||||
set KMS38=
|
||||
if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseS" set KMS38=1
|
||||
if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseSN" set KMS38=1
|
||||
if "%osedition%"=="EnterpriseG" set KMS38=1
|
||||
if "%osedition%"=="EnterpriseGN" set KMS38=1
|
||||
if not "%instype%"=="Client" echo %osedition%| findstr /I /B Server 1>nul && set KMS38=1
|
||||
|
||||
if defined KMS38 (
|
||||
call "%~dp0KMS38_Activation.cmd" /u
|
||||
) else (
|
||||
call "%~dp0HWID_Activation.cmd" /u
|
||||
)
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:HWID_FB_KMS38:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$KMS
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
call :KMSPrep
|
||||
call :export KMSSetup "%_dir%\SetupComplete.cmd"
|
||||
set error_=
|
||||
call :KMSPrep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=Online KMS"
|
||||
goto Done
|
||||
|
||||
:KMSSetup:
|
||||
@echo off
|
||||
|
||||
============================================================================
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS Renewal And Activation Task
|
||||
set Renewal_And_Activation_Task=1
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS activation desktop context menu
|
||||
set Desktop_context_menu=1
|
||||
|
||||
============================================================================
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat
|
||||
if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:KMSSetup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$HWIDKMS
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
call :HWIDPrep
|
||||
call :KMSPrep
|
||||
|
||||
call :export HWIDKMSSetup "%_dir%\SetupComplete.cmd"
|
||||
|
||||
set error_=
|
||||
call :HWIDPrep2
|
||||
call :KMSPrep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=HWID `+ Online KMS"
|
||||
goto Done
|
||||
|
||||
:HWIDKMSSetup:
|
||||
@echo off
|
||||
|
||||
============================================================================
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS Renewal And Activation Task
|
||||
set Renewal_And_Activation_Task=1
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS activation desktop context menu
|
||||
set Desktop_context_menu=1
|
||||
|
||||
============================================================================
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
call "%~dp0HWID_Activation.cmd" /u
|
||||
if defined HWIDAct set SkipWinAct=/swa
|
||||
|
||||
if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat %SkipWinAct%
|
||||
if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm %SkipWinAct%
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:HWIDKMSSetup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$KMS38KMS
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
call :KMS38Prep
|
||||
call :KMSPrep
|
||||
call :export KMS38KMSSetup "%_dir%\SetupComplete.cmd"
|
||||
set error_=
|
||||
call :KMS38Prep2
|
||||
call :KMSPrep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=KMS38 `+ Online KMS"
|
||||
goto Done
|
||||
|
||||
:KMS38KMSSetup:
|
||||
@echo off
|
||||
|
||||
============================================================================
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS Renewal And Activation Task
|
||||
set Renewal_And_Activation_Task=1
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS activation desktop context menu
|
||||
set Desktop_context_menu=1
|
||||
|
||||
============================================================================
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
call "%~dp0KMS38_Activation.cmd" /u
|
||||
|
||||
if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat
|
||||
if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:KMS38KMSSetup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$HWID_FB_KMS38-KMS
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
|
||||
copy /y /b "%HWID_Activation.cmd%" "%_dir%\HWID_Activation.cmd" %nul%
|
||||
call :KMS38Prep
|
||||
call :KMSPrep
|
||||
call :export HWID_FB_KMS38-KMSSetup "%_dir%\SetupComplete.cmd"
|
||||
|
||||
set error_=
|
||||
If not exist "%_dir%\HWID_Activation.cmd" (set error_=1)
|
||||
call :KMS38Prep2
|
||||
call :KMSPrep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=HWID`, Fallback to KMS38 `+ Online KMS"
|
||||
goto Done
|
||||
|
||||
:HWID_FB_KMS38-KMSSetup:
|
||||
@echo off
|
||||
|
||||
============================================================================
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS Renewal And Activation Task
|
||||
set Renewal_And_Activation_Task=1
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS activation desktop context menu
|
||||
set Desktop_context_menu=1
|
||||
|
||||
============================================================================
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
|
||||
:: Check Windows Edition
|
||||
set osedition=
|
||||
for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' and PartialProductKey is not NULL) get LicenseFamily /VALUE" 2^>nul') do if not errorlevel 1 set "osedition=%%a"
|
||||
if not defined osedition for /f "tokens=3 delims=: " %%a in ('DISM /English /Online /Get-CurrentEdition 2^>nul ^| find /i "Current Edition :"') do set "osedition=%%a"
|
||||
|
||||
:: Check Installation type
|
||||
set instype=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType 2^>nul') do if not errorlevel 1 set "instype=%%b"
|
||||
|
||||
set KMS38=
|
||||
if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseS" set KMS38=1
|
||||
if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseSN" set KMS38=1
|
||||
if "%osedition%"=="EnterpriseG" set KMS38=1
|
||||
if "%osedition%"=="EnterpriseGN" set KMS38=1
|
||||
if not "%instype%"=="Client" echo %osedition%| findstr /I /B Server 1>nul && set KMS38=1
|
||||
|
||||
if defined KMS38 (
|
||||
call "%~dp0KMS38_Activation.cmd" /u
|
||||
) else (
|
||||
call "%~dp0HWID_Activation.cmd" /u
|
||||
if defined HWIDAct set SkipWinAct=/swa
|
||||
)
|
||||
|
||||
if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat %SkipWinAct%
|
||||
if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm %SkipWinAct%
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:HWID_FB_KMS38-KMSSetup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:ErrorFound
|
||||
|
||||
%ELine%
|
||||
echo $OEM$ Folder was not created successfully...
|
||||
goto :Done2
|
||||
:Done
|
||||
echo ________________________________________________________________________________________________
|
||||
echo:
|
||||
%EchoGreen% %_oem% `$OEM`$ folder is successfully created on the Desktop.
|
||||
echo ________________________________________________________________________________________________
|
||||
:Done2
|
||||
echo:
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Prep
|
||||
|
||||
cd /d "%desktop%"
|
||||
md "%desktop%\$OEM$\$$\Setup\Scripts\"
|
||||
md "%desktop%\$OEM$\$$\Setup\Scripts\BIN"
|
||||
|
||||
cd /d "!_work!"
|
||||
pushd "!_work!"
|
||||
cd ..
|
||||
cd ..
|
||||
|
||||
exit /b
|
||||
|
||||
:HWIDPrep
|
||||
|
||||
copy /y /b "%HWID_Activation.cmd%" "%_dir%\HWID_Activation.cmd" %nul%
|
||||
copy /y /b "%gatherosstate.exe%" "%_dir%\BIN\gatherosstate.exe" %nul%
|
||||
copy /y /b "%slc.dll%" "%_dir%\BIN\slc.dll" %nul%
|
||||
copy /y /b "%ARM64_gatherosstate.exe%" "%_dir%\BIN\ARM64_gatherosstate.exe" %nul%
|
||||
copy /y /b "%ARM64_slc.dll%" "%_dir%\BIN\ARM64_slc.dll" %nul%
|
||||
exit /b
|
||||
|
||||
:KMS38Prep
|
||||
|
||||
copy /y /b "%KMS38_Activation.cmd%" "%_dir%\KMS38_Activation.cmd" %nul%
|
||||
copy /y /b "%ClipUp.exe%" "%_dir%\BIN\ClipUp.exe" %nul%
|
||||
copy /y /b "%gatherosstate.exe%" "%_dir%\BIN\gatherosstate.exe" %nul%
|
||||
copy /y /b "%slc.dll%" "%_dir%\BIN\slc.dll" %nul%
|
||||
copy /y /b "%ARM64_gatherosstate.exe%" "%_dir%\BIN\ARM64_gatherosstate.exe" %nul%
|
||||
copy /y /b "%ARM64_slc.dll%" "%_dir%\BIN\ARM64_slc.dll" %nul%
|
||||
exit /b
|
||||
|
||||
:KMSPrep
|
||||
|
||||
copy /y /b "%Activate.cmd%" "%_dir%\Activate.cmd" %nul%
|
||||
copy /y /b "%Renewal_Setup.cmd%" "%_dir%\Renewal_Setup.cmd" %nul%
|
||||
copy /y /b "%cleanosppx64.exe%" "%_dir%\BIN\cleanosppx64.exe" %nul%
|
||||
copy /y /b "%cleanosppx86.exe%" "%_dir%\BIN\cleanosppx86.exe" %nul%
|
||||
exit /b
|
||||
|
||||
:HWIDPrep2
|
||||
|
||||
If not exist "%_dir%\HWID_Activation.cmd" (set error_=1)
|
||||
If not exist "%_dir%\BIN\gatherosstate.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\slc.dll" (set error_=1)
|
||||
If not exist "%_dir%\BIN\ARM64_gatherosstate.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\ARM64_slc.dll" (set error_=1)
|
||||
If not exist "%_dir%\SetupComplete.cmd" (set error_=1)
|
||||
exit /b
|
||||
|
||||
:KMS38Prep2
|
||||
|
||||
If not exist "%_dir%\KMS38_Activation.cmd" (set error_=1)
|
||||
If not exist "%_dir%\BIN\ClipUp.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\gatherosstate.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\slc.dll" (set error_=1)
|
||||
If not exist "%_dir%\BIN\ARM64_gatherosstate.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\ARM64_slc.dll" (set error_=1)
|
||||
If not exist "%_dir%\SetupComplete.cmd" (set error_=1)
|
||||
exit /b
|
||||
|
||||
:KMSPrep2
|
||||
|
||||
If not exist "%_dir%\Activate.cmd" (set error_=1)
|
||||
If not exist "%_dir%\Renewal_Setup.cmd" (set error_=1)
|
||||
If not exist "%_dir%\BIN\cleanosppx64.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\cleanosppx86.exe" (set error_=1)
|
||||
If not exist "%_dir%\SetupComplete.cmd" (set error_=1)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Extract the text from batch script without character and file encoding issue
|
||||
:: Thanks to @abbodi1406
|
||||
|
||||
:export
|
||||
%nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::ASCII);" &exit/b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,123 +0,0 @@
|
||||
====================================================================================================
|
||||
$OEM$ Folders [Windows Pre-Activation]:
|
||||
====================================================================================================
|
||||
|
||||
- To create a Preactivated Windows installation .iso, do the following things:
|
||||
Copy the "$OEM$" folder to the "sources" folder in the Windows installation media (.iso or USB).
|
||||
The directory will appear like this: \sources\$OEM$ in your altered .iso or on your bootable
|
||||
USB drive.
|
||||
Now use this .iso or bootable USB drive to install Windows and it will either already be activated
|
||||
(KMS38) as soon as it boots, or will self-activate at first internet contact.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
HWID:
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- When using Digital License (HWID), no files are stored on the system, and when connected to the
|
||||
internet for the first time, the system will self-activate at that time.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
KMS38:
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- When using KMS38, no files are stored on the system, and Windows becomes activated immediately
|
||||
without further actions or connectivity of any kind being required.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
Online KMS (separately, or in combination with HWID or KMS38):
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- It creates the following 2 Activation/Renewal Methods. You can turn off any of them in
|
||||
setupcomplete.cmd file
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
1- Automatic Renewal via Task Scheduler---
|
||||
|
||||
It creates following files and tasks,
|
||||
|
||||
Files:
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
C:\ProgramData\Online_KMS_Activation\Info.txt
|
||||
|
||||
Scheduled Tasks:
|
||||
\Online_KMS_Activation_Script-Renewal (Weekly)
|
||||
\Online_KMS_Activation_Script-Run_Once (Activation Task)
|
||||
|
||||
The scheduled task runs only if the system is connected to the Internet.
|
||||
Activation Task will run on the system login and after successful activation and registering
|
||||
online KMS server, this task will delete itself. leaving behind only one task to run weekly
|
||||
for the lifetime of the system.
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
2- Manual Renewal via Desktop Context Menu---
|
||||
|
||||
It creates Desktop context Menu for manual activation and renewal.
|
||||
It creates the following files and registry entries.
|
||||
|
||||
Files:
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
C:\ProgramData\Online_KMS_Activation\Info.txt
|
||||
|
||||
Registry entries:
|
||||
HKCR\DesktopBackground\shell\Activate Windows - Office
|
||||
HKCR\DesktopBackground\shell\Activate Windows - Office\command
|
||||
|
||||
It creates an easy to reach the Desktop context menu for the manual activation renewal.
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe Virus Total = 0/66
|
||||
39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe Virus Total = 1/66
|
||||
|
||||
Virus Total Report Date: 12-11-2019
|
||||
|
||||
These files are official Microsoft files and in this script, these are used in
|
||||
cleaning office license in C2R Retail office to VL conversion process.
|
||||
|
||||
The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab
|
||||
You can get the original file here https://s.put.re/WFuXpyWA.zip
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
IMPORTANT NOTE - Some sensitive AV's may flag the Automatic Renewal via the Task, and not
|
||||
because of KMS, because for them it's suspicious to run long scripts in the background as Tasks.
|
||||
|
||||
It's recommended to set exclusions in Antivirus for
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
- When using Online KMS plus HWID Digital License, Online KMS script will be set to skip Windows
|
||||
activation (if the HWID activation was applied but was not successful due to lack of internet
|
||||
at the time of installation of Windows) but will register the KMS for other products, and all
|
||||
later installed Volume License (VL) products (MS Office) will self-activate when going online.
|
||||
|
||||
- When using Online KMS plus KMS38, Online KMS will not skip Windows activation but skip KMS38
|
||||
activation and will register the KMS for other products, and all subsequently-installed Volume
|
||||
License (VL) products (MS Office) will self-activate when going online.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
HWID (Fallback to KMS38):
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- In this method, KMS38 will be used for the activation in case the Windows version is not
|
||||
supported by HWID. For example, Windows 10 LTSC and Windows server.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
Activation Type Supported Product Activation Period
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Digital License - Windows 10 - Permanent
|
||||
KMS38 - Windows 10 / Server - Until the year 2038
|
||||
Online KMS - Windows / Server / Office - For 180 Days, renewal task needs to be
|
||||
created for lifetime auto-activation.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
* For more details, use the ReadMe.txt included in the respective activation folders.
|
@ -1,402 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:: =======================================================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: =======================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
title Protect / Unprotect KMS38 Activation
|
||||
set _elev=
|
||||
if /i "%~1"=="-el" set _elev=1
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell -nop -ep bypass -c"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "Red="white" "DarkRed""
|
||||
set "Green="white" "DarkGreen""
|
||||
set "Magenta="white" "darkmagenta""
|
||||
set "Gray="white" "darkgray""
|
||||
set "Black="white" "Black""
|
||||
set "ELine=echo: &call :PU_color "==== ERROR ====" %Red% &echo:"
|
||||
set line=__________________________________________________________________________________________________
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 14393 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 10 / Server 1607 [14393] and later builds.
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :Passed
|
||||
) || (
|
||||
if defined _elev goto :E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el) && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto PU_Done
|
||||
|
||||
:Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode con: cols=98 lines=30
|
||||
|
||||
set slp=SoftwareLicensingProduct
|
||||
set sls=SoftwareLicensingService
|
||||
set wApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
:: Written by @abbodi1406
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
:: Check Windows OS name
|
||||
|
||||
set winos=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
echo [1] Protect KMS38 Activation from being overwritten by 180 days KMS Activators
|
||||
echo:
|
||||
echo [2] Undo changes
|
||||
echo:
|
||||
echo [3] Exit
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
choice /C:123 /N /M "> Enter Your Choice [1,2,3] : "
|
||||
|
||||
if errorlevel 3 exit /b
|
||||
if errorlevel 2 goto Undo
|
||||
if errorlevel 1 goto Protect
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Protect
|
||||
|
||||
cls
|
||||
|
||||
:: Check KMS client setup key
|
||||
|
||||
set _gvlk=
|
||||
wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel 2>nul | findstr /i GVLK 1>nul && (set _gvlk=1)
|
||||
|
||||
if not defined _gvlk (
|
||||
%ELine%
|
||||
echo System is not activated with KMS38. ^(KMS Key is not installed^) Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Check Activation Grace Period
|
||||
|
||||
set gpr=
|
||||
for /f "tokens=2 delims==" %%# in ('"wmic path %slp% where (ApplicationID='%wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get GracePeriodRemaining /VALUE" ') do set "gpr=%%#"
|
||||
|
||||
if "%gpr%" LEQ "259200" (
|
||||
%ELine%
|
||||
echo System is not activated with KMS38. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Check SKU value
|
||||
|
||||
set SKU=
|
||||
for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
|
||||
if "%osSKU%"=="" (
|
||||
%ELine%
|
||||
echo SKU value was not detected properly. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
set osedition=
|
||||
call :K38_CheckEdition %nul%
|
||||
|
||||
if "%osedition%"=="" (
|
||||
%ELine%
|
||||
echo OS Edition was not detected properly. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Check Activation ID
|
||||
|
||||
set app=
|
||||
for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%' and LicenseFamily='%osedition%' and Description like '%%KMSCLIENT%%') get ID /VALUE" 2^>nul') do set "app=%%a"
|
||||
|
||||
if "%app%"=="" (
|
||||
%ELine%
|
||||
echo Activation ID was not detected properly. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
wmic path %sls% where __CLASS='%sls%' call ClearKeyManagementServiceMachine %nul%
|
||||
wmic path %sls% where __CLASS='%sls%' call ClearKeyManagementServicePort %nul%
|
||||
|
||||
reg query "HKLM\%SPPk%\%wApp%" %nul% && (
|
||||
%nul% call :reg_takeownership "HKLM\%SPPk%\%wApp%" FullControl Allow S-1-5-32-544
|
||||
reg delete "HKLM\%SPPk%\%wApp%" /f %nul%
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul%
|
||||
)
|
||||
|
||||
reg query "HKLM\%SPPk%\%wApp%" %nul% && (
|
||||
%ELine%
|
||||
echo Registry Key was not cleared successfully. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Set specific KMS host to Local Host
|
||||
:: Thanks to @abbodi1406
|
||||
|
||||
set setkms_error=
|
||||
|
||||
wmic path %slp% where ID='%app%' call ClearKeyManagementServiceMachine %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call ClearKeyManagementServicePort %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call SetKeyManagementServiceMachine MachineName="127.0.0.2" %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call SetKeyManagementServicePort 1688 %nul% || (set setkms_error=1)
|
||||
|
||||
if defined setkms_error (
|
||||
reg delete "HKLM\%SPPk%\%wApp%" /f %nul%
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul%
|
||||
%ELine%
|
||||
echo Specific KMS host to Local Host was not properly applied. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
%nul% call :reg_takeownership "HKLM\%SPPk%\%wApp%" "SetValue, Delete" Deny S-1-5-32-544
|
||||
|
||||
reg delete "HKLM\%SPPk%\%wApp%" /f %nul%
|
||||
reg query "HKLM\%SPPk%\%wApp%" %nul% || (
|
||||
%ELine%
|
||||
echo Registry Key was not protected properly. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Check Activation Grace Period
|
||||
|
||||
set gpr=
|
||||
for /f "tokens=2 delims==" %%# in ('"wmic path %slp% where (ApplicationID='%wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get GracePeriodRemaining /VALUE" ') do set "gpr=%%#"
|
||||
|
||||
if "%gpr%" LEQ "259200" (
|
||||
%ELine%
|
||||
echo System is not activated with KMS38.
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
cls
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
echo Specific KMS host set to 127.0.0.2 ^(Local Host^) successfully.
|
||||
echo:
|
||||
echo Registry item locked successfully.
|
||||
echo HKLM\%SPPk%\%wApp%
|
||||
echo:
|
||||
call :PU_color "%winos% - KMS38 Activation is now protected." %Green%
|
||||
echo:
|
||||
echo Now you need to activate Office with KMS ^(If required^)
|
||||
echo:
|
||||
echo %line%
|
||||
|
||||
goto PU_Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Undo
|
||||
|
||||
cls
|
||||
set exist_=
|
||||
reg query "HKLM\%SPPk%\%wApp%" %nul% && (set exist_=1)
|
||||
|
||||
if defined exist_ (
|
||||
%nul% call :reg_takeownership "HKLM\%SPPk%\%wApp%" FullControl Allow S-1-5-32-544
|
||||
reg delete "HKLM\%SPPk%\%wApp%" /f %nul%
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul%
|
||||
)
|
||||
|
||||
reg query "HKLM\%SPPk%\%wApp%" %nul% && (
|
||||
%ELine%
|
||||
echo Registry Key was not cleared successfully. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
if defined exist_ (
|
||||
echo Registry item deleted successfully.
|
||||
echo HKLM\%SPPk%\%wApp%
|
||||
echo:
|
||||
call :PU_color "KMS38 Activation is now unprotected [set to default]" %Green%
|
||||
) else (
|
||||
call :PU_color "It is already unprotected [set to default]" %Green%
|
||||
)
|
||||
echo:
|
||||
echo %line%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:PU_Done
|
||||
echo:
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:PU_color
|
||||
|
||||
%_psc% write-host '%1' -fore '%2' -back '%3'
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
:K38_CheckEdition
|
||||
|
||||
for %%# in (
|
||||
4:Enterprise
|
||||
7:ServerStandard
|
||||
8:ServerDatacenter
|
||||
27:EnterpriseN
|
||||
48:Professional
|
||||
49:ProfessionalN
|
||||
50:ServerSolution
|
||||
98:CoreN
|
||||
99:CoreCountrySpecific
|
||||
100:CoreSingleLanguage
|
||||
101:Core
|
||||
110:ServerCloudStorage
|
||||
120:ServerARM64
|
||||
121:Education
|
||||
122:EducationN
|
||||
125:EnterpriseS
|
||||
126:EnterpriseSN
|
||||
145:ServerDatacenterACor
|
||||
146:ServerStandardACor
|
||||
161:ProfessionalWorkstation
|
||||
162:ProfessionalWorkstationN
|
||||
164:ProfessionalEducation
|
||||
165:ProfessionalEducationN
|
||||
168:ServerAzureCor
|
||||
171:EnterpriseG
|
||||
172:EnterpriseGN
|
||||
175:ServerRdsh
|
||||
183:CloudE
|
||||
) do for /f "tokens=1,2 delims=:" %%A in ("%%#") do (
|
||||
if %osSKU%==%%A set "osedition=%%B"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Reg_takeownership snippet
|
||||
:: Written by @AveYo aka @BAU
|
||||
:: pastebin.com/XTPt0JSC
|
||||
|
||||
:reg_takeownership
|
||||
set "pargs=$regkey='%~1'; $p='%~2'; $a='%~3'; $u='%~4'; $o='%~5';"
|
||||
%_psc% "%pargs%; $f=[io.file]::ReadAllText('!_batp!') -split ':ps_reg_own\:.*';iex ($f[1]);" & exit/b:ps_reg_own:
|
||||
$dll0='[DllImport("ntdll.dll")]public static extern IntPtr RtlAdjustPrivilege(int a,bool b,bool c,ref bool d);';
|
||||
$nt=Add-Type -Member $dll0 -Name Nt -PassThru; foreach($i in @(9,17,18)){$null=$nt::RtlAdjustPrivilege($i,1,0,[ref]0)}
|
||||
$root=$true; if($o -eq ''){$o=$u}; $rk=$regkey -split '\\',2; $key=$rk[1];
|
||||
switch -regex ($rk[0]){ '[mM]'{$HK='LocalMachine'};'[uU]'{$HK='CurrentUser'};default{$HK='ClassesRoot'}; }
|
||||
$usr=0,0,0; $sec=0,0,0; $rule=0,0,0; $perm='FullControl',$p,$p; $access='Allow',$a,$a; $s=$o,$u,'S-1-5-32-544';
|
||||
for($i=0;$i -le 2;$i++){ $usr[$i]=[System.Security.Principal.SecurityIdentifier]$s[$i];
|
||||
$rule[$i]=[System.Security.AccessControl.RegistryAccessRule]::new($usr[$i], $perm[$i], 3, 0, $access[$i]);
|
||||
$sec[$i]=[System.Security.AccessControl.RegistrySecurity]::new(); }
|
||||
function Reg_TakeOwnership { param($hive, $key, $root=$false);
|
||||
$reg=[Microsoft.Win32.Registry]::$hive.OpenSubKey($key,'ReadWriteSubTree','TakeOwnership'); $sec[2].SetOwner($usr[2]);
|
||||
$reg.SetAccessControl($sec[2]); if($root){ $reg=$reg.OpenSubKey('','ReadWriteSubTree','ChangePermissions');
|
||||
$acl=$reg.GetAccessControl(); $acl.SetAccessRuleProtection($false,$false); $acl.ResetAccessRule($rule[1]);
|
||||
$reg.SetAccessControl($acl); } $sec[0].SetOwner($usr[0]); $reg.SetAccessControl($sec[0]); }
|
||||
Reg_TakeOwnership $HK $key $true; if($root){ $r=[Microsoft.Win32.Registry]::$HK.OpenSubKey($key);
|
||||
foreach($sk in $r.GetSubKeyNames()){try{ Reg_TakeOwnership $HK "$($key+'\\'+$sk)" $false}catch{} }}
|
||||
Get-Acl "$($rk[0]+':\\'+$rk[1])" | fl:ps_reg_own:
|
||||
|
||||
::========================================================================================================================================
|
@ -1,37 +0,0 @@
|
||||
====================================================================================================
|
||||
KMS38 Protection:
|
||||
====================================================================================================
|
||||
|
||||
- If you don't know what KMS38 is, then first check it in the Read Me.
|
||||
|
||||
- By default, a KMS38 Activation is vulnerable to unintended overwriting/replacement and
|
||||
neutralization by a 180-Day KMS Activator (non-KMS38 Activator).
|
||||
However, with a few tricks you can ensure that no alternative KMS Activator can replace KMS38
|
||||
Activation by accident or even on purpose. This script demonstrate how to do/undo that.
|
||||
|
||||
- Protect KMS38:
|
||||
- How does KMS38 Protection work?
|
||||
In the KMS activation method, the Windows Operating System first checks the KMS IP registered
|
||||
as a specific KMS, and if that is not defined then it checks the Global KMS IP.
|
||||
Another fact is that if LocalHost (127.0.0.2) is defined as KMS IP in the Windows 8.1 and 10 OS's
|
||||
then Windows will not accept it as a valid KMS IP.
|
||||
This script simply utilizes the above facts to protect the KMS38 activation from being
|
||||
overwritten by any alternative 'normal' 180-Day KMS Activation.
|
||||
|
||||
Script steps-
|
||||
- Check if Windows is activated with KMS38, if yes,
|
||||
- Set that Windows edition specific KMS IP to LocalHost (127.0.0.2),
|
||||
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\55c92734-d682-4d71-983e-d6ec3f16059f\XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
||||
where X is Windows edition Activation ID.
|
||||
|
||||
- Lock this Registry with Reg_takeownership snippet by @AveYo aka @BAU
|
||||
pastebin.com/XTPt0JSC
|
||||
- Done.
|
||||
|
||||
- Unprotect KMS38:
|
||||
- Just undo above steps,
|
||||
- Give administrator full control of that mentioned registry key.
|
||||
- Delete that registry key.
|
||||
- Done.
|
||||
|
||||
====================================================================================================
|
@ -1,290 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:: =======================================================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: =======================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
title Change Windows 10 Edition with Retail/OEM Key
|
||||
set _elev=
|
||||
if /i "%~1"=="-el" set _elev=1
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell -nop -ep bypass -c"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "ELine=echo: &echo ==== ERROR ==== &echo:"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 17134 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo OS Requirement - Windows 10 [17134] 1803 and later builds.
|
||||
goto Ced_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :Passed
|
||||
) || (
|
||||
if defined _elev goto :E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el) && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto Ced_Done
|
||||
|
||||
:Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Set buffer height independently of window height
|
||||
:: https://stackoverflow.com/a/13351373
|
||||
:: Written by @dbenham
|
||||
|
||||
mode con: cols=98 lines=31
|
||||
%nul% %_psc% "&{$H=get-host;$W=$H.ui.rawui;$B=$W.buffersize;$B.height=36;$W.buffersize=$B;}"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set slp=SoftwareLicensingProduct
|
||||
set sls=SoftwareLicensingService
|
||||
set wApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
:: Check Installation type
|
||||
set instype=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType 2^>nul') do if not errorlevel 1 set "instype=%%b"
|
||||
|
||||
if not "%instype%"=="Client" (
|
||||
%ELine%
|
||||
echo Unsupported OS version [Server] Detected.
|
||||
echo OS Requirement - Windows 10 [17134] 1803 and later builds.
|
||||
goto Ced_Done
|
||||
)
|
||||
|
||||
:: Check Windows Edition
|
||||
set osedition=
|
||||
for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%' and PartialProductKey is not NULL) get LicenseFamily /VALUE" 2^>nul') do if not errorlevel 1 set "osedition=%%a"
|
||||
if not defined osedition for /f "tokens=3 delims=: " %%a in ('DISM /English /Online /Get-CurrentEdition 2^>nul ^| find /i "Current Edition :"') do set "osedition=%%a"
|
||||
|
||||
cls
|
||||
if "%osedition%"=="" (
|
||||
%ELine%
|
||||
echo OS Edition was not detected properly. Aborting...
|
||||
goto Ced_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo _______________________________________________________________________________________________
|
||||
echo:
|
||||
echo Note 1 - This script can not change 'Core'(Home) to 'Non-Core' (Pro) Editions.
|
||||
echo You'll have to do the above manually, Follow these steps.
|
||||
echo - Disable internet.
|
||||
echo - Go to Settings ^> Update ^& Security ^> Activation and
|
||||
echo Insert 'Pro' Edition Product Key VK7JG-NPHTM-C97JM-9MPGT-3V66T
|
||||
echo - Follow on screen instructions, Done.
|
||||
echo:
|
||||
echo Note 2 - Following option works only in W10 17134 (RS4) and later builds.
|
||||
echo _______________________________________________________________________________________________
|
||||
echo:
|
||||
echo You can change the Current Edition '%osedition%' to one of the following :
|
||||
echo _______________________________________________________________________________________________
|
||||
|
||||
REM Thanks to @RPO for the help in codes
|
||||
|
||||
echo:
|
||||
for /f "tokens=4" %%a in ('dism /online /english /Get-TargetEditions ^| findstr /i /c:"Target Edition : "') do echo %%a
|
||||
echo:
|
||||
choice /C:21 /N /M "[1] Continue [2] Exit : "
|
||||
if %errorlevel%==1 exit /b
|
||||
echo:
|
||||
|
||||
for /f "tokens=4" %%a in ('dism /online /english /Get-TargetEditions ^| findstr /i /c:"Target Edition : "') do (
|
||||
|
||||
choice /C:NY /N /M "Do you want to change to the %%a edition? [Y,N] : "
|
||||
if errorlevel 2 (
|
||||
|
||||
call :%%a %nul%
|
||||
if "!key!"=="" cls &%ELine% &echo [%%a ^| %winbuild%] HWID Activation is Not Supported. &goto Ced_Done
|
||||
|
||||
cls
|
||||
echo ____________________________________________________________________
|
||||
|
||||
REM Thanks to @abbodi1406 for the WMI methods
|
||||
|
||||
echo:
|
||||
echo Changing the Edition to Windows 10 %%a
|
||||
wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="!key!" %nul% && (
|
||||
for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#"
|
||||
wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
echo:
|
||||
call echo Installing %%_channel%% Key [!key!]
|
||||
echo [Successful]
|
||||
echo:
|
||||
echo Reboot is required to properly change the Edition.
|
||||
) || (
|
||||
%ELine%
|
||||
echo Installing Retail/OEM Key [!key!]
|
||||
echo [Unsuccessful]
|
||||
)
|
||||
echo ____________________________________________________________________
|
||||
|
||||
goto Ced_Done
|
||||
))
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Ced_Done
|
||||
|
||||
echo:
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Retail_OEM Key List
|
||||
|
||||
:Core
|
||||
set "key=YTMG3-N6DKC-DKB77-7M9GH-8HVX7"
|
||||
exit /b
|
||||
|
||||
:CoreCountrySpecific
|
||||
set "key=N2434-X9D7W-8PF6X-8DV9T-8TYMD"
|
||||
exit /b
|
||||
|
||||
:CoreN
|
||||
set "key=4CPRK-NM3K3-X6XXQ-RXX86-WXCHW"
|
||||
exit /b
|
||||
|
||||
:CoreSingleLanguage
|
||||
set "key=BT79Q-G7N6G-PGBYW-4YWX6-6F4BT"
|
||||
exit /b
|
||||
|
||||
:Education
|
||||
set "key=YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY"
|
||||
exit /b
|
||||
|
||||
:EducationN
|
||||
set "key=84NGF-MHBT6-FXBX8-QWJK7-DRR8H"
|
||||
exit /b
|
||||
|
||||
:Enterprise
|
||||
set "key=XGVPP-NMH47-7TTHJ-W3FW7-8HV2C"
|
||||
exit /b
|
||||
|
||||
:EnterpriseN
|
||||
set "key=3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT"
|
||||
exit /b
|
||||
|
||||
:EnterpriseS
|
||||
if "%winbuild%" EQU "10240" set "key=FWN7H-PF93Q-4GGP8-M8RF3-MDWWW"
|
||||
if "%winbuild%" EQU "14393" set "key=NK96Y-D9CD8-W44CQ-R8YTK-DYJWX"
|
||||
exit /b
|
||||
|
||||
:EnterpriseSN
|
||||
if "%winbuild%" EQU "10240" set "key=8V8WN-3GXBH-2TCMG-XHRX3-9766K"
|
||||
if "%winbuild%" EQU "14393" set "key=2DBW3-N2PJG-MVHW3-G7TDK-9HKR4"
|
||||
exit /b
|
||||
|
||||
:Professional
|
||||
set "key=VK7JG-NPHTM-C97JM-9MPGT-3V66T"
|
||||
exit /b
|
||||
|
||||
:ProfessionalEducation
|
||||
set "key=8PTT6-RNW4C-6V7J2-C2D3X-MHBPB"
|
||||
exit /b
|
||||
|
||||
:ProfessionalEducationN
|
||||
set "key=GJTYN-HDMQY-FRR76-HVGC7-QPF8P"
|
||||
exit /b
|
||||
|
||||
:ProfessionalN
|
||||
set "key=2B87N-8KFHP-DKV6R-Y2C8J-PKCKT"
|
||||
exit /b
|
||||
|
||||
:ProfessionalWorkstation
|
||||
set "key=DXG7C-N36C4-C4HTG-X4T3X-2YV77"
|
||||
exit /b
|
||||
|
||||
:ProfessionalWorkstationN
|
||||
set "key=WYPNQ-8C467-V2W6J-TX4WX-WT2RQ"
|
||||
exit /b
|
||||
|
||||
:ServerRdsh
|
||||
set "key=NJCF7-PW8QT-3324D-688JX-2YV66"
|
||||
exit /b
|
||||
|
||||
:IoTEnterprise
|
||||
set "key=XQQYW-NFFMW-XJPBH-K8732-CKFFD"
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,321 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
:: For unattended mode, run the script with /u parameter.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:: =======================================================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: =======================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
title Install Windows 10 Retail/OEM Key
|
||||
set Unattended=
|
||||
set _args=
|
||||
set _elev=
|
||||
set "_arg1=%~1"
|
||||
if not defined _arg1 goto :NoProgArgs
|
||||
set "_args=%~1"
|
||||
set "_arg2=%~2"
|
||||
if defined _arg2 set "_args=%~1 %~2"
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
if /i "%%A"=="/u" set Unattended=1)
|
||||
:NoProgArgs
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell -nop -ep bypass -c"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "ELine=echo: &echo ==== ERROR ==== &echo:"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 10240 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 10.
|
||||
goto Ins_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :Passed
|
||||
) || (
|
||||
if defined _elev goto :E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
if defined _args set _PSarg="""%~f0""" -el """%_args%"""
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto Ins_Done
|
||||
|
||||
:Passed
|
||||
|
||||
mode con: cols=98 lines=30
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Windows OS name
|
||||
|
||||
set winos=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
|
||||
:: Check SKU value
|
||||
|
||||
set SKU=
|
||||
for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
|
||||
if "%osSKU%"=="" (
|
||||
%ELine%
|
||||
echo SKU value was not detected properly. Aborting...
|
||||
goto Ins_Done
|
||||
)
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
set osedition=
|
||||
call :CheckEdition %nul%
|
||||
|
||||
if "%osedition%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild% ^| SKU:%osSKU%] HWID Activation is Not Supported.
|
||||
goto Ins_Done
|
||||
)
|
||||
|
||||
set key=
|
||||
call :%osedition% %nul%
|
||||
|
||||
if "%key%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild%] HWID Activation is Not Supported.
|
||||
goto Ins_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if defined Unattended goto ContinueKeyInsert
|
||||
|
||||
cls
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
echo Install [%winos% ^| %winbuild%] Retail/OEM Key
|
||||
echo [%key%]
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
choice /C:12 /N /M "[1] Continue [2] Exit : "
|
||||
|
||||
if errorlevel 2 exit /b
|
||||
if errorlevel 1 goto ContinueKeyInsert
|
||||
|
||||
:ContinueKeyInsert
|
||||
|
||||
cls
|
||||
echo ___________________________________________________________________________________________
|
||||
|
||||
:: Thanks to @abbodi1406 for the WMI methods
|
||||
|
||||
set slp=SoftwareLicensingProduct
|
||||
set sls=SoftwareLicensingService
|
||||
set wApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
|
||||
wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="%key%" %nul% && (
|
||||
for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#"
|
||||
wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
echo:
|
||||
echo [%winos% ^| %winbuild%]
|
||||
call echo Installing %%_channel%% Key [%key%]
|
||||
echo [Successful]
|
||||
) || (
|
||||
%ELine%
|
||||
echo Installing Retail/OEM Key [%key%]
|
||||
echo [Unsuccessful]
|
||||
)
|
||||
echo ___________________________________________________________________________________________
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Ins_Done
|
||||
echo:
|
||||
if defined Unattended (
|
||||
echo Exiting in 3 seconds...
|
||||
if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3)
|
||||
exit /b
|
||||
)
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
:CheckEdition
|
||||
|
||||
for %%# in (
|
||||
4:Enterprise
|
||||
27:EnterpriseN
|
||||
48:Professional
|
||||
49:ProfessionalN
|
||||
98:CoreN
|
||||
99:CoreCountrySpecific
|
||||
100:CoreSingleLanguage
|
||||
101:Core
|
||||
121:Education
|
||||
122:EducationN
|
||||
125:EnterpriseS
|
||||
126:EnterpriseSN
|
||||
161:ProfessionalWorkstation
|
||||
162:ProfessionalWorkstationN
|
||||
164:ProfessionalEducation
|
||||
165:ProfessionalEducationN
|
||||
175:ServerRdsh
|
||||
188:IoTEnterprise
|
||||
) do for /f "tokens=1,2 delims=:" %%A in ("%%#") do (
|
||||
if %osSKU%==%%A set "osedition=%%B"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Retail/OEM Key List
|
||||
|
||||
:Core
|
||||
set "key=YTMG3-N6DKC-DKB77-7M9GH-8HVX7"
|
||||
exit /b
|
||||
|
||||
:CoreCountrySpecific
|
||||
set "key=N2434-X9D7W-8PF6X-8DV9T-8TYMD"
|
||||
exit /b
|
||||
|
||||
:CoreN
|
||||
set "key=4CPRK-NM3K3-X6XXQ-RXX86-WXCHW"
|
||||
exit /b
|
||||
|
||||
:CoreSingleLanguage
|
||||
set "key=BT79Q-G7N6G-PGBYW-4YWX6-6F4BT"
|
||||
exit /b
|
||||
|
||||
:Education
|
||||
set "key=YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY"
|
||||
exit /b
|
||||
|
||||
:EducationN
|
||||
set "key=84NGF-MHBT6-FXBX8-QWJK7-DRR8H"
|
||||
exit /b
|
||||
|
||||
:Enterprise
|
||||
set "key=XGVPP-NMH47-7TTHJ-W3FW7-8HV2C"
|
||||
exit /b
|
||||
|
||||
:EnterpriseN
|
||||
set "key=3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT"
|
||||
exit /b
|
||||
|
||||
:EnterpriseS
|
||||
if "%winbuild%" EQU "10240" set "key=FWN7H-PF93Q-4GGP8-M8RF3-MDWWW"
|
||||
if "%winbuild%" EQU "14393" set "key=NK96Y-D9CD8-W44CQ-R8YTK-DYJWX"
|
||||
exit /b
|
||||
|
||||
:EnterpriseSN
|
||||
if "%winbuild%" EQU "10240" set "key=8V8WN-3GXBH-2TCMG-XHRX3-9766K"
|
||||
if "%winbuild%" EQU "14393" set "key=2DBW3-N2PJG-MVHW3-G7TDK-9HKR4"
|
||||
exit /b
|
||||
|
||||
:Professional
|
||||
set "key=VK7JG-NPHTM-C97JM-9MPGT-3V66T"
|
||||
exit /b
|
||||
|
||||
:ProfessionalEducation
|
||||
set "key=8PTT6-RNW4C-6V7J2-C2D3X-MHBPB"
|
||||
exit /b
|
||||
|
||||
:ProfessionalEducationN
|
||||
set "key=GJTYN-HDMQY-FRR76-HVGC7-QPF8P"
|
||||
exit /b
|
||||
|
||||
:ProfessionalN
|
||||
set "key=2B87N-8KFHP-DKV6R-Y2C8J-PKCKT"
|
||||
exit /b
|
||||
|
||||
:ProfessionalWorkstation
|
||||
set "key=DXG7C-N36C4-C4HTG-X4T3X-2YV77"
|
||||
exit /b
|
||||
|
||||
:ProfessionalWorkstationN
|
||||
set "key=WYPNQ-8C467-V2W6J-TX4WX-WT2RQ"
|
||||
exit /b
|
||||
|
||||
:ServerRdsh
|
||||
set "key=NJCF7-PW8QT-3324D-688JX-2YV66"
|
||||
exit /b
|
||||
|
||||
:IoTEnterprise
|
||||
set "key=XQQYW-NFFMW-XJPBH-K8732-CKFFD"
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,3 +0,0 @@
|
||||
@echo off
|
||||
start https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ &:: Login required
|
||||
start https://gitlab.com/massgrave/microsoft-activation-scripts
|
@ -1,31 +0,0 @@
|
||||
Use the tool 'HashCheck' to compare hashes.
|
||||
https://github.com/gurnec/HashCheck/releases/latest
|
||||
|
||||
9d5b4b3e761cca9531d64200dfbbfa0dec94f5b0 *Activators\Online_KMS_Activation\BIN\_Info.txt
|
||||
378f9fceabbc4ddd6df9f8e33dbd93a1bc94e3ed *Activators\Online_KMS_Activation\Renewal_Setup.cmd
|
||||
d9f0a4b850060929c2c8195dc5e739ba613ab1f5 *Activators\Check_Activation_Status.cmd
|
||||
40a7a78e629f6610de3dd41d91c153503ee2da08 *Activators\Online_KMS_Activation\Uninstall.cmd
|
||||
c2eaf29daa0e7c021a45c95584b036040da52b04 *Activators\Online_KMS_Activation\_ReadMe.txt
|
||||
f9aa119dbe10d54dab5d99c51e937eaf9727fa41 *Extras\KMS38_Protection\Protect_Unprotect-KMS38.cmd
|
||||
68de64a326cdf1b0336c2ecd42a62fec8e7110f2 *Activators\ReadMe.txt
|
||||
8b81e4db09cf7800d678b0ff8569df7c8ca278f1 *Extras\Download_Genuine_Installation_Media.url
|
||||
232e158d5a1c27ea4222f5557c8a979ba8403b34 *Extras\KMS38_Protection\ReadMe.txt
|
||||
7656476fc6c572c8a6e8777c13ed8b5bf07e35a0 *Extras\OEMRET-Change_W10_Edition.cmd
|
||||
136379c8bee42fb65f1ba7ab5390ec7245df82f0 *Extras\OEMRET-Install_W10_Key.cmd
|
||||
dab684c73a4301b35e2feb09292b5626268f7b5f *Credits.txt
|
||||
4e996f40bfface2d3c65027e61489ac74b5a0264 *Homepages.cmd
|
||||
83fc81d5103c83ef31e447f96da27fe1f6458913 *Extras\Extract_OEM_Folder\Extract_OEM_Folder.cmd
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *Activators\HWID-KMS38_Activation\BIN\ARM64_gatherosstate.exe
|
||||
6c0697f17d1a7d8589eaaf37a4275fa745615f30 *Extras\Extract_OEM_Folder\ReadMe.txt
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *Activators\HWID-KMS38_Activation\BIN\ARM64_slc.dll
|
||||
68da9ab497c6c1e126607a73f3a638749aa0bc88 *Activators\HWID-KMS38_Activation\KMS38_Activation.cmd
|
||||
8fd232b2a0166c6dc015ff427a55966b731c5907 *Activators\HWID-KMS38_Activation\ReadMe_HWID.txt
|
||||
ec3bf25a42b39b6b1b18cfbde14df4bc517f7913 *Activators\HWID-KMS38_Activation\ReadMe_KMS38.txt
|
||||
f5397a68b2afc2453ed61ee3f2f66fb04c03aaca *Activators\Online_KMS_Activation\Activate.cmd
|
||||
48d928b1bec25a56fe896c430c2c034b7866aa7a *Activators\HWID-KMS38_Activation\BIN\ClipUp.exe
|
||||
d30a0e4e5911d3ca705617d17225372731c770e2 *Activators\Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *Activators\HWID-KMS38_Activation\BIN\gatherosstate.exe
|
||||
39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *Activators\Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *Activators\HWID-KMS38_Activation\BIN\slc.dll
|
||||
43eaf2c93e4e5850a24e8abf69f7b037f3f39187 *Activators\HWID-KMS38_Activation\BIN\_Info.txt
|
||||
808b6cc1c96027594a66cfb0e2f118357ae93f31 *Activators\HWID-KMS38_Activation\HWID_Activation.cmd
|
File diff suppressed because it is too large
Load Diff
@ -1,239 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
@cls
|
||||
|
||||
|
||||
:: ==================================================
|
||||
:: Check-Activation-Status-Alternative.cmd
|
||||
:: Written by @abbodi1406 (MDL)
|
||||
:: https://forums.mydigitallife.net/posts/838808
|
||||
:: ==================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
color 07
|
||||
title Check Activation Status [wmic]
|
||||
set wspp=SoftwareLicensingProduct
|
||||
set wsps=SoftwareLicensingService
|
||||
set ospp=OfficeSoftwareProtectionProduct
|
||||
set osps=OfficeSoftwareProtectionService
|
||||
set winApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
set o14App=59a52881-a989-479d-af46-f275c6370663
|
||||
set o15App=0ff1ce15-a989-479d-af46-f275c6370663
|
||||
for %%# in (spp_get,ospp_get,cW1nd0ws,sppw,c0ff1ce15,sppo,osppsvc,ospp14,ospp15) do set "%%#="
|
||||
for /f "tokens=6 delims=[]. " %%# in ('ver') do set winbuild=%%#
|
||||
set "spp_get=Description, DiscoveredKeyManagementServiceMachineName, DiscoveredKeyManagementServiceMachinePort, EvaluationEndDate, GracePeriodRemaining, ID, KeyManagementServiceMachine, KeyManagementServicePort, KeyManagementServiceProductKeyID, LicenseStatus, LicenseStatusReason, Name, PartialProductKey, ProductKeyID, VLActivationInterval, VLRenewalInterval"
|
||||
set "ospp_get=%spp_get%"
|
||||
if %winbuild% geq 9200 set "spp_get=%spp_get%, DiscoveredKeyManagementServiceMachineIpAddress, KeyManagementServiceLookupDomain, ProductKeyChannel, VLActivationTypeEnabled"
|
||||
|
||||
set "SysPath=%Windir%\System32"
|
||||
if exist "%Windir%\Sysnative\reg.exe" (set "SysPath=%Windir%\Sysnative")
|
||||
set "Path=%SysPath%;%Windir%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\"
|
||||
set "line2=************************************************************"
|
||||
set "line3=____________________________________________________________"
|
||||
|
||||
call :casWpkey %wspp% %winApp% cW1nd0ws sppw
|
||||
if %winbuild% geq 9200 call :casWpkey %wspp% %o15App% c0ff1ce15 sppo
|
||||
wmic path %osps% get Version 1>nul 2>nul && (
|
||||
call :casWpkey %ospp% %o14App% osppsvc ospp14
|
||||
if %winbuild% lss 9200 call :casWpkey %ospp% %o15App% osppsvc ospp15
|
||||
)
|
||||
|
||||
echo %line2%
|
||||
echo *** Windows Status ***
|
||||
echo %line2%
|
||||
if not defined cW1nd0ws (
|
||||
echo:
|
||||
echo Error: product key not found.
|
||||
goto :casWcon
|
||||
)
|
||||
set winID=1
|
||||
for /f "tokens=2 delims==" %%# in ('"wmic path %wspp% where (ApplicationID='%winApp%' and PartialProductKey is not null) get ID /value"') do (
|
||||
set "chkID=%%#"
|
||||
call :casWdet "%wspp%" "%wsps%" "%spp_get%"
|
||||
call :casWout
|
||||
echo %line3%
|
||||
echo:
|
||||
)
|
||||
|
||||
:casWcon
|
||||
set winID=0
|
||||
set verbose=1
|
||||
if not defined c0ff1ce15 (
|
||||
if defined osppsvc goto :casWospp
|
||||
goto :casWend
|
||||
)
|
||||
echo %line2%
|
||||
echo *** Office Status ***
|
||||
echo %line2%
|
||||
for /f "tokens=2 delims==" %%# in ('"wmic path %wspp% where (ApplicationID='%o15App%' and PartialProductKey is not null) get ID /value"') do (
|
||||
set "chkID=%%#"
|
||||
call :casWdet "%wspp%" "%wsps%" "%spp_get%"
|
||||
call :casWout
|
||||
echo %line3%
|
||||
echo:
|
||||
)
|
||||
set verbose=0
|
||||
if defined osppsvc goto :casWospp
|
||||
goto :casWend
|
||||
|
||||
:casWospp
|
||||
if %verbose%==1 (
|
||||
echo %line2%
|
||||
echo *** Office Status ***
|
||||
echo %line2%
|
||||
)
|
||||
if defined ospp15 for /f "tokens=2 delims==" %%# in ('"wmic path %ospp% where (ApplicationID='%o15App%' and PartialProductKey is not null) get ID /value"') do (
|
||||
set "chkID=%%#"
|
||||
call :casWdet "%ospp%" "%osps%" "%ospp_get%"
|
||||
call :casWout
|
||||
echo %line3%
|
||||
echo:
|
||||
)
|
||||
if defined ospp14 for /f "tokens=2 delims==" %%# in ('"wmic path %ospp% where (ApplicationID='%o14App%' and PartialProductKey is not null) get ID /value"') do (
|
||||
set "chkID=%%#"
|
||||
call :casWdet "%ospp%" "%osps%" "%ospp_get%"
|
||||
call :casWout
|
||||
echo %line3%
|
||||
echo:
|
||||
)
|
||||
goto :casWend
|
||||
|
||||
:casWpkey
|
||||
wmic path %1 where (ApplicationID='%2' and PartialProductKey is not null) get ID /value 2>nul | findstr /i ID 1>nul && (set %3=1&set %4=1)
|
||||
exit /b
|
||||
|
||||
:casWdet
|
||||
for %%# in (%~3) do set "%%#="
|
||||
if %~1 equ %ospp% for %%# in (DiscoveredKeyManagementServiceMachineIpAddress, KeyManagementServiceLookupDomain, ProductKeyChannel, VLActivationTypeEnabled) do set "%%#="
|
||||
set "cKmsClient="
|
||||
set "cTblClient="
|
||||
set "cAvmClient="
|
||||
set "ExpireMsg="
|
||||
set "_xpr="
|
||||
for /f "tokens=* delims=" %%# in ('"wmic path %~1 where ID='%chkID%' get %~3 /value" ^| findstr ^=') do set "%%#"
|
||||
|
||||
set /a _gpr=(GracePeriodRemaining+1440-1)/1440
|
||||
echo %Description%| findstr /i VOLUME_KMSCLIENT 1>nul && (set cKmsClient=1&set _mTag=Volume)
|
||||
echo %Description%| findstr /i TIMEBASED_ 1>nul && (set cTblClient=1&set _mTag=Timebased)
|
||||
echo %Description%| findstr /i VIRTUAL_MACHINE_ACTIVATION 1>nul && (set cAvmClient=1&set _mTag=Automatic VM)
|
||||
cmd /c exit /b %LicenseStatusReason%
|
||||
set "LicenseReason=%=ExitCode%"
|
||||
set "LicenseMsg=Time remaining: %GracePeriodRemaining% minute(s) (%_gpr% day(s))"
|
||||
if %_gpr% GEQ 1 for /f "tokens=* delims=" %%# in ('powershell -nop -ep bypass -c "$([DateTime]::Now.addMinutes(%GracePeriodRemaining%)).ToString('yyyy-MM-dd HH:mm:ss')" 2^>nul') do set "_xpr=%%#"
|
||||
|
||||
if %LicenseStatus% EQU 0 (
|
||||
set "License=Unlicensed"
|
||||
set "LicenseMsg="
|
||||
)
|
||||
if %LicenseStatus% EQU 1 (
|
||||
set "License=Licensed"
|
||||
set "LicenseMsg="
|
||||
if %GracePeriodRemaining% EQU 0 (
|
||||
if %winID% EQU 1 (set "ExpireMsg=The machine is permanently activated.") else (set "ExpireMsg=The product is permanently activated.")
|
||||
) else (
|
||||
set "LicenseMsg=%_mTag% activation expiration: %GracePeriodRemaining% minute(s) (%_gpr% day(s))"
|
||||
if defined _xpr set "ExpireMsg=%_mTag% activation will expire %_xpr%"
|
||||
)
|
||||
)
|
||||
if %LicenseStatus% EQU 2 (
|
||||
set "License=Initial grace period"
|
||||
if defined _xpr set "ExpireMsg=Initial grace period ends %_xpr%"
|
||||
)
|
||||
if %LicenseStatus% EQU 3 (
|
||||
set "License=Additional grace period (KMS license expired or hardware out of tolerance)"
|
||||
if defined _xpr set "ExpireMsg=Additional grace period ends %_xpr%"
|
||||
)
|
||||
if %LicenseStatus% EQU 4 (
|
||||
set "License=Non-genuine grace period."
|
||||
if defined _xpr set "ExpireMsg=Non-genuine grace period ends %_xpr%"
|
||||
)
|
||||
if %LicenseStatus% EQU 6 (
|
||||
set "License=Extended grace period"
|
||||
if defined _xpr set "ExpireMsg=Extended grace period ends %_xpr%"
|
||||
)
|
||||
if %LicenseStatus% EQU 5 (
|
||||
set "License=Notification"
|
||||
if "%LicenseReason%"=="C004F200" (set "LicenseMsg=Notification Reason: 0xC004F200 (non-genuine)."
|
||||
) else if "%LicenseReason%"=="C004F009" (set "LicenseMsg=Notification Reason: 0xC004F009 (grace time expired)."
|
||||
) else (set "LicenseMsg=Notification Reason: 0x%LicenseReason%"
|
||||
)
|
||||
)
|
||||
if %LicenseStatus% GTR 6 (
|
||||
set "License=Unknown"
|
||||
set "LicenseMsg="
|
||||
)
|
||||
if not defined cKmsClient exit /b
|
||||
|
||||
if %KeyManagementServicePort%==0 set KeyManagementServicePort=1688
|
||||
set "KmsReg=Registered KMS machine name: %KeyManagementServiceMachine%:%KeyManagementServicePort%"
|
||||
if "%KeyManagementServiceMachine%"=="" set "KmsReg=Registered KMS machine name: KMS name not available"
|
||||
|
||||
if %DiscoveredKeyManagementServiceMachinePort%==0 set DiscoveredKeyManagementServiceMachinePort=1688
|
||||
set "KmsDns=KMS machine name from DNS: %DiscoveredKeyManagementServiceMachineName%:%DiscoveredKeyManagementServiceMachinePort%"
|
||||
if "%DiscoveredKeyManagementServiceMachineName%"=="" set "KmsDns=DNS auto-discovery: KMS name not available"
|
||||
|
||||
for /f "tokens=* delims=" %%# in ('"wmic path %~2 get ClientMachineID, KeyManagementServiceHostCaching /value" ^| findstr ^=') do set "%%#"
|
||||
if /i %KeyManagementServiceHostCaching%==True (set KeyManagementServiceHostCaching=Enabled) else (set KeyManagementServiceHostCaching=Disabled)
|
||||
|
||||
if %winbuild% lss 9200 exit /b
|
||||
if %~1 equ %ospp% exit /b
|
||||
|
||||
if "%DiscoveredKeyManagementServiceMachineIpAddress%"=="" set "DiscoveredKeyManagementServiceMachineIpAddress=not available"
|
||||
|
||||
if "%KeyManagementServiceLookupDomain%"=="" set "KeyManagementServiceLookupDomain="
|
||||
|
||||
if %VLActivationTypeEnabled% EQU 3 (
|
||||
set VLActivationType=Token
|
||||
) else if %VLActivationTypeEnabled% EQU 2 (
|
||||
set VLActivationType=KMS
|
||||
) else if %VLActivationTypeEnabled% EQU 1 (
|
||||
set VLActivationType=AD
|
||||
) else (
|
||||
set VLActivationType=All
|
||||
)
|
||||
exit /b
|
||||
|
||||
:casWout
|
||||
echo:
|
||||
echo Name: %Name%
|
||||
echo Description: %Description%
|
||||
echo Activation ID: %ID%
|
||||
echo Extended PID: %ProductKeyID%
|
||||
if defined ProductKeyChannel echo Product Key Channel: %ProductKeyChannel%
|
||||
echo Partial Product Key: %PartialProductKey%
|
||||
echo License Status: %License%
|
||||
if defined LicenseMsg echo %LicenseMsg%
|
||||
if not %LicenseStatus%==0 if not %EvaluationEndDate:~0,8%==16010101 echo Evaluation End Date: %EvaluationEndDate:~0,4%-%EvaluationEndDate:~4,2%-%EvaluationEndDate:~6,2% %EvaluationEndDate:~8,2%:%EvaluationEndDate:~10,2% UTC
|
||||
if not defined cKmsClient (
|
||||
if defined ExpireMsg echo:&echo: %ExpireMsg%
|
||||
exit /b
|
||||
)
|
||||
if defined VLActivationTypeEnabled echo Configured Activation Type: %VLActivationType%
|
||||
echo:
|
||||
if not %LicenseStatus%==1 (
|
||||
echo Please activate the product in order to update KMS client information values.
|
||||
exit /b
|
||||
)
|
||||
echo Most recent activation information:
|
||||
echo Key Management Service client information
|
||||
echo: Client Machine ID (CMID): %ClientMachineID%
|
||||
echo: %KmsDns%
|
||||
echo: %KmsReg%
|
||||
if defined DiscoveredKeyManagementServiceMachineIpAddress echo: KMS machine IP address: %DiscoveredKeyManagementServiceMachineIpAddress%
|
||||
echo: KMS machine extended PID: %KeyManagementServiceProductKeyID%
|
||||
echo: Activation interval: %VLActivationInterval% minutes
|
||||
echo: Renewal interval: %VLRenewalInterval% minutes
|
||||
echo: KMS host caching: %KeyManagementServiceHostCaching%
|
||||
if defined KeyManagementServiceLookupDomain echo: KMS SRV record lookup domain: %KeyManagementServiceLookupDomain%
|
||||
if defined ExpireMsg echo:&echo: %ExpireMsg%
|
||||
exit /b
|
||||
|
||||
:casWend
|
||||
echo:
|
||||
echo Press any key to exit.
|
||||
pause >nul
|
||||
exit /b
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,45 +0,0 @@
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe Virus Total = 0/71
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll Virus Total = 0/68
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe Virus Total = 0/69
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll Virus Total = 0/67
|
||||
48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe Virus Total = 0/68
|
||||
|
||||
Virus Total Report Date: 2020-01-21
|
||||
|
||||
- File Sources:
|
||||
|
||||
- ClipUp.exe (Original):
|
||||
From Windows server 2016 x64 ISO
|
||||
|
||||
- gatherosstate.exe (Original):
|
||||
From Windows 10 x86 14393 ADK
|
||||
|
||||
- ARM64_gatherosstate.exe (Original):
|
||||
From Windows 10 ARM64 18362 ISO
|
||||
|
||||
- ARM64_slc.dll and slc.dll:
|
||||
|
||||
Original slshim
|
||||
https://github.com/vyvojar/slshim
|
||||
|
||||
Improved by @mspaintmsi
|
||||
https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://github.com/massgravel/MASSGRAVE
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
Source code is included.
|
||||
slc.dll is based on Integrated_Patcher_2 method.
|
||||
It is currently in use in HWID/KMS38 Activation script.
|
||||
|
||||
____________________________________________________________________________________________________
|
||||
|
||||
You can safely delete the following files if it's not required for you.
|
||||
|
||||
ClipUp.exe - Required to KMS38 activate Server Cor and Acor editions.
|
||||
ARM64_gatherosstate.exe and ARM64_slc.dll - Required to activate ARM64 Arch Windows 10.
|
||||
|
||||
====================================================================================================
|
Binary file not shown.
Binary file not shown.
@ -1,763 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
:: For unattended mode, run the script with /u parameter.
|
||||
|
||||
|
||||
|
||||
::=========================================================================================================
|
||||
: Credits:
|
||||
::=========================================================================================================
|
||||
::
|
||||
:: @mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade.
|
||||
:: and Created various methods for HWID/KMS38 Activation
|
||||
:: *Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
:: https://github.com/massgravel/MASSGRAVE
|
||||
:: https://gitlab.com/massgrave/massgrave
|
||||
::
|
||||
:: @vyvojar Original slshim (slc.dll)
|
||||
:: https://github.com/vyvojar/slshim/releases
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: HWID/KMS38 methods Suggestions and improvements:-
|
||||
::
|
||||
:: @sponpa New ideas for the HWID/KM38 Generation
|
||||
:: https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257
|
||||
::
|
||||
:: @leitek8 Improvements for the slc.dll
|
||||
:: https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: Kind Help:-
|
||||
::
|
||||
:: Thanks for having my back and answering all of my queries. (In no particular order)
|
||||
::
|
||||
:: @AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
::
|
||||
:: @BorrowedWifi for providing support in fixing English grammar errors in the Read Me.
|
||||
:: @Chibi ANUBIS and @smashed for testing scripts for ARM64 system.
|
||||
::
|
||||
:: Special thanks to @abbodi1406 for providing the great help.
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only
|
||||
:: manage batch script tool which is based on the above mentioned original co-authors activation methods.
|
||||
::
|
||||
::=========================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
title [HWID] Digital License Activation
|
||||
set Unattended=
|
||||
set _args=
|
||||
set _elev=
|
||||
set "_arg1=%~1"
|
||||
if not defined _arg1 goto :DL_NoProgArgs
|
||||
set "_args=%~1"
|
||||
set "_arg2=%~2"
|
||||
if defined _arg2 set "_args=%~1 %~2"
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
if /i "%%A"=="/u" set Unattended=1)
|
||||
:DL_NoProgArgs
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell -nop -ep bypass -c"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "Red="white" "DarkRed""
|
||||
set "Green="white" "DarkGreen""
|
||||
set "Magenta="white" "darkmagenta""
|
||||
set "Gray="white" "darkgray""
|
||||
set "Black="white" "Black""
|
||||
set "ELine=echo: &call :DL_color "==== ERROR ====" %Red% &echo:"
|
||||
set slp=SoftwareLicensingProduct
|
||||
set sls=SoftwareLicensingService
|
||||
set wApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 10240 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 10.
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :DL_Passed
|
||||
) || (
|
||||
if defined _elev goto :DL_E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
if defined _args set _PSarg="""%~f0""" -el """%_args%"""
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :DL_E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:DL_E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto DL_Done
|
||||
|
||||
:DL_Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
:: Written by @abbodi1406
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode con: cols=102 lines=31
|
||||
|
||||
:: Check Windows OS name
|
||||
|
||||
set winos=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
|
||||
call :DL_CheckPermAct
|
||||
if defined PermAct (
|
||||
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
call :DL_color1 " " %Black% &call :DL_color "Checking: %winos% is Permanently Activated." %Green%
|
||||
call :DL_color1 " " %Black% &call :DL_color "Activation is not required." %Gray%
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
if defined Unattended goto DL_Done
|
||||
|
||||
echo Press [1] or [2] button in Keyboard :
|
||||
echo ___________________________________________
|
||||
echo:
|
||||
choice /C:12 /N /M "> [1] Activate [2] Exit : "
|
||||
|
||||
if errorlevel 2 exit /b
|
||||
if errorlevel 1 Goto DL_Continue
|
||||
)
|
||||
|
||||
:DL_Continue
|
||||
cls
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cd /d "!_work!"
|
||||
pushd "!_work!"
|
||||
|
||||
if not exist "!_work!\BIN\" (
|
||||
%ELine%
|
||||
echo 'BIN' Folder does not exist in current directory.
|
||||
echo It's supposed to have files required for the Activation.
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo %winos%| findstr /I Evaluation >nul && set Eval=1||set Eval=
|
||||
if defined Eval (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild%] HWID Activation is Not Supported.
|
||||
echo %winos%| findstr /I Server >nul && (
|
||||
echo Server Evaluation cannot be activated. Convert it to full Server OS.
|
||||
) || (
|
||||
echo Evaluation Editions cannot be activated. Install full Windows OS.
|
||||
)
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check SKU value
|
||||
|
||||
set SKU=
|
||||
for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
|
||||
if "%osSKU%"=="" (
|
||||
%ELine%
|
||||
echo SKU value was not detected properly. Aborting...
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
set osedition=
|
||||
call :_CheckEdition %nul%
|
||||
|
||||
if "%osedition%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild% ^| SKU:%osSKU%] HWID Activation is Not Supported.
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
:: Check Windows Architecture
|
||||
|
||||
set arch=
|
||||
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > nul && set arch=x86|| set arch=x64
|
||||
wmic os get osarchitecture | find /i "ARM" > nul && set arch=ARM64|| echo %PROCESSOR_ARCHITECTURE% | find /i "ARM" > nul && set arch=ARM64
|
||||
|
||||
if "%arch%"=="ARM64" call :DL_check ARM64_gatherosstate.exe ARM64_slc.dll
|
||||
if not "%arch%"=="ARM64" call :DL_check gatherosstate.exe slc.dll
|
||||
if defined _miss goto DL_Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
set key=
|
||||
call :%osedition% %nul%
|
||||
|
||||
if "%key%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild%] HWID Activation is Not Supported.
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
echo Checking OS Info [%winos% ^| %winbuild% ^| %arch%]
|
||||
|
||||
set "Chkint=Checking Internet Connection "
|
||||
set IntCon=
|
||||
ping -n 1 www.microsoft.com %nul% && (
|
||||
set IntCon=1
|
||||
echo %Chkint% [Connected]
|
||||
) || (
|
||||
call :DL_color "%Chkint% [Not connected] [Ping www.microsoft.com - Failed]" %Red%
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo:
|
||||
set _1=ClipSVC
|
||||
set _2=wlidsvc
|
||||
set _3=sppsvc
|
||||
set _4=wuauserv
|
||||
|
||||
for %%# in (%_1% %_2% %_3% %_4%) do call :DL_ServiceCheck %%#
|
||||
|
||||
set "CLecho=Checking %_1% [Service Status -%Cl_state%] [Startup Type -%Cl_start_type%]"
|
||||
set "wlecho=Checking %_2% [Service Status -%wl_state%] [Startup Type -%wl_start_type%]"
|
||||
set "specho=Checking %_3% [Service Status -%sp_state%] [Startup Type -%sp_start_type%]"
|
||||
set "wuecho=Checking %_4% [Service Status -%wu_state%] [Startup Type -%wu_start_type%]"
|
||||
|
||||
if not "%Cl_start_type%"=="Demand" (call :DL_color "%CLecho%" %Red% & set Clst_e=1) else (echo %CLecho%)
|
||||
if not "%wl_start_type%"=="Demand" (call :DL_color "%wlecho%" %Red% & set wlst_e=1) else (echo %wlecho%)
|
||||
if not "%sp_start_type%"=="Delayed-Auto" (call :DL_color "%specho%" %Red% & set spst_e=1) else (echo %specho%)
|
||||
|
||||
if "%wu_start_type%"=="Disabled" (set "_C=%Red%") else (set "_C=%Gray%")
|
||||
if not "%wu_start_type%"=="Auto" (call :DL_color "%wuecho%" %_C% & set wust_e=1) else (echo %wuecho%)
|
||||
|
||||
echo:
|
||||
if defined Clst_e (sc config %_1% start= Demand %nul% && set Clst_s=%_1%-Demand || set Clst_u=%_1%-Demand )
|
||||
if defined wlst_e (sc config %_2% start= Demand %nul% && set wlst_s=%_2%-Demand || set wlst_u=%_2%-Demand )
|
||||
if defined spst_e (sc config %_3% start= Delayed-Auto %nul% && set spst_s=%_3%-Delayed-Auto || set spst_u=%_3%-Delayed-Auto )
|
||||
if defined wust_e (sc config %_4% start= Auto %nul% && set wust_s=%_4%-Auto || set wust_u=%_4%-Auto )
|
||||
|
||||
for %%# in (Clst_s,wlst_s,spst_s,wust_s) do if defined %%# set st_s=1
|
||||
if defined st_s (echo Changing services Startup Type to [ %Clst_s%%wlst_s%%spst_s%%wust_s%] [Successful])
|
||||
|
||||
for %%# in (Clst_u,wlst_u,spst_u,wust_u) do if defined %%# set st_u=1
|
||||
if defined st_u (call :DL_color "Error in changing Startup Type to [ %Clst_u%%wlst_u%%spst_u%%wust_u%]" %Red%)
|
||||
|
||||
if not "%Cl_state%"=="Running" (%_psc% start-service %_1% %nul% && set Cl_s=%_1% || set Cl_u=%_1% )
|
||||
if not "%wl_state%"=="Running" (%_psc% start-service %_2% %nul% && set wl_s=%_2% || set wl_u=%_2% )
|
||||
if not "%sp_state%"=="Running" (%_psc% start-service %_3% %nul% && set sp_s=%_3% || set sp_u=%_3% )
|
||||
if not "%wu_state%"=="Running" (%_psc% start-service %_4% %nul% && set wu_s=%_4% || set wu_u=%_4% )
|
||||
|
||||
for %%# in (Cl_s,wl_s,sp_s,wu_s) do if defined %%# set s_s=1
|
||||
if defined s_s (echo Starting services [ %Cl_s%%wl_s%%sp_s%%wu_s%] [Successful])
|
||||
|
||||
for %%# in (Cl_u,wl_u,sp_u,wu_u) do if defined %%# set s_u=1
|
||||
if defined s_u (call :DL_color "Error in starting services [ %Cl_u%%wl_u%%sp_u%%wu_u%]" %Red%)
|
||||
|
||||
if defined wust_u (
|
||||
call :DL_color "Most likely the Windows Update Service was blocked with a tool, identify and unblock it." %Magenta%
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Thanks to @abbodi1406 for the WMI methods
|
||||
|
||||
echo:
|
||||
set _channel=
|
||||
set _Keyexist=
|
||||
set _partial=
|
||||
|
||||
for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#"
|
||||
for %%A in (MAK, OEM, Retail) do echo %_channel%| findstr /i %%A >nul && set _Keyexist=1
|
||||
|
||||
if defined _Keyexist (
|
||||
for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get PartialProductKey /value 2^>nul') do set "_partial=%%#"
|
||||
call echo Checking Installed Product Key [%_channel%] [Partial Key -%%_partial%%]
|
||||
)
|
||||
|
||||
if not defined _Keyexist (
|
||||
set "InsKey=Installing Generic Product Key "
|
||||
wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="%key%" %nul% && (
|
||||
for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#"
|
||||
call echo %%InsKey%% [%key%] [%%_channel%%] [Successful]
|
||||
) || (
|
||||
call :DL_color "%%InsKey%% [%key%] [Unsuccessful]" %Red%
|
||||
)
|
||||
)
|
||||
|
||||
wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Files are copied to temp to generate ticket to avoid possible issues in case the path contains special character or non English names.
|
||||
|
||||
echo:
|
||||
set "temp_=%SystemRoot%\Temp\_Ticket_Work"
|
||||
if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul%
|
||||
md "%temp_%\" %nul%
|
||||
|
||||
cd /d "!_work!\BIN\"
|
||||
|
||||
set ARM64_file=
|
||||
if "%arch%"=="ARM64" set ARM64_file=ARM64_
|
||||
|
||||
copy /y /b "%ARM64_file%gatherosstate.exe" "%temp_%\gatherosstate.exe" %nul%
|
||||
copy /y /b "%ARM64_file%slc.dll" "%temp_%\slc.dll" %nul%
|
||||
|
||||
set cfailed=
|
||||
if not exist "%temp_%\gatherosstate.exe" set cfailed=1
|
||||
if not exist "%temp_%\slc.dll" set cfailed=1
|
||||
|
||||
set "copyfiles=Copying Required Files to Temp "
|
||||
if defined cfailed (
|
||||
call :DL_color "%copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Unsuccessful] Aborting..." %Red%
|
||||
goto :DL_Act_Cont
|
||||
) else (
|
||||
echo %copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Successful]
|
||||
)
|
||||
|
||||
cd /d "%temp_%\"
|
||||
attrib -R -A -S -H *.*
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set "GatherMod=Creating modified gatherosstate "
|
||||
|
||||
if not "%arch%"=="ARM64" (
|
||||
rundll32 "%temp_%\slc.dll",PatchGatherosstate %nul%
|
||||
if not exist "%temp_%\gatherosstatemodified.exe" (
|
||||
call :DL_color "%GatherMod% [Unsuccessful] Aborting" %Red%
|
||||
call :DL_color "Most likely Antivirus program blocked the process, disable it and-or create proper exclsuions." %Magenta%
|
||||
goto :DL_Act_Cont
|
||||
) else (
|
||||
echo %GatherMod% [Successful]
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set _gather=
|
||||
if "%arch%"=="ARM64" (
|
||||
set _gather=gatherosstate.exe
|
||||
) else (
|
||||
set _gather=gatherosstatemodified.exe
|
||||
)
|
||||
|
||||
:: Multiple attempts to generate the ticket because in some cases, one attempt is not enough.
|
||||
|
||||
set "_noxml=if not exist "%temp_%\GenuineTicket.xml""
|
||||
|
||||
start /wait "" "%temp_%/%_gather%" %nul%
|
||||
%_noxml% timeout /t 3 %nul%
|
||||
%_noxml% call "%temp_%/%_gather%" %nul%
|
||||
%_noxml% timeout /t 3 %nul%
|
||||
%_noxml% "%temp_%/%_gather%" %nul%
|
||||
%_noxml% timeout /t 3 %nul%
|
||||
|
||||
set "GenTicket=Generating GenuineTicket.xml "
|
||||
%_noxml% (
|
||||
call :DL_color "%GenTicket% [Unsuccessful] Aborting..." %Red%
|
||||
goto :DL_Act_Cont
|
||||
) else (
|
||||
echo %GenTicket% [Successful]
|
||||
)
|
||||
|
||||
:: clipup -v -o -altto <Ticket path> method to apply ticket was not used to avoid the certain issues in case the username have spaces or non English names.
|
||||
|
||||
set "InsTicket=Installing GenuineTicket.xml "
|
||||
set "TDir=%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket"
|
||||
if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul%
|
||||
copy /y /b "%temp_%\GenuineTicket.xml" "%TDir%\GenuineTicket.xml" %nul%
|
||||
|
||||
if not exist "%TDir%\GenuineTicket.xml" (
|
||||
call :DL_color "Failed to copy Ticket to [%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket\] Aborting..." %Red%
|
||||
goto :DL_Act_Cont
|
||||
)
|
||||
|
||||
set "_xmlexist=if exist "%TDir%\GenuineTicket.xml""
|
||||
|
||||
%_psc% Restart-Service ClipSVC %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
|
||||
%_xmlexist% (
|
||||
%_psc% stop-Service ClipSVC %nul%
|
||||
%_psc% start-Service ClipSVC %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
)
|
||||
|
||||
set fallback_=
|
||||
%_xmlexist% (
|
||||
set fallback_=1
|
||||
%nul% clipup -v -o
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
)
|
||||
|
||||
%_xmlexist% (
|
||||
call :DL_color "%InsTicket% [Unsuccessful] Aborting..." %Red%
|
||||
if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul%
|
||||
goto :DL_Act_Cont
|
||||
) else (
|
||||
if not defined fallback_ echo %InsTicket% [Successful]
|
||||
if defined fallback_ call :DL_color "%InsTicket% [Successful] [Fallback method: clipup -v -o]" %Red%
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo:
|
||||
echo Activating...
|
||||
echo:
|
||||
|
||||
wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" call Activate %nul%
|
||||
call :DL_CheckPermAct
|
||||
if defined PermAct goto DL_Act_successful
|
||||
|
||||
call :DL_ReTry
|
||||
if not "%ErrCode%"=="" set "Error_Code_=[Error Code %ErrCode%]"
|
||||
call :DL_CheckPermAct
|
||||
|
||||
:DL_Act_successful
|
||||
|
||||
if defined PermAct (
|
||||
call :DL_color "%winos% is permanently activated." %Green%
|
||||
goto :DL_Act_Cont
|
||||
)
|
||||
|
||||
call :DL_color "Activation Failed %Error_Code_%" %Red%
|
||||
call :DL_color "Try the Troubleshoot Guide listed in the ReadMe." %Magenta%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_Act_Cont
|
||||
|
||||
echo:
|
||||
set "changing_wust_back=Changing wu Startup Type back to [%wu_start_type%]"
|
||||
if defined wust_s (
|
||||
sc config %_4% start= %wu_start_type% %nul% && echo %changing_wust_back% [Successful]
|
||||
) || (
|
||||
call :DL_color "%changing_wust_back% [Unsuccessful]" %Red%
|
||||
)
|
||||
|
||||
cd /d "!_work!\"
|
||||
if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul%
|
||||
set "delFiles=Cleaning Temp Files "
|
||||
if exist "%temp_%\" (
|
||||
call :DL_color "%delFiles% [Unsuccessful]" %Red%
|
||||
) else (
|
||||
echo %delFiles% [Successful]
|
||||
)
|
||||
|
||||
goto DL_Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Echo all the missing files.
|
||||
:: Written by @abbodi1406 (MDL)
|
||||
|
||||
:DL_check
|
||||
|
||||
for %%# in (%1 %2) do (if not exist "!_work!\BIN\%%#" (if defined _miss (set "_miss=!_miss! %%#") else (set "_miss=%%#")))
|
||||
if defined _miss (
|
||||
%ELine%
|
||||
echo Following required file^(s^) is missing in 'BIN' folder. Aborting...
|
||||
echo:
|
||||
echo !_miss!
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_ServiceCheck
|
||||
|
||||
:: Detect Service status and start type
|
||||
:: Written by @RPO
|
||||
|
||||
for /f "tokens=1,3 delims=: " %%a in ('sc query %1') do (if /i %%a==state set "state=%%b")
|
||||
for /f "tokens=1-4 delims=: " %%a in ('sc qc %1') do (if /i %%a==start_type set "start_type=%%c %%d")
|
||||
|
||||
if /i "%state%"=="STOPPED" set state=Stopped
|
||||
if /i "%state%"=="RUNNING" set state=Running
|
||||
|
||||
if /i "%start_type%"=="auto_start (delayed)" set start_type=Delayed-Auto
|
||||
if /i "%start_type%"=="auto_start " set start_type=Auto
|
||||
if /i "%start_type%"=="demand_start " set start_type=Demand
|
||||
if /i "%start_type%"=="disabled " set start_type=Disabled
|
||||
|
||||
for %%i in (%*) do (
|
||||
if /i "%%i"=="%_4%" set "wu_start_type=%start_type%" & set "wu_state=%state%"
|
||||
if /i "%%i"=="%_3%" set "sp_start_type=%start_type%" & set "sp_state=%state%"
|
||||
if /i "%%i"=="%_1%" set "Cl_start_type=%start_type%" & set "Cl_state=%state%"
|
||||
if /i "%%i"=="%_2%" set "wl_start_type=%start_type%" & set "wl_state=%state%"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_CheckPermAct
|
||||
|
||||
:: Check Windows Permanent Activation status
|
||||
:: Written by @abbodi1406
|
||||
|
||||
wmic path %slp% where (LicenseStatus='1' and GracePeriodRemaining='0' and PartialProductKey is not NULL) get Name 2>nul | findstr /i "Windows" 1>nul && set PermAct=1||set PermAct=
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_ReTry
|
||||
|
||||
if defined IntCon if not defined wust_u if not defined wu_u call :DL_ReTry_2
|
||||
|
||||
:: Detect Error Code in the Activation
|
||||
:: Written by @abbodi1406
|
||||
|
||||
wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" call Activate %nul%
|
||||
set errorcode=%errorlevel%
|
||||
cmd /c exit /b %errorcode%
|
||||
if %errorcode% NEQ 0 set "ErrCode=0x%=ExitCode%"
|
||||
exit /b
|
||||
|
||||
:DL_ReTry_2
|
||||
|
||||
set app=
|
||||
%_psc% Restart-Service sppsvc %nul%
|
||||
|
||||
:: Specific rearm - reset the licensing status of the Windows SKU and app, without the need to restart the system.
|
||||
:: wmic method by @abbodi1406
|
||||
|
||||
for /f "tokens=2 delims==" %%G in ('"wmic path %slp% where (ApplicationID='%wApp%' AND ProductKeyID like '%%-%%') get ID /value" 2^>nul') do (set app=%%G)
|
||||
wmic path %sls% where __CLASS='%sls%' call ReArmApp ApplicationId="%wApp%" %nul%
|
||||
wmic path %slp% where ID='%app%' call ReArmsku %nul%
|
||||
|
||||
wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
cscript /nologo %windir%\system32\slmgr.vbs -ato %nul%
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_color
|
||||
|
||||
%_psc% write-host '%1' -fore '%2' -back '%3'
|
||||
exit /b
|
||||
|
||||
:DL_color1
|
||||
|
||||
%_psc% write-host '%1' -fore '%2' -back '%3' -NoNewline
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_Done
|
||||
|
||||
echo:
|
||||
if defined Unattended (
|
||||
echo Exiting in 3 seconds...
|
||||
if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3)
|
||||
:: set a value to use in certain conditions of setupcomplete.cmd file.
|
||||
if defined key if not defined PermAct (endlocal & endlocal & set HWIDAct=1)
|
||||
exit /b
|
||||
)
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
:_CheckEdition
|
||||
|
||||
for %%# in (
|
||||
4-Enterprise
|
||||
27-EnterpriseN
|
||||
48-Professional
|
||||
49-ProfessionalN
|
||||
98-CoreN
|
||||
99-CoreCountrySpecific
|
||||
100-CoreSingleLanguage
|
||||
101-Core
|
||||
121-Education
|
||||
122-EducationN
|
||||
125-EnterpriseS
|
||||
126-EnterpriseSN
|
||||
161-ProfessionalWorkstation
|
||||
162-ProfessionalWorkstationN
|
||||
164-ProfessionalEducation
|
||||
165-ProfessionalEducationN
|
||||
175-ServerRdsh
|
||||
188-IoTEnterprise
|
||||
) do for /f "tokens=1,2 delims=-" %%A in ("%%#") do (
|
||||
if %osSKU%==%%A set "osedition=%%B"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Retail_OEM Key List
|
||||
|
||||
:Core
|
||||
set "key=YTMG3-N6DKC-DKB77-7M9GH-8HVX7"
|
||||
exit /b
|
||||
|
||||
:CoreCountrySpecific
|
||||
set "key=N2434-X9D7W-8PF6X-8DV9T-8TYMD"
|
||||
exit /b
|
||||
|
||||
:CoreN
|
||||
set "key=4CPRK-NM3K3-X6XXQ-RXX86-WXCHW"
|
||||
exit /b
|
||||
|
||||
:CoreSingleLanguage
|
||||
set "key=BT79Q-G7N6G-PGBYW-4YWX6-6F4BT"
|
||||
exit /b
|
||||
|
||||
:Education
|
||||
set "key=YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY"
|
||||
exit /b
|
||||
|
||||
:EducationN
|
||||
set "key=84NGF-MHBT6-FXBX8-QWJK7-DRR8H"
|
||||
exit /b
|
||||
|
||||
:Enterprise
|
||||
set "key=XGVPP-NMH47-7TTHJ-W3FW7-8HV2C"
|
||||
exit /b
|
||||
|
||||
:EnterpriseN
|
||||
set "key=3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT"
|
||||
exit /b
|
||||
|
||||
:EnterpriseS
|
||||
if "%winbuild%" EQU "10240" set "key=FWN7H-PF93Q-4GGP8-M8RF3-MDWWW"
|
||||
if "%winbuild%" EQU "14393" set "key=NK96Y-D9CD8-W44CQ-R8YTK-DYJWX"
|
||||
exit /b
|
||||
|
||||
:EnterpriseSN
|
||||
if "%winbuild%" EQU "10240" set "key=8V8WN-3GXBH-2TCMG-XHRX3-9766K"
|
||||
if "%winbuild%" EQU "14393" set "key=2DBW3-N2PJG-MVHW3-G7TDK-9HKR4"
|
||||
exit /b
|
||||
|
||||
:Professional
|
||||
set "key=VK7JG-NPHTM-C97JM-9MPGT-3V66T"
|
||||
exit /b
|
||||
|
||||
:ProfessionalEducation
|
||||
set "key=8PTT6-RNW4C-6V7J2-C2D3X-MHBPB"
|
||||
exit /b
|
||||
|
||||
:ProfessionalEducationN
|
||||
set "key=GJTYN-HDMQY-FRR76-HVGC7-QPF8P"
|
||||
exit /b
|
||||
|
||||
:ProfessionalN
|
||||
set "key=2B87N-8KFHP-DKV6R-Y2C8J-PKCKT"
|
||||
exit /b
|
||||
|
||||
:ProfessionalWorkstation
|
||||
set "key=DXG7C-N36C4-C4HTG-X4T3X-2YV77"
|
||||
exit /b
|
||||
|
||||
:ProfessionalWorkstationN
|
||||
set "key=WYPNQ-8C467-V2W6J-TX4WX-WT2RQ"
|
||||
exit /b
|
||||
|
||||
:ServerRdsh
|
||||
set "key=NJCF7-PW8QT-3324D-688JX-2YV66"
|
||||
exit /b
|
||||
|
||||
:IoTEnterprise
|
||||
set "key=XQQYW-NFFMW-XJPBH-K8732-CKFFD"
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,885 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
:: For unattended mode, run the script with /u parameter.
|
||||
|
||||
|
||||
|
||||
::=========================================================================================================
|
||||
: Credits:
|
||||
::=========================================================================================================
|
||||
::
|
||||
:: @mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade.
|
||||
:: and Created various methods for HWID/KMS38 Activation
|
||||
:: *Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
:: https://github.com/massgravel/MASSGRAVE
|
||||
:: https://gitlab.com/massgrave/massgrave
|
||||
::
|
||||
:: @vyvojar Original slshim (slc.dll)
|
||||
:: https://github.com/vyvojar/slshim/releases
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: HWID/KMS38 methods Suggestions and improvements:-
|
||||
::
|
||||
:: @sponpa New ideas for the HWID/KM38 Generation
|
||||
:: https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257
|
||||
::
|
||||
:: @leitek8 Improvements for the slc.dll
|
||||
:: https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: Kind Help:-
|
||||
::
|
||||
:: Thanks for having my back and answering all of my queries. (In no particular order)
|
||||
::
|
||||
:: @AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
::
|
||||
:: @BorrowedWifi for providing support in fixing English grammar errors in the Read Me.
|
||||
:: @Chibi ANUBIS and @smashed for testing scripts for ARM64 system.
|
||||
::
|
||||
:: Special thanks to @abbodi1406 for providing the great help.
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only
|
||||
:: manage batch script tool which is based on the above mentioned original co-authors activation methods.
|
||||
::
|
||||
::=========================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
title KMS38 Activation
|
||||
set Unattended=
|
||||
set _args=
|
||||
set _elev=
|
||||
set "_arg1=%~1"
|
||||
if not defined _arg1 goto :K38_NoProgArgs
|
||||
set "_args=%~1"
|
||||
set "_arg2=%~2"
|
||||
if defined _arg2 set "_args=%~1 %~2"
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
if /i "%%A"=="/u" set Unattended=1)
|
||||
:K38_NoProgArgs
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell -nop -ep bypass -c"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "Red="white" "DarkRed""
|
||||
set "Green="white" "DarkGreen""
|
||||
set "Magenta="white" "darkmagenta""
|
||||
set "Gray="white" "darkgray""
|
||||
set "Black="white" "Black""
|
||||
set "ELine=echo: &call :K38_color "==== ERROR ====" %Red% &echo:"
|
||||
set slp=SoftwareLicensingProduct
|
||||
set sls=SoftwareLicensingService
|
||||
set wApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 14393 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 10 / Server - 1607 [14393] and later builds.
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :K38_Passed
|
||||
) || (
|
||||
if defined _elev goto :K38_E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
if defined _args set _PSarg="""%~f0""" -el """%_args%"""
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :K38_E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:K38_E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto K38_Done
|
||||
|
||||
:K38_Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
:: Written by @abbodi1406
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode con: cols=102 lines=30
|
||||
|
||||
:: Check Windows OS name
|
||||
|
||||
set winos=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
|
||||
call :K38_CheckPermAct
|
||||
if defined PermAct (
|
||||
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
call :K38_color1 " " %Black% &call :K38_color "Checking: %winos% is Permanently Activated." %Green%
|
||||
call :K38_color1 " " %Black% &call :K38_color "Activation is not required." %Gray%
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
if defined Unattended goto K38_Done
|
||||
|
||||
echo Press [1] or [2] button in Keyboard :
|
||||
echo ___________________________________________
|
||||
echo:
|
||||
choice /C:12 /N /M "> [1] Activate [2] Exit : "
|
||||
|
||||
if errorlevel 2 exit /b
|
||||
if errorlevel 1 Goto K38_Continue
|
||||
)
|
||||
|
||||
:K38_Continue
|
||||
cls
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cd /d "!_work!"
|
||||
pushd "!_work!"
|
||||
|
||||
if not exist "!_work!\BIN\" (
|
||||
%ELine%
|
||||
echo 'BIN' Folder does not exist in current directory.
|
||||
echo It's supposed to have files required for the Activation.
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo %winos%| findstr /I Evaluation >nul && set Eval=1||set Eval=
|
||||
if defined Eval (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild%] KMS38 Activation is Not Supported.
|
||||
echo %winos%| findstr /I Server >nul && (
|
||||
echo Server Evaluation cannot be activated. Convert it to full Server OS.
|
||||
) || (
|
||||
echo Evaluation Editions cannot be activated. Install full Windows OS.
|
||||
)
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check SKU value
|
||||
|
||||
set SKU=
|
||||
for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
|
||||
if "%osSKU%"=="" (
|
||||
%ELine%
|
||||
echo SKU value was not detected properly. Aborting...
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
set osedition=
|
||||
call :K38_CheckEdition %nul%
|
||||
|
||||
if "%osedition%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild% ^| SKU:%osSKU%] KMS38 Activation is Not Supported.
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
:: Check Activation ID
|
||||
|
||||
set app=
|
||||
for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%' and LicenseFamily='%osedition%' and Description like '%%KMSCLIENT%%') get ID /VALUE" 2^>nul') do set "app=%%a"
|
||||
|
||||
:: Check Windows Architecture
|
||||
|
||||
set arch=
|
||||
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > nul && set arch=x86|| set arch=x64
|
||||
wmic os get osarchitecture | find /i "ARM" > nul && set arch=ARM64|| echo %PROCESSOR_ARCHITECTURE% | find /i "ARM" > nul && set arch=ARM64
|
||||
|
||||
if "%arch%"=="ARM64" call :K38_check ARM64_gatherosstate.exe ARM64_slc.dll
|
||||
if not "%arch%"=="ARM64" call :K38_check gatherosstate.exe slc.dll
|
||||
if defined _miss goto K38_Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
if "%app%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild%] KMS38 Activation is Not Supported.
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
set key=
|
||||
call :%app% %nul%
|
||||
|
||||
if "%key%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild% ^| %app%] KMS38 Activation is Not Supported.
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
:: clipup.exe does not exist in server cor and acor editions.
|
||||
|
||||
set A_Cor=
|
||||
echo %osedition%| findstr /I /B Server >nul && if not exist "%systemroot%\System32\clipup.exe" set A_Cor=1
|
||||
|
||||
if defined A_Cor (
|
||||
call :K38_check clipup.exe
|
||||
if defined _miss goto K38_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
echo Checking OS Info [%winos% ^| %winbuild% ^| %arch%]
|
||||
|
||||
echo:
|
||||
set _1=ClipSVC
|
||||
set _3=sppsvc
|
||||
|
||||
for %%# in (%_1% %_3%) do call :K38_ServiceCheck %%#
|
||||
|
||||
set "CLecho=Checking %_1% [Service Status -%Cl_state%] [Startup Type -%Cl_start_type%]"
|
||||
set "specho=Checking %_3% [Service Status -%sp_state%] [Startup Type -%sp_start_type%]"
|
||||
|
||||
if not "%Cl_start_type%"=="Demand" (call :K38_color "%CLecho%" %Red% & set Clst_e=1) else (echo %CLecho%)
|
||||
if not "%sp_start_type%"=="Delayed-Auto" (call :K38_color "%specho%" %Red% & set spst_e=1) else (echo %specho%)
|
||||
|
||||
echo:
|
||||
if defined Clst_e (sc config %_1% start= Demand %nul% && set Clst_s=%_1%-Demand || set Clst_u=%_1%-Demand )
|
||||
if defined spst_e (sc config %_3% start= Delayed-Auto %nul% && set spst_s=%_3%-Delayed-Auto || set spst_u=%_3%-Delayed-Auto )
|
||||
|
||||
for %%# in (Clst_s,spst_s) do if defined %%# set st_s=1
|
||||
if defined st_s (echo Changing services Startup Type to [ %Clst_s%%spst_s%] [Successful])
|
||||
|
||||
for %%# in (Clst_u,spst_u) do if defined %%# set st_u=1
|
||||
if defined st_u (call :K38_color "Error in changing Startup Type to [ %Clst_u%%spst_u%]" %Red%)
|
||||
|
||||
if not "%Cl_state%"=="Running" (%_psc% start-service %_1% %nul% && set Cl_s=%_1% || set Cl_u=%_1% )
|
||||
if not "%sp_state%"=="Running" (%_psc% start-service %_3% %nul% && set sp_s=%_3% || set sp_u=%_3% )
|
||||
|
||||
for %%# in (Cl_s,sp_s) do if defined %%# set s_s=1
|
||||
if defined s_s (echo Starting services [ %Cl_s%%sp_s%] [Successful])
|
||||
|
||||
for %%# in (Cl_u,sp_u) do if defined %%# set s_u=1
|
||||
if defined s_u (call :K38_color "Error in starting services [ %Cl_u%%sp_u%]" %Red%)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Thanks to @abbodi1406 for the WMI methods
|
||||
|
||||
echo:
|
||||
set _channel=
|
||||
set _Keyexist=
|
||||
set _partial=
|
||||
|
||||
wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel 2>nul | findstr /i GVLK 1>nul && (set _Keyexist=1)
|
||||
|
||||
if defined _Keyexist (
|
||||
for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get PartialProductKey /value 2^>nul') do set "_partial=%%#"
|
||||
call echo Checking Installed Product Key [Volume:GVLK] [Partial Key -%%_partial%%]
|
||||
)
|
||||
|
||||
if not defined _Keyexist (
|
||||
set "InsKey=Installing KMS Client Setup Key "
|
||||
wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="%key%" %nul% && (
|
||||
call echo %%InsKey%% [%key%] [Successful]
|
||||
) || (
|
||||
call :K38_color "%%InsKey%% [%key%] [Unsuccessful]" %Red%
|
||||
)
|
||||
)
|
||||
|
||||
wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Set specific KMS host to Local Host
|
||||
:: Thanks to @abbodi1406
|
||||
|
||||
:: By doing this, global KMS IP can not replace KMS38 activation but can be used with Office and other Windows Editions.
|
||||
|
||||
echo:
|
||||
set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
|
||||
reg delete "HKLM\%SPPk%\%wApp%" /f %nul%
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul%
|
||||
|
||||
set setkms_error=
|
||||
set "setkms_=Setting Specific KMS Host to "
|
||||
|
||||
wmic path %slp% where ID='%app%' call ClearKeyManagementServiceMachine %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call ClearKeyManagementServicePort %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call SetKeyManagementServiceMachine MachineName="127.0.0.2" %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call SetKeyManagementServicePort 1688 %nul% || (set setkms_error=1)
|
||||
|
||||
if not defined setkms_error (
|
||||
echo %setkms_% [LocalHost 127.0.0.2] [Successful]
|
||||
) else (
|
||||
call :K38_color "%setkms_% [LocalHost 127.0.0.2] [Unsuccessful]" %Red%
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Files are copied to temp to generate ticket to avoid possible issues in case the path contains special character or non English names.
|
||||
|
||||
echo:
|
||||
set "temp_=%SystemRoot%\Temp\_Ticket_Work"
|
||||
if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul%
|
||||
md "%temp_%\" %nul%
|
||||
|
||||
cd /d "!_work!\BIN\"
|
||||
|
||||
set ARM64_file=
|
||||
if "%arch%"=="ARM64" set ARM64_file=ARM64_
|
||||
|
||||
set "A_Cor_cl=%systemroot%\System32\clipup.exe"
|
||||
copy /y /b "%ARM64_file%gatherosstate.exe" "%temp_%\gatherosstate.exe" %nul%
|
||||
copy /y /b "%ARM64_file%slc.dll" "%temp_%\slc.dll" %nul%
|
||||
if defined A_Cor (copy /y /b "ClipUp.exe" "%A_Cor_cl%" %nul%)
|
||||
|
||||
set cfailed=
|
||||
if not exist "%temp_%\gatherosstate.exe" set cfailed=1
|
||||
if not exist "%temp_%\slc.dll" set cfailed=1
|
||||
|
||||
set "copyfiles=Copying Required Files to Temp "
|
||||
set "copyclipup=Copying clipup.exe File to "
|
||||
|
||||
if defined cfailed (
|
||||
call :K38_color "%copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Unsuccessful] Aborting..." %Red%
|
||||
goto K38_Act_Cont
|
||||
) else (
|
||||
echo %copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Successful]
|
||||
)
|
||||
|
||||
if defined A_Cor (
|
||||
if not exist "%A_Cor_cl%" call :K38_color "%copyclipup% [%systemroot%\System32\] [Unsuccessful] Aborting..." %Red% & goto K38_Act_Cont
|
||||
if exist "%A_Cor_cl%" echo %copyclipup% [%systemroot%\System32\] [Successful]
|
||||
)
|
||||
|
||||
cd /d "%temp_%\"
|
||||
attrib -R -A -S -H *.*
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Multiple attempts to generate the ticket because in some cases, one attempt is not enough.
|
||||
|
||||
set "_noxml=if not exist "%temp_%\GenuineTicket.xml""
|
||||
|
||||
start /wait "" "%temp_%/gatherosstate.exe" %nul%
|
||||
%_noxml% timeout /t 3 %nul%
|
||||
%_noxml% call "%temp_%/gatherosstate.exe" %nul%
|
||||
%_noxml% timeout /t 3 %nul%
|
||||
%_noxml% "%temp_%/gatherosstate.exe" %nul%
|
||||
%_noxml% timeout /t 3 %nul%
|
||||
|
||||
set "GenTicket=Generating GenuineTicket.xml "
|
||||
%_noxml% (
|
||||
call :K38_color "%GenTicket% [Unsuccessful] Aborting..." %Red%
|
||||
goto K38_Act_Cont
|
||||
) else (
|
||||
echo %GenTicket% [Successful]
|
||||
)
|
||||
|
||||
:: clipup -v -o -altto <Ticket path> method to apply ticket was not used to avoid the certain issues in case the username have spaces or non English names.
|
||||
|
||||
set "InsTicket=Installing GenuineTicket.xml "
|
||||
set "TDir=%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket"
|
||||
if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul%
|
||||
copy /y /b "%temp_%\GenuineTicket.xml" "%TDir%\GenuineTicket.xml" %nul%
|
||||
|
||||
if not exist "%TDir%\GenuineTicket.xml" (
|
||||
call :K38_color "Failed to copy Ticket to [%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket\] Aborting..." %Red%
|
||||
goto K38_Act_Cont
|
||||
)
|
||||
|
||||
set "_xmlexist=if exist "%TDir%\GenuineTicket.xml""
|
||||
|
||||
%_psc% Restart-Service ClipSVC %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
|
||||
%_xmlexist% (
|
||||
%_psc% stop-Service ClipSVC %nul%
|
||||
%_psc% start-Service ClipSVC %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
)
|
||||
|
||||
set fallback_=
|
||||
%_xmlexist% (
|
||||
set fallback_=1
|
||||
%nul% clipup -v -o
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
)
|
||||
|
||||
%_xmlexist% (
|
||||
call :K38_color "%InsTicket% [Unsuccessful] Aborting..." %Red%
|
||||
if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul%
|
||||
goto K38_Act_Cont
|
||||
) else (
|
||||
if not defined fallback_ echo %InsTicket% [Successful]
|
||||
if defined fallback_ call :K38_color "%InsTicket% [Successful] [Fallback method: clipup -v -o]" %Red%
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo:
|
||||
echo Activating...
|
||||
echo:
|
||||
|
||||
call :K38_CheckEXPtime
|
||||
if %gpr% GTR 259200 (
|
||||
call :K38_Actinfo
|
||||
goto K38_Act_Cont
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Clear 180 Days KMS Activation lock without full Rearm and Restart
|
||||
|
||||
set RearmF=
|
||||
set "Rearm=Applying SKU-APP ID Rearm "
|
||||
wmic path %sls% where __CLASS='%sls%' call ReArmApp ApplicationId="%wApp%" %nul% || (set RearmF=1)
|
||||
wmic path %slp% where ID='%app%' call ReArmsku %nul% || (set RearmF=1)
|
||||
|
||||
if defined RearmF (
|
||||
call :K38_color "%Rearm% [Unsuccessful]" %Red%
|
||||
) else (
|
||||
echo %Rearm% [Successful]
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo:
|
||||
call :K38_CheckEXPtime
|
||||
if %gpr% GTR 259200 (
|
||||
call :K38_Actinfo
|
||||
goto K38_Act_Cont
|
||||
)
|
||||
|
||||
%_psc% Restart-Service sppsvc %nul%
|
||||
wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
|
||||
call :K38_CheckEXPtime
|
||||
if %gpr% GTR 259200 (
|
||||
call :K38_Actinfo
|
||||
goto K38_Act_Cont
|
||||
)
|
||||
|
||||
call :K38_color "Activation Failed." %Red%
|
||||
call :K38_color "Try the Troubleshoot Guide listed in the ReadMe." %Magenta%
|
||||
|
||||
:K38_Act_Cont
|
||||
|
||||
:: clipup.exe does not exist in server cor and acor editions by default, it was copied there with this script.
|
||||
|
||||
echo:
|
||||
cd /d "!_work!\"
|
||||
if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul%
|
||||
if defined A_Cor (if exist "%A_Cor_cl%" del /f /q "%A_Cor_cl%" %nul%)
|
||||
|
||||
set "delFiles=Cleaning Temp Files "
|
||||
set "delclipup=Deleting copied clipup.exe file "
|
||||
|
||||
if exist "%temp_%\" (
|
||||
call :K38_color "%delFiles% [Unsuccessful]" %Red%
|
||||
) else (
|
||||
echo %delFiles% [Successful]
|
||||
)
|
||||
|
||||
if defined A_Cor (
|
||||
if exist "%A_Cor_cl%" call :K38_color "%delclipup% [Unsuccessful]" %Red%
|
||||
if not exist "%A_Cor_cl%" echo %delclipup% [Successful]
|
||||
)
|
||||
|
||||
goto K38_Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Echo all the missing files.
|
||||
:: Written by @abbodi1406 (MDL)
|
||||
|
||||
:K38_check
|
||||
|
||||
for %%# in (%1 %2) do (if not exist "!_work!\BIN\%%#" (if defined _miss (set "_miss=!_miss! %%#") else (set "_miss=%%#")))
|
||||
if defined _miss (
|
||||
%ELine%
|
||||
echo Following required file^(s^) is missing in 'BIN' folder. Aborting...
|
||||
echo:
|
||||
echo !_miss!
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:K38_ServiceCheck
|
||||
|
||||
:: Detect Service status and start type
|
||||
:: Written by @RPO
|
||||
|
||||
for /f "tokens=1,3 delims=: " %%a in ('sc query %1') do (if /i %%a==state set "state=%%b")
|
||||
for /f "tokens=1-4 delims=: " %%a in ('sc qc %1') do (if /i %%a==start_type set "start_type=%%c %%d")
|
||||
|
||||
if /i "%state%"=="STOPPED" set state=Stopped
|
||||
if /i "%state%"=="RUNNING" set state=Running
|
||||
|
||||
if /i "%start_type%"=="auto_start (delayed)" set start_type=Delayed-Auto
|
||||
if /i "%start_type%"=="auto_start " set start_type=Auto
|
||||
if /i "%start_type%"=="demand_start " set start_type=Demand
|
||||
if /i "%start_type%"=="disabled " set start_type=Disabled
|
||||
|
||||
for %%i in (%*) do (
|
||||
if /i "%%i"=="%_3%" set "sp_start_type=%start_type%" & set "sp_state=%state%"
|
||||
if /i "%%i"=="%_1%" set "Cl_start_type=%start_type%" & set "Cl_state=%state%"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:K38_CheckPermAct
|
||||
|
||||
:: Check Windows Permanent Activation status
|
||||
:: Written by @abbodi1406
|
||||
|
||||
wmic path %slp% where (LicenseStatus='1' and GracePeriodRemaining='0' and PartialProductKey is not NULL) get Name 2>nul | findstr /i "Windows" 1>nul && set PermAct=1||set PermAct=
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Expiration date with powershell
|
||||
:: Written by @abbodi1406
|
||||
|
||||
:K38_Actinfo
|
||||
|
||||
for /f "tokens=* delims=" %%# in ('%_psc% "$([DateTime]::Now.addMinutes(%gpr%)).ToString('yyyy-MM-dd HH:mm:ss')" 2^>nul') do set "_xpr=%%#"
|
||||
call :K38_color "%winos% is activated till %_xpr%" %Green%
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:K38_CheckEXPtime
|
||||
|
||||
:: Check Activation remaining time
|
||||
:: Written by @abbodi1406
|
||||
|
||||
for /f "tokens=2 delims==" %%# in ('"wmic path %slp% where (ApplicationID='%wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get GracePeriodRemaining /VALUE" ') do set "gpr=%%#"
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:K38_color
|
||||
|
||||
%_psc% write-host '%1' -fore '%2' -back '%3'
|
||||
exit /b
|
||||
|
||||
:K38_color1
|
||||
|
||||
%_psc% write-host '%1' -fore '%2' -back '%3' -NoNewline
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:K38_Done
|
||||
|
||||
echo:
|
||||
if defined Unattended (
|
||||
echo Exiting in 3 seconds...
|
||||
if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3)
|
||||
exit /b
|
||||
)
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
:K38_CheckEdition
|
||||
|
||||
for %%# in (
|
||||
4-Enterprise
|
||||
7-ServerStandard
|
||||
8-ServerDatacenter
|
||||
27-EnterpriseN
|
||||
48-Professional
|
||||
49-ProfessionalN
|
||||
50-ServerSolution
|
||||
98-CoreN
|
||||
99-CoreCountrySpecific
|
||||
100-CoreSingleLanguage
|
||||
101-Core
|
||||
110-ServerCloudStorage
|
||||
120-ServerARM64
|
||||
121-Education
|
||||
122-EducationN
|
||||
125-EnterpriseS
|
||||
126-EnterpriseSN
|
||||
145-ServerDatacenterACor
|
||||
146-ServerStandardACor
|
||||
161-ProfessionalWorkstation
|
||||
162-ProfessionalWorkstationN
|
||||
164-ProfessionalEducation
|
||||
165-ProfessionalEducationN
|
||||
168-ServerAzureCor
|
||||
171-EnterpriseG
|
||||
172-EnterpriseGN
|
||||
175-ServerRdsh
|
||||
183-CloudE
|
||||
) do for /f "tokens=1,2 delims=-" %%A in ("%%#") do (
|
||||
if %osSKU%==%%A set "osedition=%%B"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Generic Volume License Key (GVLK) List
|
||||
|
||||
:: Windows 10 [RS5]
|
||||
:32d2fab3-e4a8-42c2-923b-4bf4fd13e6ee
|
||||
set "key=M7XTQ-FN8P6-TTKYV-9D4CC-J462D" &:: Enterprise LTSC 2019
|
||||
exit /b
|
||||
|
||||
:7103a333-b8c8-49cc-93ce-d37c09687f92
|
||||
set "key=92NFX-8DJQP-P6BBQ-THF9C-7CG2H" &:: Enterprise LTSC 2019 N
|
||||
exit /b
|
||||
|
||||
:ec868e65-fadf-4759-b23e-93fe37f2cc29
|
||||
set "key=CPWHC-NT2C7-VYW78-DHDB2-PG3GK" &:: Enterprise for Virtual Desktops
|
||||
exit /b
|
||||
|
||||
:0df4f814-3f57-4b8b-9a9d-fddadcd69fac
|
||||
set "key=NBTWJ-3DR69-3C4V8-C26MC-GQ9M6" &:: Lean
|
||||
exit /b
|
||||
|
||||
:: Windows 10 [RS3]
|
||||
:82bbc092-bc50-4e16-8e18-b74fc486aec3
|
||||
set "key=NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J" &:: Pro Workstation
|
||||
exit /b
|
||||
|
||||
:4b1571d3-bafb-4b40-8087-a961be2caf65
|
||||
set "key=9FNHH-K3HBT-3W4TD-6383H-6XYWF" &:: Pro Workstation N
|
||||
exit /b
|
||||
|
||||
:e4db50ea-bda1-4566-b047-0ca50abc6f07
|
||||
set "key=7NBT4-WGBQX-MP4H7-QXFF8-YP3KX" &:: Enterprise Remote Server
|
||||
exit /b
|
||||
|
||||
:: Windows 10 [RS2]
|
||||
:e0b2d383-d112-413f-8a80-97f373a5820c
|
||||
set "key=YYVX9-NTFWV-6MDM3-9PT4T-4M68B" &:: Enterprise G
|
||||
exit /b
|
||||
|
||||
:e38454fb-41a4-4f59-a5dc-25080e354730
|
||||
set "key=44RPN-FTY23-9VTTB-MP9BX-T84FV" &:: Enterprise G N
|
||||
exit /b
|
||||
|
||||
:: Windows 10 [RS1]
|
||||
:2d5a5a60-3040-48bf-beb0-fcd770c20ce0
|
||||
set "key=DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ" &:: Enterprise 2016 LTSB
|
||||
exit /b
|
||||
|
||||
:9f776d83-7156-45b2-8a5c-359b9c9f22a3
|
||||
set "key=QFFDN-GRT3P-VKWWX-X7T3R-8B639" &:: Enterprise 2016 LTSB N
|
||||
exit /b
|
||||
|
||||
:3f1afc82-f8ac-4f6c-8005-1d233e606eee
|
||||
set "key=6TP4R-GNPTD-KYYHQ-7B7DP-J447Y" &:: Pro Education
|
||||
exit /b
|
||||
|
||||
:5300b18c-2e33-4dc2-8291-47ffcec746dd
|
||||
set "key=YVWGF-BXNMC-HTQYQ-CPQ99-66QFC" &:: Pro Education N
|
||||
exit /b
|
||||
|
||||
:: Windows 10 [TH]
|
||||
:58e97c99-f377-4ef1-81d5-4ad5522b5fd8
|
||||
set "key=TX9XD-98N7V-6WMQ6-BX7FG-H8Q99" &:: Home
|
||||
exit /b
|
||||
|
||||
:7b9e1751-a8da-4f75-9560-5fadfe3d8e38
|
||||
set "key=3KHY7-WNT83-DGQKR-F7HPR-844BM" &:: Home N
|
||||
exit /b
|
||||
|
||||
:cd918a57-a41b-4c82-8dce-1a538e221a83
|
||||
set "key=7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH" &:: Home Single Language
|
||||
exit /b
|
||||
|
||||
:a9107544-f4a0-4053-a96a-1479abdef912
|
||||
set "key=PVMJN-6DFY6-9CCP6-7BKTT-D3WVR" &:: Home China
|
||||
exit /b
|
||||
|
||||
:2de67392-b7a7-462a-b1ca-108dd189f588
|
||||
set "key=W269N-WFGWX-YVC9B-4J6C9-T83GX" &:: Pro
|
||||
exit /b
|
||||
|
||||
:a80b5abf-76ad-428b-b05d-a47d2dffeebf
|
||||
set "key=MH37W-N47XK-V7XM9-C7227-GCQG9" &:: Pro N
|
||||
exit /b
|
||||
|
||||
:e0c42288-980c-4788-a014-c080d2e1926e
|
||||
set "key=NW6C2-QMPVW-D7KKK-3GKT6-VCFB2" &:: Education
|
||||
exit /b
|
||||
|
||||
:3c102355-d027-42c6-ad23-2e7ef8a02585
|
||||
set "key=2WH4N-8QGBV-H22JP-CT43Q-MDWWJ" &:: Education N
|
||||
exit /b
|
||||
|
||||
:73111121-5638-40f6-bc11-f1d7b0d64300
|
||||
set "key=NPPR9-FWDCX-D2C8J-H872K-2YT43" &:: Enterprise
|
||||
exit /b
|
||||
|
||||
:e272e3e2-732f-4c65-a8f0-484747d0d947
|
||||
set "key=DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4" &:: Enterprise N
|
||||
exit /b
|
||||
|
||||
:7b51a46c-0c04-4e8f-9af4-8496cca90d5e
|
||||
set "key=WNMTR-4C88C-JK8YV-HQ7T2-76DF9" &:: Enterprise 2015 LTSB
|
||||
exit /b
|
||||
|
||||
:87b838b7-41b6-4590-8318-5797951d8529
|
||||
set "key=2F77B-TNFGY-69QQF-B8YKP-D69TJ" &:: Enterprise 2015 LTSB N
|
||||
exit /b
|
||||
|
||||
:: Windows Server 2019 [RS5]
|
||||
:de32eafd-aaee-4662-9444-c1befb41bde2
|
||||
set "key=N69G4-B89J2-4G8F4-WWYCC-J464C" &:: Standard
|
||||
exit /b
|
||||
|
||||
:34e1ae55-27f8-4950-8877-7a03be5fb181
|
||||
set "key=WMDGN-G9PQG-XVVXX-R3X43-63DFG" &:: Datacenter
|
||||
exit /b
|
||||
|
||||
:034d3cbb-5d4b-4245-b3f8-f84571314078
|
||||
set "key=WVDHN-86M7X-466P6-VHXV7-YY726" &:: Essentials
|
||||
exit /b
|
||||
|
||||
:a99cc1f0-7719-4306-9645-294102fbff95
|
||||
set "key=FDNH6-VW9RW-BXPJ7-4XTYG-239TB" &:: Azure Core
|
||||
exit /b
|
||||
|
||||
:73e3957c-fc0c-400d-9184-5f7b6f2eb409
|
||||
set "key=N2KJX-J94YW-TQVFB-DG9YT-724CC" &:: Standard ACor
|
||||
exit /b
|
||||
|
||||
:90c362e5-0da1-4bfd-b53b-b87d309ade43
|
||||
set "key=6NMRW-2C8FM-D24W7-TQWMY-CWH2D" &:: Datacenter ACor
|
||||
exit /b
|
||||
|
||||
:8de8eb62-bbe0-40ac-ac17-f75595071ea3
|
||||
set "key=GRFBW-QNDC4-6QBHG-CCK3B-2PR88" &:: ServerARM64
|
||||
exit /b
|
||||
|
||||
:: Windows Server 2016 [RS4]
|
||||
:43d9af6e-5e86-4be8-a797-d072a046896c
|
||||
set "key=K9FYF-G6NCK-73M32-XMVPY-F9DRR" &:: ServerARM64
|
||||
exit /b
|
||||
|
||||
:: Windows Server 2016 [RS3]
|
||||
:61c5ef22-f14f-4553-a824-c4b31e84b100
|
||||
set "key=PTXN8-JFHJM-4WC78-MPCBR-9W4KR" &:: Standard ACor
|
||||
exit /b
|
||||
|
||||
:e49c08e7-da82-42f8-bde2-b570fbcae76c
|
||||
set "key=2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG" &:: Datacenter ACor
|
||||
exit /b
|
||||
|
||||
:: Windows Server 2016 [RS1]
|
||||
:8c1c5410-9f39-4805-8c9d-63a07706358f
|
||||
set "key=WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY" &:: Standard
|
||||
exit /b
|
||||
|
||||
:21c56779-b449-4d20-adfc-eece0e1ad74b
|
||||
set "key=CB7KF-BWN84-R7R2Y-793K2-8XDDG" &:: Datacenter
|
||||
exit /b
|
||||
|
||||
:2b5a1b0f-a5ab-4c54-ac2f-a6d94824a283
|
||||
set "key=JCKRF-N37P4-C2D82-9YXRT-4M63B" &:: Essentials
|
||||
exit /b
|
||||
|
||||
:7b4433f4-b1e7-4788-895a-c45378d38253
|
||||
set "key=QN4C6-GBJD2-FB422-GHWJK-GJG2R" &:: Cloud Storage
|
||||
exit /b
|
||||
|
||||
:3dbf341b-5f6c-4fa7-b936-699dce9e263f
|
||||
set "key=VP34G-4NPPG-79JTQ-864T4-R3MQX" &:: Azure Core
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,345 +0,0 @@
|
||||
====================================================================================================
|
||||
[HWID] Digital License Activation:
|
||||
====================================================================================================
|
||||
|
||||
- This activation is supported for Windows 10 ONLY.
|
||||
- This activation does not store any files in your system.
|
||||
- This activation is a permanent activation for your system Hardware.
|
||||
|
||||
- On a system, this activation can be created for all the supported editions, and all can be
|
||||
linked to Microsoft account without any issues.
|
||||
|
||||
- Once a system is activated, this activation cannot be removed. (Because the license is stored in
|
||||
the Microsoft servers and not in the user's system.)
|
||||
|
||||
- Any significant changes in the Hardware (such as a motherboard) may deactivate the system.
|
||||
It is possible to reactivate a system that was deactivated because of significant hardware
|
||||
changes, IF your activation, was linked to an online Microsoft account.
|
||||
|
||||
- For activation to succeed, the Windows Update Service and internet connectivity must be enabled.
|
||||
If you are trying to activate without these conditions being met, then the system will auto-
|
||||
activate later when the conditions are met.
|
||||
|
||||
- Auto activation scenario after the Windows reinstall:
|
||||
- The Internet is required. (Only at the time of activation)
|
||||
- The system will auto-activate if Retail (Consumer) media was used for the installation.
|
||||
- The system will NOT auto-activate if VL (Business) media was used for the installation.
|
||||
In this case, the user will have to insert that windows edition Retail/OEM key (find keys below
|
||||
in this page) to activate, if the user doesn't wish to activate again using this script.
|
||||
|
||||
- Possible reasons for activation failure:
|
||||
- The Internet is not connected.
|
||||
- Windows update service is disabled.
|
||||
- Use of a VPN, and/or a privacy-based hosts file, firewall rules.
|
||||
- Corrupt system files.
|
||||
- Microsoft servers block the activation request from some countries such as Iran.
|
||||
- Rarely, Microsoft's activation servers are the problem.
|
||||
- Some machines are not able to generate GenuineTicket.xml file using gatherosstate.exe
|
||||
The reason is unknown (to me). Please contact me if it happens to you.
|
||||
|
||||
* Troubleshoot guide is listed below.
|
||||
|
||||
====================================================================================================
|
||||
|
||||
Documentation by @mspaintmsi
|
||||
|
||||
Included topics-
|
||||
|
||||
How does it work?
|
||||
Is it possible that Microsoft can block these Digital Licenses (HWID)?
|
||||
|
||||
https://pastebin.com/raw/7Xyaf15Z
|
||||
Mirror Link-
|
||||
https://textuploader.com/1dg8d/raw
|
||||
|
||||
And
|
||||
|
||||
https://github.com/massgravel/MASSGRAVE
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
====================================================================================================
|
||||
Supported Products:
|
||||
====================================================================================================
|
||||
|
||||
Windows 10 Versions that can be activated:
|
||||
|
||||
Core
|
||||
CoreCountrySpecific
|
||||
CoreN
|
||||
CoreSingleLanguage
|
||||
Education
|
||||
EducationN
|
||||
Enterprise
|
||||
EnterpriseN
|
||||
EnterpriseS [LTSB 2015 & 2016]
|
||||
EnterpriseSN [LTSB 2015 & 2016]
|
||||
Professional
|
||||
ProfessionalEducation
|
||||
ProfessionalEducationN
|
||||
ProfessionalN
|
||||
ProfessionalWorkstation
|
||||
ProfessionalWorkstationN
|
||||
ServerRdsh
|
||||
IoTEnterprise
|
||||
|
||||
|
||||
Note - X86-X64 and ARM64 architecture systems are supported.
|
||||
- Any Evaluation version of Windows (i.e. 'EVAL' LTSB/C) cannot be activated.
|
||||
- LTSC 2019 is not supported.
|
||||
|
||||
====================================================================================================
|
||||
Switches for the Script:
|
||||
====================================================================================================
|
||||
|
||||
- To run the script in unattended mode, use /u parameter.
|
||||
"HWID_Activation.cmd" /u
|
||||
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe Virus Total = 0/71
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll Virus Total = 0/68
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe Virus Total = 0/69
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll Virus Total = 0/67
|
||||
48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe Virus Total = 0/68
|
||||
|
||||
Virus Total Report Date: 2020-01-21
|
||||
|
||||
- File Sources:
|
||||
|
||||
- ClipUp.exe (Original):
|
||||
From Windows server 2016 x64 ISO
|
||||
|
||||
- gatherosstate.exe (Original):
|
||||
From Windows 10 x86 14393 ADK
|
||||
|
||||
- ARM64_gatherosstate.exe (Original):
|
||||
From Windows 10 ARM64 18362 ISO
|
||||
|
||||
- ARM64_slc.dll and slc.dll:
|
||||
|
||||
Original slshim
|
||||
https://github.com/vyvojar/slshim
|
||||
|
||||
Improved by @mspaintmsi
|
||||
https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://github.com/massgravel/MASSGRAVE
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
Source code is included.
|
||||
slc.dll is based on Integrated_Patcher_2 method.
|
||||
It is currently in use in HWID/KMS38 Activation script.
|
||||
|
||||
____________________________________________________________________________________________________
|
||||
|
||||
You can safely delete the following files if it's not required for you.
|
||||
|
||||
ClipUp.exe - Required to KMS38 activate Server Cor and Acor editions.
|
||||
ARM64_gatherosstate.exe and ARM64_slc.dll - Required to activate ARM64 Arch Windows 10.
|
||||
|
||||
====================================================================================================
|
||||
Manual Activation Process:
|
||||
====================================================================================================
|
||||
|
||||
- Prerequisite:
|
||||
|
||||
For Windows 10 x86-x64 system, you need following files,
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll
|
||||
|
||||
For Windows 10 ARM64 system, you need following files,
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll
|
||||
* Rename the ARM64 files to gatherosstate.exe and slc.dll respectively.
|
||||
|
||||
|
||||
Make a folder named 'Files' in C drive, [C:\Files] and copy the required files in that folder.
|
||||
|
||||
-------------------------------------------------------------------------------------------------
|
||||
|
||||
Retail/OEM Keys Windows 10 Editions
|
||||
|
||||
YTMG3-N6DKC-DKB77-7M9GH-8HVX7 Core
|
||||
4CPRK-NM3K3-X6XXQ-RXX86-WXCHW CoreN
|
||||
N2434-X9D7W-8PF6X-8DV9T-8TYMD CoreCountrySpecific
|
||||
BT79Q-G7N6G-PGBYW-4YWX6-6F4BT CoreSingleLanguage
|
||||
YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY Education
|
||||
84NGF-MHBT6-FXBX8-QWJK7-DRR8H EducationN
|
||||
XGVPP-NMH47-7TTHJ-W3FW7-8HV2C Enterprise
|
||||
3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT EnterpriseN
|
||||
FWN7H-PF93Q-4GGP8-M8RF3-MDWWW EnterpriseS [LTSB 2015]
|
||||
8V8WN-3GXBH-2TCMG-XHRX3-9766K EnterpriseSN [LTSB 2015]
|
||||
NK96Y-D9CD8-W44CQ-R8YTK-DYJWX EnterpriseS [LTSB 2016]
|
||||
2DBW3-N2PJG-MVHW3-G7TDK-9HKR4 EnterpriseSN [LTSB 2016]
|
||||
VK7JG-NPHTM-C97JM-9MPGT-3V66T Professional
|
||||
2B87N-8KFHP-DKV6R-Y2C8J-PKCKT ProfessionalN
|
||||
8PTT6-RNW4C-6V7J2-C2D3X-MHBPB ProfessionalEducation
|
||||
GJTYN-HDMQY-FRR76-HVGC7-QPF8P ProfessionalEducationN
|
||||
DXG7C-N36C4-C4HTG-X4T3X-2YV77 ProfessionalWorkstation
|
||||
WYPNQ-8C467-V2W6J-TX4WX-WT2RQ ProfessionalWorkstationN
|
||||
NJCF7-PW8QT-3324D-688JX-2YV66 ServerRdsh
|
||||
XQQYW-NFFMW-XJPBH-K8732-CKFFD IoTEnterprise
|
||||
|
||||
-------------------------------------------------------------------------------------------------
|
||||
|
||||
- Make sure the Windows Update Service and internet are both enabled.
|
||||
- Open a command prompt (run cmd.exe) as administrator, and enter following listed commands in the
|
||||
the sequence in which they are given.
|
||||
- Enter Retail/OEM Key, (Replace '%key%' with the key from the above list) with the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /ipk %key%
|
||||
|
||||
- Make sure slc.dll and gatherosstate.exe files are located in the folder, "C:\Files" and enter
|
||||
the following commands to generate GenuineTicket.xml file.
|
||||
|
||||
For x86-x64 systems,
|
||||
|
||||
pushd "C:\Files"
|
||||
rundll32 "C:\Files\slc.dll",PatchGatherosstate
|
||||
call "C:\Files\gatherosstatemodified.exe"
|
||||
|
||||
For ARM64 systems,
|
||||
|
||||
call "C:\Files\gatherosstate.exe"
|
||||
|
||||
- Now a GenuineTicket.xml file should be created in the folder "C:\Files\", copy and paste this file in the
|
||||
folder named, "C:\ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket\"
|
||||
|
||||
- Now apply this ticket using the following commands in this sequence:
|
||||
|
||||
net stop ClipSVC
|
||||
net start ClipSVC
|
||||
|
||||
- Activate Windows with the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /ato
|
||||
|
||||
- Check Activation Status with the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /xpr
|
||||
|
||||
- Done.
|
||||
|
||||
* Note - [clipup -v -o -altto <ticket_path>] method to apply the ticket was not suggested because
|
||||
of the issues in case the username have spaces or non English characters.
|
||||
|
||||
====================================================================================================
|
||||
Troubleshoot activation issues:
|
||||
====================================================================================================
|
||||
|
||||
- Make sure the internet is connected.
|
||||
|
||||
- Open CMD and type services.msc and hit Enter, When Services opens up, look for 'Windows Update'
|
||||
and Make sure its startup type is set to Automatic. Some update blocking tools and scripts
|
||||
usually permanently block the update service, you need to make sure it's not the case.
|
||||
|
||||
- VPN, privacy-based hosts and/or firewall rules may cause problems with the activation. Disable
|
||||
them if you are facing problems in activation.
|
||||
|
||||
- Reboot the system.
|
||||
|
||||
- Now run the script to activate Windows 10, and if unsuccessful,
|
||||
Try the troubleshoot button in the settings activation page.
|
||||
If still unsuccessful then read additional troubleshoot options listed below.
|
||||
|
||||
--------------------------------------------
|
||||
|
||||
- Open CMD as administrator, and enter the following command:
|
||||
|
||||
Dism /online /Cleanup-Image /RestoreHealth
|
||||
|
||||
- After it's done, reboot the system and open CMD as administrator again, and enter the
|
||||
following command:
|
||||
|
||||
sfc.exe /scannow
|
||||
|
||||
- After it's done, reboot the system and run the activation script, and if unsuccessful,
|
||||
open CMD as administrator again, and enter the following command:
|
||||
|
||||
slmgr.vbs /rearm
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
You may try to rebuild licensing Tokens.dat as suggested in https://support.microsoft.com/en-us/help/2736303
|
||||
(this will require to repair Office afterwards.)
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
try cleaning the clipup using the following commands, it will reset all the HWID/KMS38 installed
|
||||
licences in the current system installation. open CMD as administrator again, and enter the
|
||||
following commands one by one:
|
||||
|
||||
net stop ClipSVC
|
||||
rundll32 clipc.dll,ClipCleanUpState
|
||||
|
||||
- Reboot the system (important) and run the activation script, and if unsuccessful,
|
||||
Make sure hardware component proper drivers are installed, check manufacturer site/Windows-
|
||||
update for drivers.
|
||||
|
||||
- After it's done, reboot the system and run the activation script, and if unsuccessful,
|
||||
it may be time to start over from the very beginning and do a clean install of windows :D
|
||||
|
||||
-------------------------------------------
|
||||
Activation is blocked in some countries -
|
||||
-------------------------------------------
|
||||
|
||||
- Microsoft servers block the activation request from some countries such as Iran,
|
||||
To activate the system in those countries, follow the below steps,
|
||||
- In the settings app, Change Region and Timezone to the USA location and use a VPN, choose the
|
||||
the location of the USA. Now run the script, it should activate now.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- Some machines are not able to generate GenuineTicket.xml file using gatherosstate.exe
|
||||
The reason is unknown (to me). Please contact me if it happens to you.
|
||||
|
||||
=========================================================================================================
|
||||
Credits:
|
||||
=========================================================================================================
|
||||
|
||||
@mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade.
|
||||
and Created various methods for HWID/KMS38 Activation
|
||||
*Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://github.com/massgravel/MASSGRAVE
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
@vyvojar Original slshim (slc.dll)
|
||||
https://github.com/vyvojar/slshim/releases
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
HWID/KMS38 methods Suggestions and improvements:-
|
||||
|
||||
@sponpa New ideas for the HWID/KM38 Generation
|
||||
https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257
|
||||
|
||||
@leitek8 Improvements for the slc.dll
|
||||
https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
Kind Help:-
|
||||
|
||||
Thanks for having my back and answering all of my queries. (In no particular order)
|
||||
|
||||
@AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
|
||||
@BorrowedWifi for providing support in fixing English grammar errors in the Read Me.
|
||||
@Chibi ANUBIS and @smashed for testing scripts for ARM64 system.
|
||||
|
||||
Special thanks to @abbodi1406 for providing the great help.
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
This script is a part of 'Microsoft Activation Scripts' project.
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only
|
||||
manage batch script tool which is based on the above mentioned original co-authors activation methods.
|
||||
|
||||
=========================================================================================================
|
@ -1,358 +0,0 @@
|
||||
====================================================================================================
|
||||
KMS38 Activation:
|
||||
====================================================================================================
|
||||
|
||||
- This activation method activates Windows 10 and Windows Server (14393 and later builds),
|
||||
until the year 2038.
|
||||
- This activation method does not store any files on the system.
|
||||
|
||||
- Make sure the following things have been accounted for, before applying KMS38 Activation:
|
||||
- Before the activation, if any KMS activator is installed, then make sure to uninstall it
|
||||
completely.
|
||||
- After KMS38 activation for the Windows Operating System has been achieved, if you want to
|
||||
additionally, use the 180 Days KMS Activator for MS Office, then you must make sure that
|
||||
it (the 180 Days KMS Activator for MS Office) is compatible with Windows KMS38 activation.
|
||||
FYI, the following activators are compatible and can activate Office
|
||||
without disrupting the Windows KMS38 activation.
|
||||
|
||||
KMS_VL_ALL by @abbodi1406 https://forums.mydigitallife.net/posts/838808
|
||||
Online KMS Activation Script https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
|
||||
- Any KMS Activator which is not compatible with KMS38, may overwrite the KMS38 activation for
|
||||
Windows with its own 180 days activation, thereby destroying the KMS38 activation for Windows.
|
||||
To prevent this accidental overwriting, you can apply KMS38 protection for Windows, check
|
||||
the Extras folder for more details.
|
||||
|
||||
- Why is the script setting the specific KMS host to 127.0.0.2 (localhost)?
|
||||
- By doing this, global KMS IP can not replace KMS38 activation but can be used with Office and
|
||||
other Windows Editions.
|
||||
- In case you don't like it, you can remove it with following codes, open CMD as admin and enter,
|
||||
|
||||
set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
|
||||
reg delete "HKLM\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f
|
||||
|
||||
====================================================================================================
|
||||
|
||||
Documentation by @mspaintmsi
|
||||
|
||||
Included topics-
|
||||
|
||||
How does it work?
|
||||
|
||||
https://pastebin.com/raw/7Xyaf15Z
|
||||
Mirror Link-
|
||||
https://textuploader.com/1dg8d/raw
|
||||
|
||||
And
|
||||
|
||||
https://github.com/massgravel/MASSGRAVE
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
====================================================================================================
|
||||
Supported Products:
|
||||
====================================================================================================
|
||||
|
||||
Windows 10:
|
||||
|
||||
Core
|
||||
CoreCountrySpecific
|
||||
CoreN
|
||||
CoreSingleLanguage
|
||||
Education
|
||||
EducationN
|
||||
Enterprise
|
||||
EnterpriseG
|
||||
EnterpriseGN
|
||||
EnterpriseN
|
||||
EnterpriseS [LTSB 2016 & LTSC 2019]
|
||||
EnterpriseSN [LTSB 2016 & LTSC 2019]
|
||||
Professional
|
||||
ProfessionalEducation
|
||||
ProfessionalEducationN
|
||||
ProfessionalN
|
||||
ProfessionalWorkstation
|
||||
ProfessionalWorkstationN
|
||||
ServerRdsh
|
||||
|
||||
------------------------
|
||||
|
||||
Windows Server:
|
||||
|
||||
ServerCloudStorage [Server 2016]
|
||||
ServerDatacenter [Server 2016 & 2019]
|
||||
ServerDatacenterCor [Server 2016 & 2019]
|
||||
ServerSolution [Server 2016 & 2019]
|
||||
ServerSolutionCor [Server 2016 & 2019]
|
||||
ServerStandard [Server 2016 & 2019]
|
||||
ServerStandardCor [Server 2016 & 2019]
|
||||
ServerAzureCor [Server 2016 & 2019]
|
||||
ServerDatacenterACor [All versions]
|
||||
ServerStandardACor [All versions]
|
||||
|
||||
|
||||
Note - X86-X64 and ARM64 architecture systems are supported.
|
||||
- Any Evaluation version of Windows and Server (i.e. 'EVAL' LTSB/C) cannot be activated.
|
||||
- KMS38 only supports Windows/server version 14393 (1607) and newer versions.
|
||||
|
||||
====================================================================================================
|
||||
Switches in the Script:
|
||||
====================================================================================================
|
||||
|
||||
- For unattended mode, run the script with /u parameter.
|
||||
|
||||
"KMS38_Activation.cmd" /u
|
||||
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe Virus Total = 0/71
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll Virus Total = 0/68
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe Virus Total = 0/69
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll Virus Total = 0/67
|
||||
48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe Virus Total = 0/68
|
||||
|
||||
Virus Total Report Date: 2020-01-21
|
||||
|
||||
- File Sources:
|
||||
|
||||
- ClipUp.exe (Original):
|
||||
From Windows server 2016 x64 ISO
|
||||
|
||||
- gatherosstate.exe (Original):
|
||||
From Windows 10 x86 14393 ADK
|
||||
|
||||
- ARM64_gatherosstate.exe (Original):
|
||||
From Windows 10 ARM64 18362 ISO
|
||||
|
||||
- ARM64_slc.dll and slc.dll:
|
||||
|
||||
Original slshim
|
||||
https://github.com/vyvojar/slshim
|
||||
|
||||
Improved by @mspaintmsi
|
||||
https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://github.com/massgravel/MASSGRAVE
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
Source code is included.
|
||||
slc.dll is based on Integrated_Patcher_2 method.
|
||||
It is currently in use in HWID/KMS38 Activation script.
|
||||
|
||||
____________________________________________________________________________________________________
|
||||
|
||||
You can safely delete the following files if it's not required for you.
|
||||
|
||||
ClipUp.exe - Required to KMS38 activate Server Cor and Acor editions.
|
||||
ARM64_gatherosstate.exe and ARM64_slc.dll - Required to activate ARM64 Arch Windows 10.
|
||||
|
||||
====================================================================================================
|
||||
Manual Activation Process:
|
||||
====================================================================================================
|
||||
|
||||
- Prerequisite:
|
||||
|
||||
For Windows 10 / Server x86-x64 system, you need following files,
|
||||
48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll
|
||||
* ClipUp.exe is only required to activate Server Cor and Acor editions.
|
||||
|
||||
For Windows 10 ARM64 system, you need following files,
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll
|
||||
* Rename the ARM64 files to gatherosstate.exe and slc.dll respectively.
|
||||
|
||||
Make a folder named 'Files' in C drive, [C:\Files] and copy the required files in that folder.
|
||||
|
||||
-------------------------------------------------------------------------------------------------
|
||||
|
||||
GVLK Windows 10 Editions
|
||||
|
||||
TX9XD-98N7V-6WMQ6-BX7FG-H8Q99 Core
|
||||
PVMJN-6DFY6-9CCP6-7BKTT-D3WVR CoreCountrySpecific
|
||||
3KHY7-WNT83-DGQKR-F7HPR-844BM CoreN
|
||||
7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH CoreSingleLanguage
|
||||
NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 Education
|
||||
2WH4N-8QGBV-H22JP-CT43Q-MDWWJ EducationN
|
||||
NPPR9-FWDCX-D2C8J-H872K-2YT43 Enterprise
|
||||
YYVX9-NTFWV-6MDM3-9PT4T-4M68B EnterpriseG
|
||||
44RPN-FTY23-9VTTB-MP9BX-T84FV EnterpriseGN
|
||||
DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4 EnterpriseN
|
||||
DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ EnterpriseS [LTSB 2016]
|
||||
M7XTQ-FN8P6-TTKYV-9D4CC-J462D EnterpriseS [LTSC 2019]
|
||||
QFFDN-GRT3P-VKWWX-X7T3R-8B639 EnterpriseSN [LTSB 2016]
|
||||
92NFX-8DJQP-P6BBQ-THF9C-7CG2H EnterpriseSN [LTSC 2019]
|
||||
W269N-WFGWX-YVC9B-4J6C9-T83GX Professional
|
||||
6TP4R-GNPTD-KYYHQ-7B7DP-J447Y ProfessionalEducation
|
||||
YVWGF-BXNMC-HTQYQ-CPQ99-66QFC ProfessionalEducationN
|
||||
MH37W-N47XK-V7XM9-C7227-GCQG9 ProfessionalN
|
||||
NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J ProfessionalWorkstation
|
||||
9FNHH-K3HBT-3W4TD-6383H-6XYWF ProfessionalWorkstationN
|
||||
7NBT4-WGBQX-MP4H7-QXFF8-YP3KX ServerRdsh [Less than 1809]
|
||||
CPWHC-NT2C7-VYW78-DHDB2-PG3GK ServerRdsh [Greater or Equal 1809]
|
||||
|
||||
GVLK Windows Server Editions
|
||||
|
||||
QN4C6-GBJD2-FB422-GHWJK-GJG2R ServerCloudStorage [Server 2016]
|
||||
CB7KF-BWN84-R7R2Y-793K2-8XDDG ServerDatacenter, ServerDatacenterCor [Server 2016]
|
||||
WMDGN-G9PQG-XVVXX-R3X43-63DFG ServerDatacenter, ServerDatacenterCor [Server 2019]
|
||||
JCKRF-N37P4-C2D82-9YXRT-4M63B ServerSolution, ServerSolutionCor [Server 2016]
|
||||
WVDHN-86M7X-466P6-VHXV7-YY726 ServerSolution, ServerSolutionCor [Server 2019]
|
||||
WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY ServerStandard, ServerStandardCor [Server 2016]
|
||||
N69G4-B89J2-4G8F4-WWYCC-J464C ServerStandard, ServerStandardCor [Server 2019]
|
||||
VP34G-4NPPG-79JTQ-864T4-R3MQX ServerAzureCor [Server 2016]
|
||||
FDNH6-VW9RW-BXPJ7-4XTYG-239TB ServerAzureCor [Server 2019]
|
||||
6Y6KB-N82V8-D8CQV-23MJW-BWTG6 ServerDatacenterACor [Server 1709 and later]
|
||||
DPCNP-XQFKJ-BJF7R-FRC8D-GF6G4 ServerStandardACor [Server 1709 and later]
|
||||
|
||||
-------------------------------------------------------------------------------------------------
|
||||
|
||||
- Make sure to properly and completely remove any previously-installed KMS activator if one already exists.
|
||||
- Open CMD as Admin, and enter the following listed commands in the sequence in which they are given.
|
||||
- Enter Generic Volume License Key (GVLK) (Replace '%key%' with the key from the above list)
|
||||
with the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /ipk %key%
|
||||
|
||||
- Set specific KMS host to 127.0.0.2 [Localhost] with the following command: (Run one by one)
|
||||
- By doing this, the global KMS IP can not replace the KMS38 activation, and can then safely be used with MS Office
|
||||
and other Windows Editions.
|
||||
- It's optional.
|
||||
|
||||
set spp=SoftwareLicensingProduct
|
||||
for /f "tokens=2 delims==" %G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%' and Name like 'Windows%%' and PartialProductKey is not NULL) get ID /VALUE"') do (set app=%G)
|
||||
wmic path %spp% where ID='%app%' call ClearKeyManagementServiceMachine
|
||||
wmic path %spp% where ID='%app%' call ClearKeyManagementServicePort
|
||||
wmic path %spp% where ID='%app%' call SetKeyManagementServiceMachine MachineName="127.0.0.2"
|
||||
wmic path %spp% where ID='%app%' call SetKeyManagementServicePort 1688
|
||||
|
||||
- Make sure slc.dll and gatherosstate.exe files are located in the folder, "C:\Files" and enter
|
||||
following command to generate GenuineTicket.xml file.
|
||||
|
||||
call "C:\Files\gatherosstate.exe"
|
||||
|
||||
- Now a GenuineTicket.xml file should be created in the folder "C:\Files\", copy and paste this file in the
|
||||
folder named, "C:\ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket\"
|
||||
|
||||
- Now apply this ticket using the following commands in this sequence:
|
||||
(In case of server cor and acor editions, copy the clipup.exe file to the folder "C:\Windows\System32\")
|
||||
|
||||
net stop ClipSVC
|
||||
net start ClipSVC
|
||||
|
||||
- Check the expiry date of the activation with the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /xpr
|
||||
|
||||
- If the expiry date is not in the year 2038, then enter the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /rearm-app 55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
set spp=SoftwareLicensingProduct
|
||||
for /f "tokens=2 delims==" %G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%' and Name like 'Windows%%' and PartialProductKey is not NULL) get ID /VALUE"') do (set app=%G)
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /rearm-sku %app%
|
||||
|
||||
- check expiry date again, now it should show activation until the year 2038.
|
||||
|
||||
- Done.
|
||||
|
||||
====================================================================================================
|
||||
Troubleshoot activation issues:
|
||||
====================================================================================================
|
||||
|
||||
- Make sure to completely remove any previously-installed KMS activators if any exist, before
|
||||
installing KMS38 activation.
|
||||
|
||||
- Reboot the system.
|
||||
|
||||
- Now run the script to activate Windows 10, and if unsuccessful,
|
||||
Try the troubleshoot button in settings activation page.
|
||||
If still unsuccessful then read additional troubleshoot options listed below.
|
||||
|
||||
--------------------------------------------
|
||||
|
||||
- Open CMD as Admin, and enter the following command:
|
||||
|
||||
Dism /online /Cleanup-Image /RestoreHealth
|
||||
|
||||
- After its done, reboot the system and Open CMD as Admin, and enter the following command:
|
||||
|
||||
sfc.exe /scannow
|
||||
|
||||
- After it's done, reboot the system and run the activation script, and if unsuccessful,
|
||||
open CMD as administrator again, and enter the following command:
|
||||
|
||||
slmgr.vbs /rearm
|
||||
|
||||
- Reboot the system (important) and run the activation script, and if unsuccessful,
|
||||
You may try to rebuild licensing Tokens.dat as suggested in https://support.microsoft.com/en-us/help/2736303
|
||||
(this will require to repair Office afterwards.)
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
try cleaning the clipup using the following commands, it will reset all the HWID/KMS38 installed
|
||||
licences in the current system installation. open CMD as administrator again, and enter the
|
||||
following commands one by one:
|
||||
|
||||
net stop ClipSVC
|
||||
rundll32 clipc.dll,ClipCleanUpState
|
||||
|
||||
- Reboot the system (important) and run the activation script, and if unsuccessful, it may be
|
||||
time to start over from the very beginning and do a clean install of windows :D
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- Some machines are not able to generate GenuineTicket.xml file using gatherosstate.exe
|
||||
The reason is unknown (to me). Please contact me if it happens to you.
|
||||
|
||||
=========================================================================================================
|
||||
Credits:
|
||||
=========================================================================================================
|
||||
|
||||
@mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade.
|
||||
and Created various methods for HWID/KMS38 Activation
|
||||
*Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://github.com/massgravel/MASSGRAVE
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
@vyvojar Original slshim (slc.dll)
|
||||
https://github.com/vyvojar/slshim/releases
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
HWID/KMS38 methods Suggestions and improvements:-
|
||||
|
||||
@sponpa New ideas for the HWID/KM38 Generation
|
||||
https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257
|
||||
|
||||
@leitek8 Improvements for the slc.dll
|
||||
https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
Kind Help:-
|
||||
|
||||
Thanks for having my back and answering all of my queries. (In no particular order)
|
||||
|
||||
@AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
|
||||
@BorrowedWifi for providing support in fixing English grammar errors in the Read Me.
|
||||
@Chibi ANUBIS and @smashed for testing scripts for ARM64 system.
|
||||
|
||||
Special thanks to @abbodi1406 for providing the great help.
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
This script is a part of 'Microsoft Activation Scripts' project.
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only
|
||||
manage batch script tool which is based on the above mentioned original co-authors activation methods.
|
||||
|
||||
=========================================================================================================
|
File diff suppressed because it is too large
Load Diff
@ -1,16 +0,0 @@
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe Virus Total = 0/66
|
||||
39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe Virus Total = 1/66
|
||||
|
||||
Virus Total Report Date: 12-11-2019
|
||||
|
||||
These files are official Microsoft files and in this script, these are used in
|
||||
cleaning office license in C2R Retail office to VL conversion process.
|
||||
|
||||
The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab
|
||||
You can get the original file here https://s.put.re/WFuXpyWA.zip
|
||||
|
||||
====================================================================================================
|
Binary file not shown.
Binary file not shown.
@ -1,657 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:: =======================================================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: =======================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
set Unattended=
|
||||
set _args=
|
||||
set _elev=
|
||||
set RenTask=
|
||||
set RenActTask=
|
||||
set DeskMenu=
|
||||
set _SkipWinAct=
|
||||
set _end=
|
||||
set "_arg1=%~1"
|
||||
if not defined _arg1 goto :NoProgArgs
|
||||
set "_args=%~1"
|
||||
set "_arg2=%~2"
|
||||
set "_arg3=%~3"
|
||||
if defined _arg2 set "_args=%~1 %~2"
|
||||
if defined _arg3 set "_args=%~1 %~2 %~3"
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
if /i "%%A"=="/swa" set _SkipWinAct=1
|
||||
if /i "%%A"=="/rt" set RenTask=1&set Unattended=1
|
||||
if /i "%%A"=="/rat" set RenActTask=1&set Unattended=1
|
||||
if /i "%%A"=="/dcm" set DeskMenu=1&set Unattended=1)
|
||||
:NoProgArgs
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell -nop -ep bypass -c"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "EchoRed=%_psc% write-host -back Black -fore Red"
|
||||
set "EchoGreen=%_psc% write-host -back Black -fore Green"
|
||||
set "EchoYellow=%_psc% write-host -back Black -fore DarkYellow"
|
||||
set "ELine=echo: & %EchoRed% ==== ERROR ==== &echo:"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
set _end=1
|
||||
goto Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 7600 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 7/8/8.1/10 and their Server equivalent.
|
||||
set _end=1
|
||||
goto Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :Passed
|
||||
) || (
|
||||
if defined _elev goto :E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
if defined _args set _PSarg="""%~f0""" -el """%_args%"""
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
set _end=1
|
||||
goto Done
|
||||
|
||||
:Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
:: Written by @abbodi1406
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if not exist "!_work!\Activate.cmd" (
|
||||
%ELine%
|
||||
echo File [Activate.cmd] does not exist in current folder..
|
||||
echo It's required for the Task Creation.
|
||||
set _end=1
|
||||
goto Done
|
||||
)
|
||||
|
||||
call :check cleanosppx64.exe cleanosppx86.exe
|
||||
if defined _miss set _end=1&goto Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set "_dest=%ProgramData%\Online_KMS_Activation"
|
||||
set "key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks"
|
||||
|
||||
:ActivationRenewal
|
||||
|
||||
cls
|
||||
title Online KMS Activation Renewal
|
||||
mode con cols=98 lines=30
|
||||
set ActTask=
|
||||
set error_=
|
||||
set DelDeskCont=
|
||||
set error_1=
|
||||
|
||||
if defined RenTask goto:Task
|
||||
if defined RenActTask set ActTask=1&goto:Task
|
||||
if defined DeskMenu goto:ContextMenu
|
||||
echo:
|
||||
echo:
|
||||
echo:
|
||||
echo You can apply the option [either 1 or 2] and [3].
|
||||
echo ______________________________________________________
|
||||
echo ^| ^|
|
||||
echo ^| Auto Renewal via Task Scheduler ^|
|
||||
echo ^| ^|
|
||||
echo ^| [1] Create Renewal Task ^|
|
||||
echo ^| ^|
|
||||
echo ^| [2] Create Renewal and Activation Task ^|
|
||||
echo ^|______________________________________________________^|
|
||||
echo ^| ^|
|
||||
echo ^| Manual Renewal via Desktop Context Menu ^|
|
||||
echo ^| ^|
|
||||
echo ^| [3] Add Desktop Context Menu ^|
|
||||
echo ^|______________________________________________________^|
|
||||
echo ^| ^|
|
||||
echo ^| [4] Exit ^|
|
||||
echo ^| ^|
|
||||
echo ^|______________________________________________________^|
|
||||
echo:
|
||||
choice /C:1234 /N /M ". Enter Your Choice [1,2,3,4] : "
|
||||
|
||||
if errorlevel 4 exit /b
|
||||
if errorlevel 3 goto:ContextMenu
|
||||
if errorlevel 2 set ActTask=1&goto:Task
|
||||
if errorlevel 1 goto:Task
|
||||
|
||||
:======================================================================================================================================================
|
||||
|
||||
:Task
|
||||
|
||||
cls
|
||||
if defined ActTask (
|
||||
title Create Renewal And Activation Tasks
|
||||
) else (
|
||||
title Create Renewal Task
|
||||
)
|
||||
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul%
|
||||
)
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul%
|
||||
)
|
||||
If exist "%_dest%\" (
|
||||
@RD /s /q "%_dest%\" %nul%
|
||||
)
|
||||
If exist "%windir%\Online_KMS_Activation_Script\" (
|
||||
@RD /s /q "%windir%\Online_KMS_Activation_Script\" %nul%
|
||||
)
|
||||
If exist "%ProgramData%\Online_KMS_Activation.cmd" (
|
||||
Reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul%
|
||||
del /f /q "%ProgramData%\Online_KMS_Activation.cmd" %nul%
|
||||
set DelDeskCont=1
|
||||
)
|
||||
|
||||
md "%_dest%\BIN\" %nul%
|
||||
|
||||
set "_temp=%SystemRoot%\Temp\_KMS_Task_Work"
|
||||
if exist "%_temp%\" @RD /S /Q "%_temp%\" %nul%
|
||||
md "%_temp%\" %nul%
|
||||
|
||||
call :Export renewal "%_temp%\Renewal.xml" Unicode
|
||||
if defined ActTask (call :Export run_once "%_temp%\Run_Once.xml" Unicode)
|
||||
|
||||
call :Export info "%_dest%\Info.txt" ASCII
|
||||
|
||||
copy /y /b "!_work!\BIN\cleanosppx64.exe" "%_dest%\BIN\cleanosppx64.exe" %nul%
|
||||
copy /y /b "!_work!\BIN\cleanosppx86.exe" "%_dest%\BIN\cleanosppx86.exe" %nul%
|
||||
|
||||
cd /d "!_work!"
|
||||
|
||||
if defined _SkipWinAct (
|
||||
%nul% %_psc% "(gc Activate.cmd) -replace 'set ActWindows=1', 'set ActWindows=0' | Out-File -encoding ASCII "%_dest%\Activate.cmd"" || (set error_=1)
|
||||
) else (
|
||||
copy /y /b "!_work!\Activate.cmd" "%_dest%\Activate.cmd" %nul%
|
||||
)
|
||||
schtasks /create /tn "Online_KMS_Activation_Script-Renewal" /ru "SYSTEM" /xml "%_temp%\Renewal.xml" %nul%
|
||||
if defined ActTask (schtasks /create /tn "Online_KMS_Activation_Script-Run_Once" /ru "SYSTEM" /xml "%_temp%\Run_Once.xml" %nul%)
|
||||
|
||||
if exist "%_temp%\" @RD /S /Q "%_temp%\" %nul%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul || (set error_=1)
|
||||
if defined ActTask reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul || (set error_=1)
|
||||
|
||||
If not exist "%_dest%\Activate.cmd" (set error_=1)
|
||||
If not exist "%_dest%\Info.txt" (set error_=1)
|
||||
If not exist "%_dest%\BIN\cleanosppx64.exe" (set error_=1)
|
||||
If not exist "%_dest%\BIN\cleanosppx86.exe" (set error_=1)
|
||||
|
||||
if defined error_ (
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul%
|
||||
)
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul%
|
||||
)
|
||||
reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul%
|
||||
If exist "%_dest%\" (
|
||||
@RD /s /q "%_dest%\" %nul%
|
||||
)
|
||||
echo _________________________________________________________________
|
||||
echo:
|
||||
%ELine%
|
||||
echo Run the Online KMS Complete Uninstall script and then try again.
|
||||
echo _________________________________________________________________
|
||||
) else (
|
||||
echo:
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
if defined DelDeskCont (
|
||||
%EchoYellow% Previous desktop context menu entry for Online KMS Activation is deleted.
|
||||
echo:
|
||||
)
|
||||
if defined _SkipWinAct (
|
||||
%EchoYellow% %_dest%\Activate.cmd is set to skip Windows Activation.
|
||||
echo:
|
||||
)
|
||||
|
||||
echo Files created:
|
||||
echo %_dest%\BIN\cleanosppx64.exe
|
||||
echo %_dest%\BIN\cleanosppx86.exe
|
||||
echo %_dest%\Activate.cmd
|
||||
echo %_dest%\Info.txt
|
||||
echo:
|
||||
echo Scheduled Tasks created:
|
||||
echo \Online_KMS_Activation_Script-Renewal
|
||||
if defined ActTask (echo \Online_KMS_Activation_Script-Run_Once)
|
||||
echo:
|
||||
echo It's recommended to set exclusion for the following file in your Antivirus Program.
|
||||
echo:
|
||||
echo %_dest%\Activate.cmd
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
if defined ActTask (
|
||||
%EchoGreen% Online KMS Activation - Renewal and Activation Tasks are successfully created.
|
||||
) else (
|
||||
%EchoGreen% Online KMS Activation - Renewal Task is successfully created.
|
||||
)
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
)
|
||||
|
||||
goto Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:ContextMenu
|
||||
|
||||
cls
|
||||
title Add Desktop Context Menu
|
||||
|
||||
If exist "%ProgramData%\Online_KMS_Activation.cmd" (
|
||||
del /f /q "%ProgramData%\Online_KMS_Activation.cmd" %nul%
|
||||
set DelDeskCont=1
|
||||
)
|
||||
|
||||
reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul%
|
||||
|
||||
if exist "%_dest%\BIN\" (
|
||||
@RD /s /q "%_dest%\BIN\" %nul%
|
||||
)
|
||||
|
||||
md "%_dest%\BIN\" %nul%
|
||||
copy /y /b "!_work!\BIN\cleanosppx64.exe" "%_dest%\BIN\cleanosppx64.exe" %nul%
|
||||
copy /y /b "!_work!\BIN\cleanosppx86.exe" "%_dest%\BIN\cleanosppx86.exe" %nul%
|
||||
|
||||
if exist "%_dest%\Activate.cmd" (
|
||||
del /f /q "%_dest%\Activate.cmd" %nul%
|
||||
)
|
||||
|
||||
cd /d "!_work!"
|
||||
|
||||
if defined _SkipWinAct (
|
||||
%nul% %_psc% "(gc Activate.cmd) -replace 'set ActWindows=1', 'set ActWindows=0' | Out-File -encoding ASCII "%_dest%\Activate.cmd"" || (set error_=1)
|
||||
) else (
|
||||
copy /y /b "!_work!\Activate.cmd" "%_dest%\Activate.cmd" %nul%
|
||||
)
|
||||
|
||||
if exist "%_dest%\Info.txt" (
|
||||
del /f /q "%_dest%\Info.txt" %nul%
|
||||
)
|
||||
|
||||
call :Export info "%_dest%\Info.txt" ASCII
|
||||
|
||||
reg add "HKCR\DesktopBackground\shell\Activate Windows - Office" /v "Icon" /t REG_SZ /d "%SystemRoot%%\System32\shell32.dll,71" /f >nul 2>&1 || (set error_1=1)
|
||||
reg add "HKCR\DesktopBackground\shell\Activate Windows - Office\command" /ve /d "%_dest%\Activate.cmd" /f %nul% || (set error_1=1)
|
||||
|
||||
If not exist "%_dest%\Activate.cmd" (set error_=1)
|
||||
If not exist "%_dest%\Info.txt" (set error_=1)
|
||||
If not exist "%_dest%\BIN\cleanosppx64.exe" (set error_=1)
|
||||
If not exist "%_dest%\BIN\cleanosppx86.exe" (set error_=1)
|
||||
|
||||
reg query "HKCR\DesktopBackground\shell\Activate Windows - Office" %nul% || (set error_1=1)
|
||||
|
||||
if defined error_1 (
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul%
|
||||
)
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul%
|
||||
)
|
||||
reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul%
|
||||
If exist "%_dest%\" (
|
||||
@RD /s /q "%_dest%\" %nul%
|
||||
)
|
||||
echo _________________________________________________________________
|
||||
echo:
|
||||
%ELine%
|
||||
echo Run the Online KMS Complete Uninstall script and then try again.
|
||||
echo _________________________________________________________________
|
||||
) else (
|
||||
echo:
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
if defined DelDeskCont (
|
||||
%EchoYellow% Previous desktop context menu entry for Online KMS Activation is deleted.
|
||||
echo:
|
||||
)
|
||||
if defined _SkipWinAct (
|
||||
%EchoYellow% %_dest%\Activate.cmd is set to skip Windows Activation.
|
||||
echo:
|
||||
)
|
||||
|
||||
echo Files created:
|
||||
echo %_dest%\BIN\cleanosppx64.exe
|
||||
echo %_dest%\BIN\cleanosppx86.exe
|
||||
echo %_dest%\Activate.cmd
|
||||
echo %_dest%\Info.txt
|
||||
echo:
|
||||
echo Registry entry added:
|
||||
echo HKCR\DesktopBackground\shell\Activate Windows - Office
|
||||
echo HKCR\DesktopBackground\shell\Activate Windows - Office\command
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
%EchoGreen% Desktop context menu entry for Online KMS Activation is successfully created.
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Done
|
||||
echo:
|
||||
if defined Unattended (
|
||||
echo Exiting in 3 seconds...
|
||||
if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3)
|
||||
exit /b
|
||||
)
|
||||
if defined _end (
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
) else (
|
||||
echo Press any key to go back...
|
||||
pause >nul
|
||||
goto ActivationRenewal
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:info:
|
||||
====================================================================================================
|
||||
Online KMS Activation:
|
||||
====================================================================================================
|
||||
|
||||
The use of this script is to activate / renew your Windows /Server /Office license
|
||||
using online KMS.
|
||||
|
||||
- Scheduled task name (If Renewal Task is created) (Weekly).
|
||||
\Online_KMS_Activation_Script-Renewal
|
||||
|
||||
- Scheduled task name (If Activation Task is created).
|
||||
\Online_KMS_Activation_Script-Run_Once
|
||||
|
||||
The scheduled task runs only if the system is connected to the Internet.
|
||||
Activation Task will run on the system login and after successful activation, this task will
|
||||
delete itself.
|
||||
|
||||
- If system preactivation is done via HWID + Online KMS, and HWID was applied but was not
|
||||
successful due to lack of internet at the time of installation of Windows, in that case,
|
||||
Online KMS script will be set to skip Windows activation.
|
||||
|
||||
- Registry entry name and location (If desktop context menu is created).
|
||||
HKCR\DesktopBackground\shell\Activate Windows - Office
|
||||
|
||||
For complete script and more info, browse the script homepage.
|
||||
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe Virus Total = 0/66
|
||||
39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe Virus Total = 1/66
|
||||
|
||||
Virus Total Report Date: 12-11-2019
|
||||
|
||||
These files are official Microsoft files and in this script, these are used in
|
||||
cleaning office license in C2R Retail office to VL conversion process.
|
||||
|
||||
The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab
|
||||
You can get the original file here https://s.put.re/WFuXpyWA.zip
|
||||
|
||||
====================================================================================================
|
||||
|
||||
Online KMS Activation script is just a fork of @abbodi1406's KMS_VL_ALL Project.
|
||||
KMS_VL_ALL homepage: https://forums.mydigitallife.net/posts/838808
|
||||
|
||||
This fork was made to avoid having any KMS binary files and system can be activated using
|
||||
some manual commands or transparent batch script files.
|
||||
|
||||
Online KMS Activation script is a part of 'Microsoft Activation Scripts'
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
====================================================================================================
|
||||
:info:
|
||||
|
||||
:renewal:
|
||||
<?xml version="1.0" encoding="UTF-16"?>
|
||||
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
|
||||
<RegistrationInfo>
|
||||
<Source>Microsoft Corporation</Source>
|
||||
<Date>1999-01-01T12:00:00.34375</Date>
|
||||
<Author>RPO/WindowsAddict</Author>
|
||||
<Version>1.0</Version>
|
||||
<Description>Online_KMS_Activation_Script-Renewal - Weekly Activation Renewal Task</Description>
|
||||
<URI>\Online_KMS_Activation_Script-Renewal</URI>
|
||||
<SecurityDescriptor>D:P(A;;FA;;;SY)(A;;FA;;;BA)(A;;FRFX;;;LS)(A;;FRFW;;;S-1-5-80-123231216-2592883651-3715271367-3753151631-4175906628)(A;;FR;;;S-1-5-4)</SecurityDescriptor>
|
||||
</RegistrationInfo>
|
||||
<Triggers>
|
||||
<CalendarTrigger>
|
||||
<StartBoundary>1999-01-01T12:00:00</StartBoundary>
|
||||
<Enabled>true</Enabled>
|
||||
<ScheduleByWeek>
|
||||
<DaysOfWeek>
|
||||
<Sunday />
|
||||
</DaysOfWeek>
|
||||
<WeeksInterval>1</WeeksInterval>
|
||||
</ScheduleByWeek>
|
||||
</CalendarTrigger>
|
||||
</Triggers>
|
||||
<Principals>
|
||||
<Principal id="LocalSystem">
|
||||
<UserId>S-1-5-18</UserId>
|
||||
<RunLevel>HighestAvailable</RunLevel>
|
||||
</Principal>
|
||||
</Principals>
|
||||
<Settings>
|
||||
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
|
||||
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
|
||||
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
|
||||
<AllowHardTerminate>true</AllowHardTerminate>
|
||||
<StartWhenAvailable>true</StartWhenAvailable>
|
||||
<RunOnlyIfNetworkAvailable>true</RunOnlyIfNetworkAvailable>
|
||||
<IdleSettings>
|
||||
<StopOnIdleEnd>false</StopOnIdleEnd>
|
||||
<RestartOnIdle>false</RestartOnIdle>
|
||||
</IdleSettings>
|
||||
<AllowStartOnDemand>true</AllowStartOnDemand>
|
||||
<Enabled>true</Enabled>
|
||||
<Hidden>true</Hidden>
|
||||
<RunOnlyIfIdle>false</RunOnlyIfIdle>
|
||||
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
|
||||
<UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
|
||||
<WakeToRun>false</WakeToRun>
|
||||
<ExecutionTimeLimit>PT10M</ExecutionTimeLimit>
|
||||
<Priority>7</Priority>
|
||||
<RestartOnFailure>
|
||||
<Interval>PT2M</Interval>
|
||||
<Count>3</Count>
|
||||
</RestartOnFailure>
|
||||
</Settings>
|
||||
<Actions Context="LocalSystem">
|
||||
<Exec>
|
||||
<Command>%ProgramData%\Online_KMS_Activation\Activate.cmd</Command>
|
||||
<Arguments>Task</Arguments>
|
||||
</Exec>
|
||||
</Actions>
|
||||
</Task>
|
||||
:renewal:
|
||||
|
||||
:run_once:
|
||||
<?xml version="1.0" encoding="UTF-16"?>
|
||||
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
|
||||
<RegistrationInfo>
|
||||
<Source>Microsoft Corporation</Source>
|
||||
<Date>1999-01-01T12:00:00.34375</Date>
|
||||
<Author>RPO/WindowsAddict</Author>
|
||||
<Version>1.0</Version>
|
||||
<Description>Online_KMS_Activation_Script-Run_Once - Run and Delete itself on first Internet Contact</Description>
|
||||
<URI>\Online_KMS_Activation_Script-Run_Once</URI>
|
||||
<SecurityDescriptor>D:P(A;;FA;;;SY)(A;;FA;;;BA)(A;;FRFX;;;LS)(A;;FRFW;;;S-1-5-80-123231216-2592883651-3715271367-3753151631-4175906628)(A;;FR;;;S-1-5-4)</SecurityDescriptor>
|
||||
</RegistrationInfo>
|
||||
<Triggers>
|
||||
<LogonTrigger>
|
||||
<Enabled>true</Enabled>
|
||||
</LogonTrigger>
|
||||
</Triggers>
|
||||
<Principals>
|
||||
<Principal id="LocalSystem">
|
||||
<UserId>S-1-5-18</UserId>
|
||||
<RunLevel>HighestAvailable</RunLevel>
|
||||
</Principal>
|
||||
</Principals>
|
||||
<Settings>
|
||||
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
|
||||
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
|
||||
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
|
||||
<AllowHardTerminate>true</AllowHardTerminate>
|
||||
<StartWhenAvailable>true</StartWhenAvailable>
|
||||
<RunOnlyIfNetworkAvailable>true</RunOnlyIfNetworkAvailable>
|
||||
<IdleSettings>
|
||||
<StopOnIdleEnd>false</StopOnIdleEnd>
|
||||
<RestartOnIdle>false</RestartOnIdle>
|
||||
</IdleSettings>
|
||||
<AllowStartOnDemand>true</AllowStartOnDemand>
|
||||
<Enabled>true</Enabled>
|
||||
<Hidden>true</Hidden>
|
||||
<RunOnlyIfIdle>false</RunOnlyIfIdle>
|
||||
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
|
||||
<UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
|
||||
<WakeToRun>false</WakeToRun>
|
||||
<ExecutionTimeLimit>PT10M</ExecutionTimeLimit>
|
||||
<Priority>7</Priority>
|
||||
<RestartOnFailure>
|
||||
<Interval>PT2M</Interval>
|
||||
<Count>3</Count>
|
||||
</RestartOnFailure>
|
||||
</Settings>
|
||||
<Actions Context="LocalSystem">
|
||||
<Exec>
|
||||
<Command>%ProgramData%\Online_KMS_Activation\Activate.cmd</Command>
|
||||
<Arguments>Task</Arguments>
|
||||
</Exec>
|
||||
</Actions>
|
||||
</Task>
|
||||
:run_once:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Echo all the missing files.
|
||||
:: Written by @abbodi1406 (MDL)
|
||||
|
||||
:check
|
||||
|
||||
for %%# in (%1 %2) do (if not exist "!_work!\BIN\%%#" (if defined _miss (set "_miss=!_miss! %%#") else (set "_miss=%%#")))
|
||||
if defined _miss (
|
||||
%ELine%
|
||||
echo Following required file^(s^) is missing in 'BIN' folder. Aborting...
|
||||
echo:
|
||||
echo !_miss!
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Extract the text from batch script without character and file encoding issue
|
||||
:: Thanks to @abbodi1406
|
||||
|
||||
:Export
|
||||
%nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::%~3);" &exit/b
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,264 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
:: For unattended mode, run the script with /u parameter.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:: =======================================================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: =======================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
title Online KMS Complete Uninstall
|
||||
set Unattended=
|
||||
set _args=
|
||||
set _elev=
|
||||
set "_arg1=%~1"
|
||||
if not defined _arg1 goto :NoProgArgs
|
||||
set "_args=%~1"
|
||||
set "_arg2=%~2"
|
||||
if defined _arg2 set "_args=%~1 %~2"
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
if /i "%%A"=="/u" set Unattended=1)
|
||||
:NoProgArgs
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell -nop -ep bypass -c"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "EchoRed=%_psc% write-host -back Black -fore Red"
|
||||
set "EchoGreen=%_psc% write-host -back Black -fore Green"
|
||||
set "ELine=echo: & %EchoRed% ==== ERROR ==== &echo:"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto UN_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 7600 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 7/8/8.1/10 and their Server equivalent.
|
||||
goto UN_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :Passed
|
||||
) || (
|
||||
if defined _elev goto :E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
if defined _args set _PSarg="""%~f0""" -el """%_args%"""
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto UN_Done
|
||||
|
||||
:Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode con: cols=98 lines=30
|
||||
setlocal EnableDelayedExpansion
|
||||
set "key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks"
|
||||
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (
|
||||
echo Deleting [Task] Online_KMS_Activation_Script-Renewal
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul%
|
||||
)
|
||||
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (
|
||||
echo Deleting [Task] Online_KMS_Activation_Script-Run_Once
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul%
|
||||
)
|
||||
|
||||
If exist "%windir%\Online_KMS_Activation_Script\" (
|
||||
echo Deleting [Folder] %windir%\Online_KMS_Activation_Script\
|
||||
@RD /s /q "%windir%\Online_KMS_Activation_Script\" %nul%
|
||||
)
|
||||
|
||||
If exist "%ProgramData%\Online_KMS_Activation\" (
|
||||
echo Deleting [Folder] %ProgramData%\Online_KMS_Activation\
|
||||
@RD /s /q "%ProgramData%\Online_KMS_Activation\" %nul%
|
||||
)
|
||||
|
||||
if exist "%ProgramData%\Online_KMS_Activation.cmd" (
|
||||
echo Deleting [File] %ProgramData%\Online_KMS_Activation.cmd
|
||||
del /f /q "%ProgramData%\Online_KMS_Activation.cmd" %nul%
|
||||
)
|
||||
|
||||
reg query "HKCR\DesktopBackground\shell\Activate Windows - Office" %nul% && (
|
||||
echo Deleting [Context Menu Registry] HKCR\DesktopBackground\shell\Activate Windows - Office
|
||||
Reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul%
|
||||
)
|
||||
|
||||
echo:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Clear-KMS-Cache.cmd
|
||||
:: https://forums.mydigitallife.net/posts/1511883
|
||||
:: Written by @abbodi1406 (MDL)
|
||||
|
||||
set "SysPath=%Windir%\System32"
|
||||
if exist "%Windir%\Sysnative\reg.exe" (set "SysPath=%Windir%\Sysnative")
|
||||
set "Path=%SysPath%;%Windir%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\"
|
||||
set "OSPP=SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform"
|
||||
set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
|
||||
wmic path SoftwareLicensingProduct where (Description like '%%KMSCLIENT%%') get Name 2>nul | findstr /i Windows 1>nul && (set SppHook=1) || (set SppHook=0)
|
||||
wmic path SoftwareLicensingProduct where (Description like '%%KMSCLIENT%%') get Name 2>nul | findstr /i Office 1>nul && (set SppHook=1)
|
||||
wmic path OfficeSoftwareProtectionService get Version >nul 2>&1 && (set OsppHook=1) || (set OsppHook=0)
|
||||
if %SppHook% NEQ 0 call :UN_cKMS SoftwareLicensingProduct SoftwareLicensingService SPP
|
||||
if %OsppHook% NEQ 0 call :UN_cKMS OfficeSoftwareProtectionProduct OfficeSoftwareProtectionService OSPP
|
||||
call :UN_cREG >nul 2>&1
|
||||
echo:
|
||||
goto UN_Verify
|
||||
|
||||
:UN_cKMS
|
||||
echo Clearing %3 KMS Cache...
|
||||
set spp=%1
|
||||
set sps=%2
|
||||
for /f "tokens=2 delims==" %%G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%') get ID /VALUE" 2^>nul') do (set app=%%G&call :UN_cAPP)
|
||||
for /f "tokens=2 delims==" %%A in ('"wmic path %sps% get Version /VALUE"') do set ver=%%A
|
||||
wmic path %sps% where version='%ver%' call ClearKeyManagementServiceMachine >nul 2>&1
|
||||
wmic path %sps% where version='%ver%' call ClearKeyManagementServicePort >nul 2>&1
|
||||
wmic path %sps% where version='%ver%' call DisableKeyManagementServiceDnsPublishing 1 >nul 2>&1
|
||||
wmic path %sps% where version='%ver%' call DisableKeyManagementServiceHostCaching 1 >nul 2>&1
|
||||
goto :eof
|
||||
|
||||
:UN_cAPP
|
||||
wmic path %spp% where ID='%app%' call ClearKeyManagementServiceMachine >nul 2>&1
|
||||
wmic path %spp% where ID='%app%' call ClearKeyManagementServicePort >nul 2>&1
|
||||
goto :eof
|
||||
|
||||
:UN_cREG
|
||||
reg delete "HKLM\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f
|
||||
reg delete "HKLM\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f
|
||||
reg delete "HKLM\%SPPk%" /f /v KeyManagementServiceName
|
||||
reg delete "HKLM\%SPPk%" /f /v KeyManagementServicePort
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f
|
||||
reg delete "HKLM\%OSPP%\59a52881-a989-479d-af46-f275c6370663" /f
|
||||
reg delete "HKLM\%OSPP%\0ff1ce15-a989-479d-af46-f275c6370663" /f
|
||||
reg delete "HKLM\%OSPP%" /f /v KeyManagementServiceName
|
||||
reg delete "HKLM\%OSPP%" /f /v KeyManagementServicePort
|
||||
if %OsppHook% NEQ 1 (
|
||||
reg delete "HKLM\%OSPP%" /f
|
||||
reg delete "HKU\S-1-5-20\%OSPP%" /f
|
||||
)
|
||||
goto :eof
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:UN_Verify
|
||||
|
||||
set error_=
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (set error_=1)
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (set error_=1)
|
||||
If exist "%windir%\Online_KMS_Activation_Script\" (set error_=1)
|
||||
if exist "%ProgramData%\Online_KMS_Activation\" (set error_=1)
|
||||
|
||||
reg query "HKCR\DesktopBackground\shell\Activate Windows - Office" >nul 2>&1 && (set error_=1)
|
||||
if exist "%ProgramData%\Online_KMS_Activation.cmd" (set error_=1)
|
||||
|
||||
if defined error_ (
|
||||
echo ______________________________________
|
||||
%ELine%
|
||||
echo Try Again.
|
||||
echo ______________________________________
|
||||
) else (
|
||||
echo _________________________________________________________________
|
||||
echo:
|
||||
%EchoGreen% Online KMS Complete Uninstall is done successfully.
|
||||
echo _________________________________________________________________
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:UN_Done
|
||||
|
||||
echo:
|
||||
if defined Unattended (
|
||||
echo Exiting in 3 seconds...
|
||||
if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3)
|
||||
exit /b
|
||||
)
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,657 +0,0 @@
|
||||
====================================================================================================
|
||||
|
||||
Online KMS Activation script is just a fork of @abbodi1406's KMS_VL_ALL Project.
|
||||
KMS_VL_ALL homepage: https://forums.mydigitallife.net/posts/838808
|
||||
|
||||
This fork was made to avoid having any KMS binary files and system can be activated using
|
||||
some manual commands or transparent batch script files.
|
||||
|
||||
This script is a part of 'Microsoft Activation Scripts' project.
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
====================================================================================================
|
||||
Online KMS Activation:
|
||||
====================================================================================================
|
||||
|
||||
- This KMS script skips the activation of any permanently / KMS38-activated product.
|
||||
- This KMS script can activate both Retail and VL Windows / Server installation.
|
||||
- This KMS script can activate C2R Retail and VL Office, but not 2010/2013 MSI Retail Office.
|
||||
|
||||
----------------------
|
||||
- Activation Renewal
|
||||
----------------------
|
||||
|
||||
- KMS activates Windows / Server / Office for 180 Days. (For Core/ProWMC edition it is 30/45 Days)
|
||||
|
||||
- By design, using the KMS activation method, the system contacts the registered server every 7
|
||||
days, and if contacted successfully it will automatically renew and reset the activation for the
|
||||
the full period of 180 days again, starting from the day of successful contact.
|
||||
If the system cannot contact the server, it will be deactivated after 180 days and it will
|
||||
remain deactivated until contact can be restored.
|
||||
|
||||
- The KMS servers I've added have been working steadily for two to three years, but there can be
|
||||
no guarantee that they will remain online indefinitely. If a registered server goes
|
||||
down, you will need to create a renewal task, or do a manual renewal, for the lifetime of the
|
||||
activation.
|
||||
|
||||
There are 3 ways you can renew the KMS server and as a result, renew the activation.
|
||||
|
||||
1- Activate.cmd
|
||||
|
||||
Run this file whenever the system needs activation. Depending upon the particular (never fully-knowable)
|
||||
circumstances, a successful activation may last for a period of a MINIMUM of 180 days,
|
||||
or a maximum of the full life of the machine it's running on, and you may never need to run it again.
|
||||
|
||||
2- Manual Renewal via Desktop Context Menu
|
||||
|
||||
This method is exactly same as above but here we put the following files in,
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
C:\ProgramData\Online_KMS_Activation\Info.txt
|
||||
|
||||
and create registry entries in,
|
||||
HKCR\DesktopBackground\shell\Activate Windows - Office
|
||||
HKCR\DesktopBackground\shell\Activate Windows - Office\command
|
||||
|
||||
It creates an easy to reach Desktop context menu for the manual activation renewal.
|
||||
|
||||
3- Automatic Renewal via Task Scheduler
|
||||
|
||||
This method put the following files in,
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
C:\ProgramData\Online_KMS_Activation\Info.txt
|
||||
|
||||
And creates a scheduled task to run the script every 7 days.
|
||||
|
||||
The scheduled task runs only if the system is connected to the Internet.
|
||||
With this method, the Activation task can also be created which will run on the system login
|
||||
and after successful activation, this task will delete itself.
|
||||
|
||||
IMPORTANT NOTE - Some sensitive AV's may flag the Automatic Renewal via the Task, and not
|
||||
because of KMS, because for them it's suspicious to run long scripts in the background as Tasks.
|
||||
|
||||
It's recommended to set exclusions in Antivirus for
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
or
|
||||
use the 1st or 2nd option for activation renewal.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
----------------------
|
||||
- Remarks
|
||||
----------------------
|
||||
|
||||
- This Online KMS Activation provides immediate global activation for Windows 8.1 and Windows 10, which
|
||||
means that in the following three scenarios, the system will self-activate when connected to the
|
||||
internet, and also means that users will not need to manually run the activation script again.
|
||||
|
||||
Scenario 1: Subsequent installation or alteration of any 2013, 2016, or 2019 Volume License
|
||||
(VL) Office product.
|
||||
Scenario 2: Windows edition change (with GVLK).
|
||||
Scenario 3: Date change, system hardware change, etc.
|
||||
|
||||
- What is left in the system in the activation process?
|
||||
- Activate.cmd
|
||||
After activation, it leaves only the KMS Server name in the registry, which helps you to get the
|
||||
above-mentioned global activation feature whereby the system auto-renews the activations,
|
||||
so it's a good thing if you leave the server name in the registry.
|
||||
However, you can clear this registered KMS Server name upon activation, and do that, open
|
||||
the script with notepad and set Clear-KMS-Cache to 1 from 0.
|
||||
What is left in the system when Renewal methods are installed, has been mentioned.
|
||||
|
||||
- This script includes the most-stable KMS servers (6+) list. The server selection process is
|
||||
fully automatic. You don't need to worry about the server's availability.
|
||||
|
||||
- If your system date is incorrect (beyond 180 days) and you are offline, the system will be
|
||||
deactivated, but will automatically reactivate when you correct the system date.
|
||||
|
||||
- Why should you choose the Online KMS activation method over offline KMS?
|
||||
The main benefit of Online KMS activation is that it doesn't need any KMS binary file and system
|
||||
can be activated using some manual commands or transparent batch script files.
|
||||
So this is for those who don't like/have difficulties/trust issue in offline KMS because of its
|
||||
binary files and antivirus detections.
|
||||
|
||||
If you prefer offline KMS then checkout an open-source activator,
|
||||
@abbodi1406's KMS_VL_ALL https://forums.mydigitallife.net/posts/838808
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
--------------------------------------
|
||||
- Office C2R Retail to VL conversion
|
||||
--------------------------------------
|
||||
|
||||
This activation script will convert Office C2R Retail to Volume without needing separate tools.
|
||||
|
||||
- Supports: Office 365, Office 2019, Office 2016, Office 2013
|
||||
- Activated Retail products will be skipped from conversion
|
||||
this includes valid Office 365 subscriptions, or perpetual Office (MAK, OEM, MSDN, Retail..)
|
||||
- Current Office licenses will be cleaned up (unless retail-activated Office detected)
|
||||
then, proper Volume licenses will be installed based on the detected Product IDs
|
||||
- Office Mondo suite cover all products, if detected, only its licenses will be installed
|
||||
- Office 365 products will be converted with Mondo licenses by default
|
||||
also, corresponding Office 365 Retail Grace Key will be installed
|
||||
- Office 2016 products will be converted with corresponding Office 2019 licenses
|
||||
- Office Professional suite will be converted with Office 2019 ProPlus licenses
|
||||
- Office HomeBusiness/HomeStudent suites will be converted with Office 2019 Standard licenses
|
||||
- If Office 2019 RTM licenses are not detected, Office 2016 licenses will be used instead
|
||||
- Office 2013 products follow the same logic but handled separately
|
||||
- If main products SKUs are detected, single apps licenses will not be installed to avoid duplication
|
||||
|
||||
- SKUs:
|
||||
O365ProPlus, O365Business, O365SmallBusPrem, O365HomePrem, O365EduCloud
|
||||
ProPlus, Professional, Standard, HomeBusiness, HomeStudent, Visio, Project
|
||||
|
||||
* Apps:
|
||||
Access, Excel, InfoPath, Onenote, Outlook, PowerPoint, Publisher, SkypeForBusiness, Word,
|
||||
Groove (OneDrive for Business)
|
||||
|
||||
- O365ProPlus, O365Business, O365SmallBusPrem, ProPlus cover all apps
|
||||
Professional cover all apps except SkypeForBusiness
|
||||
Standard cover all apps except Access, SkypeForBusiness
|
||||
|
||||
## Notice
|
||||
|
||||
- On Windows 7, Office 2016/2019 licensing service require Universal C Runtime to work correctly
|
||||
- UCRT is available in the latest Monthly Rollup, or the separate update KB3118401
|
||||
- Additionally, Office programs themselves require recent Windows 7 updates to start properly
|
||||
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe Virus Total = 0/66
|
||||
39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe Virus Total = 1/66
|
||||
|
||||
Virus Total Report Date: 12-11-2019
|
||||
|
||||
These files are official Microsoft files and in this script, these are used in
|
||||
cleaning office license in C2R Retail office to VL conversion process.
|
||||
|
||||
The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab
|
||||
You can get the original file here https://s.put.re/WFuXpyWA.zip
|
||||
|
||||
====================================================================================================
|
||||
|
||||
How does it work?
|
||||
Is it safe?
|
||||
|
||||
https://pastebin.com/raw/7Xyaf15Z
|
||||
Mirror:
|
||||
https://textuploader.com/1dg8d/raw
|
||||
|
||||
====================================================================================================
|
||||
Products Compatibility:
|
||||
====================================================================================================
|
||||
|
||||
Supported Products: [Only Volume-capable]
|
||||
|
||||
Windows 8 / 8.1 / 10 (all official editions, except Windows 10 S)
|
||||
Windows 7 (Enterprise /N/E, Professional /N/E, Embedded Standard/POSReady/ThinPC)
|
||||
Windows Server 2008 R2 / 2012 / 2012 R2 / 2016 / 2019
|
||||
Office Volume 2010 / 2013 / 2016 / 2019
|
||||
|
||||
[Activation script will convert Office C2R Retail O365/2013/2016/2019 to Volume]
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Unsupported Products:
|
||||
|
||||
Office Retail [Office MSI Retail 2010/2013]
|
||||
Windows Editions which do not support KMS activation by design:
|
||||
Windows Evaluation Editions
|
||||
Windows 7 (Starter, HomeBasic, HomePremium, Ultimate)
|
||||
Windows 10 (Cloud "S", IoTEnterprise, IoTEnterpriseS, ProfessionalSingleLanguage... etc)
|
||||
Windows Server (Server Foundation, Storage Server, Home Server 2011... etc)
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
These editions are only KMS-activatable for 45 days at max:
|
||||
Windows 10 Home edition variants
|
||||
Windows 8.1 Core edition variants, Pro with Media Center, Pro Student
|
||||
|
||||
These editions are only KMS-activatable for 30 days at max:
|
||||
Windows 8 Core edition variants, Pro with Media Center
|
||||
|
||||
Notes:
|
||||
Supported Windows products do need volume conversion, only the GVLK (KMS key) is needed, which
|
||||
the script will install accordingly.
|
||||
KMS Activation works in all (MBR, GPT, UEFI, BIOS) systems.
|
||||
|
||||
====================================================================================================
|
||||
Switches in the Script:
|
||||
====================================================================================================
|
||||
|
||||
* Applies to MAS Separate Files version
|
||||
|
||||
- For unattended mode, run the scripts with /u parameter.
|
||||
|
||||
Activate.cmd /u
|
||||
Uninstall.cmd /u
|
||||
|
||||
To create Renewal Task in unattended mode,
|
||||
Renewal_Setup.cmd /rt
|
||||
|
||||
To create Renewal and Activation Task in unattended mode,
|
||||
Renewal_Setup.cmd /rat
|
||||
|
||||
To create desktop context menu in unattended mode,
|
||||
Renewal_Setup.cmd /dcm
|
||||
|
||||
To skip Windows activation in renewal script,
|
||||
Renewal_Setup.cmd /rat /swa
|
||||
or
|
||||
Renewal_Setup.cmd /dcm /swa
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
- Activate.cmd
|
||||
|
||||
- To run the script in Debug mode to find out the cause of errors in activation or just details,
|
||||
search "set _Debug=" and change the value from 0 to 1.
|
||||
|
||||
- To replace KMS38 activation with KMS activation, search "set SkipKMS38=" and change the value
|
||||
from 1 to 0.
|
||||
|
||||
- To skip Windows activation, search "set ActWindows=" and change the value from 1 to 0.
|
||||
- To skip Office activation, search "set ActOffice=" and change the value from 1 to 0.
|
||||
- This is not effective if Windows and/or Office installation is already Volume (GVLK installed)
|
||||
- In [Online KMS + HWID] $OEM$ preactivation, Windows KMS activation is turned off
|
||||
by default.
|
||||
|
||||
- To turn OFF auto conversion for Office C2R Retail to Volume, search "set AutoR2V=" and
|
||||
change the value from 1 to 0.
|
||||
|
||||
- To set the script to use only one specific KMS server address, search "set KMS_Server="
|
||||
paste the server address after the = sign.
|
||||
|
||||
- To clear the KMS cache, search "set Clear-KMS-Cache=" and change the value from 0 to 1.
|
||||
- Registered KMS server address (cache) enables the system to automatically renew the license
|
||||
(for next 180 days) every 7 days, as long as the server is online.
|
||||
- This process is the same as how the legal KMS works, so no security program will flag
|
||||
this behavior.
|
||||
- Changing this option here won't have any effect if manual (Desktop Context menu) and/or auto,
|
||||
renewal activation script is installed. [default (0)].
|
||||
- I recommend leaving this option as default (0).
|
||||
|
||||
====================================================================================================
|
||||
Manual Activation Process:
|
||||
====================================================================================================
|
||||
|
||||
- Prerequisite:
|
||||
|
||||
online Public KMS Server List:
|
||||
|
||||
kms.srv.crsoo.com
|
||||
kms.loli.beer
|
||||
kms8.MSGuides.com
|
||||
|
||||
kms9.MSGuides.com
|
||||
kms.zhuxiaole.org
|
||||
kms.lolico.moe
|
||||
kms.moeclub.org
|
||||
|
||||
Generic Volume License Key (GVLK):
|
||||
Thanks to @abbodi1406 for the Key collection.
|
||||
|
||||
GVLK Edition
|
||||
|
||||
Windows 10
|
||||
|
||||
TX9XD-98N7V-6WMQ6-BX7FG-H8Q99 Home
|
||||
3KHY7-WNT83-DGQKR-F7HPR-844BM Home N
|
||||
7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH Home Single Language
|
||||
PVMJN-6DFY6-9CCP6-7BKTT-D3WVR Home China
|
||||
W269N-WFGWX-YVC9B-4J6C9-T83GX Pro
|
||||
MH37W-N47XK-V7XM9-C7227-GCQG9 Pro N
|
||||
6TP4R-GNPTD-KYYHQ-7B7DP-J447Y Pro Education
|
||||
YVWGF-BXNMC-HTQYQ-CPQ99-66QFC Pro Education N
|
||||
NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J Pro Workstation
|
||||
9FNHH-K3HBT-3W4TD-6383H-6XYWF Pro Workstation N
|
||||
NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 Education
|
||||
2WH4N-8QGBV-H22JP-CT43Q-MDWWJ Education N
|
||||
NPPR9-FWDCX-D2C8J-H872K-2YT43 Enterprise
|
||||
DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4 Enterprise N
|
||||
YYVX9-NTFWV-6MDM3-9PT4T-4M68B Enterprise G
|
||||
44RPN-FTY23-9VTTB-MP9BX-T84FV Enterprise G N
|
||||
WNMTR-4C88C-JK8YV-HQ7T2-76DF9 Enterprise 2015 LTSB
|
||||
2F77B-TNFGY-69QQF-B8YKP-D69TJ Enterprise 2015 LTSB N
|
||||
DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ Enterprise 2016 LTSB
|
||||
QFFDN-GRT3P-VKWWX-X7T3R-8B639 Enterprise 2016 LTSB N
|
||||
M7XTQ-FN8P6-TTKYV-9D4CC-J462D Enterprise LTSC 2019
|
||||
92NFX-8DJQP-P6BBQ-THF9C-7CG2H Enterprise LTSC 2019 N
|
||||
CPWHC-NT2C7-VYW78-DHDB2-PG3GK Enterprise for Virtual Desktops
|
||||
7NBT4-WGBQX-MP4H7-QXFF8-YP3KX Remote Server
|
||||
NBTWJ-3DR69-3C4V8-C26MC-GQ9M6 Lean
|
||||
|
||||
Windows 8.1
|
||||
|
||||
M9Q9P-WNJJT-6PXPY-DWX8H-6XWKK Core
|
||||
7B9N3-D94CG-YTVHR-QBPX3-RJP64 Core N
|
||||
BB6NG-PQ82V-VRDPW-8XVD2-V8P66 Core Single Language
|
||||
NCTT7-2RGK8-WMHRF-RY7YQ-JTXG3 Core China
|
||||
XYTND-K6QKT-K2MRH-66RTM-43JKP Core ARM
|
||||
GCRJD-8NW9H-F2CDX-CCM8D-9D6T9 Pro
|
||||
HMCNV-VVBFX-7HMBH-CTY9B-B4FXY Pro N
|
||||
789NJ-TQK6T-6XTH8-J39CJ-J8D3P Pro with Media Center
|
||||
MHF9N-XY6XB-WVXMC-BTDCT-MKKG7 Enterprise
|
||||
TT4HM-HN7YT-62K67-RGRQJ-JFFXW Enterprise N
|
||||
NMMPB-38DD4-R2823-62W8D-VXKJB Embedded Industry Pro
|
||||
FNFKF-PWTVT-9RC8H-32HB2-JB34X Embedded Industry Enterprise
|
||||
VHXM3-NR6FT-RY6RT-CK882-KW2CJ Embedded Industry Automotive
|
||||
3PY8R-QHNP9-W7XQD-G6DPH-3J2C9 with Bing
|
||||
Q6HTR-N24GM-PMJFP-69CD8-2GXKR with Bing N
|
||||
KF37N-VDV38-GRRTV-XH8X6-6F3BB with Bing Single Language
|
||||
R962J-37N87-9VVK2-WJ74P-XTMHR with Bing China
|
||||
MX3RK-9HNGX-K3QKC-6PJ3F-W8D7B Pro for Students
|
||||
TNFGH-2R6PB-8XM3K-QYHX2-J4296 Pro for Students N
|
||||
|
||||
Windows 8
|
||||
|
||||
BN3D2-R7TKB-3YPBD-8DRP2-27GG4 Core
|
||||
8N2M2-HWPGY-7PGT9-HGDD8-GVGGY Core N
|
||||
2WN2H-YGCQR-KFX6K-CD6TF-84YXQ Core Single Language
|
||||
4K36P-JN4VD-GDC6V-KDT89-DYFKP Core China
|
||||
DXHJF-N9KQX-MFPVR-GHGQK-Y7RKV Core ARM
|
||||
NG4HW-VH26C-733KW-K6F98-J8CK4 Pro
|
||||
XCVCF-2NXM9-723PB-MHCB7-2RYQQ Pro N
|
||||
GNBB8-YVD74-QJHX6-27H4K-8QHDG Pro with Media Center
|
||||
32JNW-9KQ84-P47T8-D8GGY-CWCK7 Enterprise
|
||||
JMNMF-RHW7P-DMY6X-RF3DR-X2BQT Enterprise N
|
||||
RYXVT-BNQG7-VD29F-DBMRY-HT73M Embedded Industry Pro
|
||||
NKB3R-R2F8T-3XCDP-7Q2KW-XWYQ2 Embedded Industry Enterprise
|
||||
|
||||
Windows 7
|
||||
|
||||
FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4 Professional
|
||||
MRPKT-YTG23-K7D7T-X2JMM-QY7MG Professional N
|
||||
W82YF-2Q76Y-63HXB-FGJG9-GF7QX Professional E
|
||||
33PXH-7Y6KF-2VJC9-XBBR8-HVTHH Enterprise
|
||||
YDRBP-3D83W-TY26F-D46B2-XCKRJ Enterprise N
|
||||
C29WB-22CC8-VJ326-GHFJW-H9DH4 Enterprise E
|
||||
YBYF6-BHCR3-JPKRB-CDW7B-F9BK4 Embedded POSReady 7
|
||||
XGY72-BRBBT-FF8MH-2GG8H-W7KCW Embedded Standard
|
||||
73KQT-CD9G6-K7TQG-66MRP-CQ22C Embedded ThinPC
|
||||
|
||||
Windows Server 2019
|
||||
|
||||
N69G4-B89J2-4G8F4-WWYCC-J464C Standard
|
||||
WMDGN-G9PQG-XVVXX-R3X43-63DFG Datacenter
|
||||
WVDHN-86M7X-466P6-VHXV7-YY726 Essentials
|
||||
FDNH6-VW9RW-BXPJ7-4XTYG-239TB Azure Core
|
||||
N2KJX-J94YW-TQVFB-DG9YT-724CC Standard ACor
|
||||
6NMRW-2C8FM-D24W7-TQWMY-CWH2D Datacenter ACor
|
||||
GRFBW-QNDC4-6QBHG-CCK3B-2PR88 ServerARM64
|
||||
|
||||
Windows Server 2016
|
||||
|
||||
WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY Standard
|
||||
CB7KF-BWN84-R7R2Y-793K2-8XDDG Datacenter
|
||||
JCKRF-N37P4-C2D82-9YXRT-4M63B Essentials
|
||||
QN4C6-GBJD2-FB422-GHWJK-GJG2R Cloud Storage
|
||||
VP34G-4NPPG-79JTQ-864T4-R3MQX Azure Core
|
||||
PTXN8-JFHJM-4WC78-MPCBR-9W4KR Standard ACor
|
||||
2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG Datacenter ACor
|
||||
K9FYF-G6NCK-73M32-XMVPY-F9DRR ServerARM64
|
||||
|
||||
Windows Server 2012 R2
|
||||
|
||||
D2N9P-3P6X9-2R39C-7RTCD-MDVJX Standard
|
||||
W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9 Datacenter
|
||||
KNC87-3J2TX-XB4WP-VCPJV-M4FWM Essentials
|
||||
3NPTF-33KPT-GGBPR-YX76B-39KDD Cloud Storage
|
||||
|
||||
Windows Server 2012
|
||||
|
||||
XC9B7-NBPP2-83J2H-RHMBY-92BT4 Standard
|
||||
48HP8-DN98B-MYWDG-T2DCC-8W83P Datacenter
|
||||
HM7DN-YVMH3-46JC3-XYTG7-CYQJJ MultiPoint Standard
|
||||
XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G MultiPoint Premium
|
||||
|
||||
Windows Server 2008 R2
|
||||
|
||||
6TPJF-RBVHG-WBW2R-86QPH-6RTM4 Web
|
||||
TT8MH-CG224-D3D7Q-498W2-9QCTX HPC
|
||||
YC6KT-GKW9T-YTKYR-T4X34-R7VHC Standard
|
||||
74YFP-3QFB3-KQT8W-PMXWJ-7M648 Datacenter
|
||||
489J6-VHDMP-X63PK-3K798-CPX3Y Enterprise
|
||||
GT63C-RJFQ3-4GMB6-BRFB9-CB83V Itanium
|
||||
736RG-XDKJK-V34PF-BHK87-J6X3K MultiPoint Server
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
----------------------------------------------
|
||||
Windows /Server (All VL Supported Versions)
|
||||
----------------------------------------------
|
||||
|
||||
- Connect to the internet.
|
||||
- Open CMD as Admin, and enter the following listed commands in the sequence in which they are given.
|
||||
- Enter Generic Volume License Key (GVLK) (Replace %key% with the key from above list) with
|
||||
the following command:
|
||||
|
||||
slmgr.vbs /ipk %key%
|
||||
|
||||
- Register the KMS Server, (Replace %server% with one of the above-listed servers)
|
||||
(If activation is unsuccessful then try a different server) with the following command:
|
||||
|
||||
slmgr.vbs /skms %server%
|
||||
|
||||
- Activate Windows with the following command:
|
||||
|
||||
slmgr.vbs /ato
|
||||
|
||||
- Check Activation Status with the following command:
|
||||
|
||||
slmgr.vbs /dli
|
||||
|
||||
- Check Activation Expiry Date with the following command:
|
||||
|
||||
slmgr.vbs /xpr
|
||||
|
||||
- Clear the name of the KMS server (Optional) (It'll prevent activation auto-renewal) with the following command:
|
||||
|
||||
slmgr.vbs /ckms
|
||||
|
||||
- Done.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Office VL Activation (Office 2010, 2013, 2016, 2019) -
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
- Connect to the internet.
|
||||
- Open CMD as Admin, and enter the following listed commands in the sequence in which they are given.
|
||||
- If Office is installed as VL (Volume License) then there is no need to enter its key.
|
||||
- If Office is installed as Retail, then you need to convert it to VL, by using C2R-R2V by @abbodi1406
|
||||
https://forums.mydigitallife.net/posts/1150042
|
||||
|
||||
- Change to the directory where Office is installed.
|
||||
If your system is 32-bit Office on 32-bit Windows or 64-bit Office on 64-bit Windows use the following:
|
||||
|
||||
For Office 2016 or 2019 enter the command:
|
||||
|
||||
cd "C:\Program Files\Microsoft Office\Office16"
|
||||
|
||||
For Office 2013 enter the command:
|
||||
|
||||
cd "C:\Program Files\Microsoft Office\Office15"
|
||||
|
||||
For Office 2010 enter the command:
|
||||
|
||||
cd "C:\Program Files\Microsoft Office\Office14"
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
If your system is 32-bit Office on 64-bit Windows, use the following:
|
||||
|
||||
For Office 2016 or 2019 enter the command:
|
||||
|
||||
cd "C:\Program Files (x86)\Microsoft Office\Office16"
|
||||
|
||||
For Office 2013 enter the command:
|
||||
|
||||
cd "C:\Program Files (x86)\Microsoft Office\Office15"
|
||||
|
||||
For Office 2010 enter the command:
|
||||
|
||||
cd "C:\Program Files (x86)\Microsoft Office\Office14"
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
- Once all of that is done correctly, you must register the KMS Server, (In the following,
|
||||
replace %server% with one of the above-listed servers.) (If activation is unsuccessful
|
||||
then try a different server.) with the following command:
|
||||
|
||||
cscript ospp.vbs /sethst:%server%
|
||||
|
||||
- Activate Office with the following command:
|
||||
|
||||
cscript ospp.vbs /act
|
||||
|
||||
- Check Activation Status with the following command:
|
||||
|
||||
cscript ospp.vbs /dstatus
|
||||
|
||||
- Clear the name of the KMS server, (Optional) (It'll prevent activation auto-renewal)
|
||||
with the appropriate following commands:
|
||||
|
||||
To clear the KMS Server name for Office in Win 7, or Office 2010 on Win 8 or Win 10,
|
||||
enter each of the following commands in the sequence which is given:
|
||||
|
||||
set "OSPP=HKLM\SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform"
|
||||
reg delete "%OSPP%" /f /v KeyManagementServiceName 2>nul
|
||||
reg delete "%OSPP%" /f /v KeyManagementServicePort 2>nul
|
||||
reg delete "%OSPP%\59a52881-a989-479d-af46-f275c6370663" /f 2>nul
|
||||
reg delete "%OSPP%\0ff1ce15-a989-479d-af46-f275c6370663" /f 2>nul
|
||||
|
||||
To clear the KMS server name for Office (except Office 2010) on Win 8 or Win 10, run the following command:
|
||||
|
||||
set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
|
||||
reg delete "HKLM\%SPPk%" /f /v KeyManagementServiceName 2>nul
|
||||
reg delete "HKLM\%SPPk%" /f /v KeyManagementServicePort 2>nul
|
||||
reg delete "HKLM\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f 2>nul
|
||||
reg delete "HKEY_USERS\S-1-5-20\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f 2>nul
|
||||
|
||||
- Done.
|
||||
|
||||
====================================================================================================
|
||||
Troubleshoot activation issues:
|
||||
====================================================================================================
|
||||
|
||||
- Make sure the Internet is connected.
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
Open CMD as Admin, and enter the following command: (For Windows 10\8\8.1)
|
||||
|
||||
Dism /online /Cleanup-Image /RestoreHealth
|
||||
|
||||
- After its done, reboot the system and open CMD as Admin and enter the following command:
|
||||
|
||||
sfc.exe /scannow
|
||||
|
||||
- After it's done, reboot the system and run the activation script, and if unsuccessful,
|
||||
open CMD as administrator again, and enter the following command:
|
||||
|
||||
slmgr.vbs /rearm
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
You may try to rebuild licensing Tokens.dat as suggested in https://support.microsoft.com/en-us/help/2736303
|
||||
(this will require to repair Office afterwards.)
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
Try KMS_VL_ALL by @abbodi1406 https://forums.mydigitallife.net/posts/838808/
|
||||
If still unsuccessful, it may be time to start over from the very beginning
|
||||
and do a clean install of windows :D
|
||||
|
||||
-------------------------------
|
||||
|
||||
- If you have issues with Office activation, or got undesired or duplicate licenses (e.g. Office 2016 and 2019):
|
||||
Download Office Scrubber pack from https://forums.mydigitallife.net/posts/1466365/
|
||||
To get rid of any conflicted licenses, run Uninstall_Licenses.cmd, then you must start any
|
||||
Office program to repair the licensing. You may also try Uninstall_Keys.cmd for similar manner.
|
||||
|
||||
If you wish to remove Office and leftovers completely and start clean:
|
||||
Uninstall Office normally from Control Panel / Programs and Feature then run Full_Scrub.cmd
|
||||
afterwards, install new Office.
|
||||
|
||||
- Can't activate Windows 7 with KMS: [Error 0xC004F035]
|
||||
Some OEM licensed computers cannot be activated with KMS on WINDOWS 7.
|
||||
Quote from the MS page https://tinyurl.com/yy8wfu5m
|
||||
'Computers obtained through OEM channels that have an ACPI_SLIC table in the (BIOS) are
|
||||
required to have a valid Windows marker in the same ACPI_SLIC table.
|
||||
---Computers that have an ACPI_SLIC table without a valid Windows marker generate an error
|
||||
when a volume edition of Windows 7 is installed.'
|
||||
|
||||
====================================================================================================
|
||||
Credits:
|
||||
====================================================================================================
|
||||
|
||||
@abbodi1406 Activate.cmd (KMS_VL_ALL)
|
||||
https://forums.mydigitallife.net/posts/838808
|
||||
(* With the great help from @RPO, Forked it to work with Multi KMS Servers,
|
||||
Renewal task, Desktop context menu, $OEM$, etc for Online KMS)
|
||||
|
||||
Clear-KMS-Cache.cmd
|
||||
https://forums.mydigitallife.net/posts/1511883
|
||||
(*Applied it as it is)
|
||||
|
||||
Check-Activation-Status-wmic.cmd
|
||||
https://forums.mydigitallife.net/posts/838808
|
||||
(*Applied it as it is)
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Online Public KMS Servers:
|
||||
|
||||
kms.srv.crsoo.com
|
||||
kms.loli.beer
|
||||
kms8.MSGuides.com
|
||||
|
||||
kms9.MSGuides.com
|
||||
kms.zhuxiaole.org
|
||||
kms.lolico.moe
|
||||
kms.moeclub.org
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Special Thanks to @RPO
|
||||
|
||||
For providing great support in making and improvements of this script,
|
||||
To name a few,
|
||||
|
||||
Internet test with Powershell (No ping)
|
||||
KMS server 1688 port test with Powershell
|
||||
Multi KMS server integration
|
||||
Scheduled task to renew the activation
|
||||
|
||||
And for solving countless problems in this batch script.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Kind Help:-
|
||||
|
||||
Thanks for having my back and answering all of my queries. (In no particular order)
|
||||
|
||||
@AveYo aka @BAU, @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
|
||||
@BorrowedWifi For providing support in fixing English grammar errors in the Read Me.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
This script is a part of 'Microsoft Activation Scripts' project.
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
====================================================================================================
|
@ -1,12 +0,0 @@
|
||||
----------------------------------------------------------------------------------------------
|
||||
Activation Type Supported Product Activation Period
|
||||
----------------------------------------------------------------------------------------------
|
||||
|
||||
Digital License - Windows 10 - Permanent
|
||||
KMS38 - Windows 10 / Server - Until the year 2038
|
||||
Online KMS - Windows / Server / Office - For 180 Days, renewal task needs to be
|
||||
created for lifetime auto activation.
|
||||
|
||||
----------------------------------------------------------------------------------------------
|
||||
|
||||
* For more details, use the ReadMe.txt included in the respective activation folders.
|
@ -1,120 +0,0 @@
|
||||
====================================================================================================
|
||||
Credits:
|
||||
====================================================================================================
|
||||
|
||||
Microsoft Activation Scripts (MAS):
|
||||
|
||||
A collection of scripts for activating Microsoft products using HWID / KMS38 / Online KMS
|
||||
activation methods with a focus on open-source code, less antivirus detection and user-friendliness.
|
||||
|
||||
These scripts are mostly a fork of other honourable developer's tools and scripts.
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
To achieve this I have used the following projects as the base of this activator.
|
||||
I would like to say thanks to the following authors for making such awesome projects.
|
||||
|
||||
====================================
|
||||
HWID and KMS38 Activation:
|
||||
====================================
|
||||
|
||||
@mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade.
|
||||
and Created various methods for HWID/KMS38 Activation
|
||||
*Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://github.com/massgravel/MASSGRAVE
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
@vyvojar Original slshim (slc.dll)
|
||||
https://github.com/vyvojar/slshim/releases
|
||||
|
||||
====================================
|
||||
|
||||
HWID/KMS38 methods Suggestions and improvements:-
|
||||
|
||||
@sponpa New ideas for the HWID/KM38 Generation
|
||||
https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257
|
||||
|
||||
@leitek8 Improvements for the slc.dll
|
||||
https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005
|
||||
|
||||
====================================
|
||||
Online KMS Activation:
|
||||
====================================
|
||||
|
||||
@abbodi1406 Activate.cmd (KMS_VL_ALL)
|
||||
https://forums.mydigitallife.net/posts/838808
|
||||
(* With the great help from @RPO, Forked it to work with Multi KMS Servers,
|
||||
Renewal task, Desktop context menu, $OEM$, etc for Online KMS)
|
||||
|
||||
Clear-KMS-Cache.cmd
|
||||
https://forums.mydigitallife.net/posts/1511883
|
||||
(*Applied it as it is)
|
||||
|
||||
Check-Activation-Status-wmic.cmd
|
||||
https://forums.mydigitallife.net/posts/838808
|
||||
(*Applied it as it is)
|
||||
|
||||
====================================
|
||||
|
||||
Online Public KMS Servers:
|
||||
|
||||
kms.srv.crsoo.com
|
||||
kms.loli.beer
|
||||
kms8.MSGuides.com
|
||||
|
||||
kms9.MSGuides.com
|
||||
kms.zhuxiaole.org
|
||||
kms.lolico.moe
|
||||
kms.moeclub.org
|
||||
|
||||
====================================
|
||||
Useful scripts and ideas I used :
|
||||
====================================
|
||||
|
||||
@AveYo (@BAU) Compressed2TXT
|
||||
https://github.com/AveYo/Compressed2TXT
|
||||
(For storing the files in text format)
|
||||
|
||||
Reg_takeownership snippet
|
||||
pastebin.com/XTPt0JSC
|
||||
(*Applied in KMS38 Protection)
|
||||
|
||||
@hearywarlot Elevate program as admin with vbs method
|
||||
https://forums.mydigitallife.net/threads/.74332/
|
||||
|
||||
@dbenham Set buffer height independently of window height
|
||||
https://stackoverflow.com/a/13351373
|
||||
|
||||
@Ratiborus Ratiborus Tools
|
||||
http://forum.ru-board.com/topic.cgi?forum=2&topic=5734#1
|
||||
|
||||
@abbodi1406 Continuously providing best solutions for tons of issues.
|
||||
|
||||
abbodi1406's Batch Scripts Repo
|
||||
https://forums.mydigitallife.net/threads/74197/
|
||||
|
||||
@s1ave77 slave77s S-M-R-T JATDevice MkIII
|
||||
https://forums.mydigitallife.net/threads/44717/
|
||||
|
||||
====================================
|
||||
Kind Help:
|
||||
====================================
|
||||
|
||||
Thanks to the following people for answering all of my queries. (In no particular order)
|
||||
|
||||
@AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
|
||||
@BorrowedWifi for providing support in fixing English grammar errors in the Read Me.
|
||||
@Chibi ANUBIS for testing scripts for ARM64 system.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Special thanks to @RPO and @abbodi1406,
|
||||
For providing great support and solving countless issues in this tool.
|
||||
|
||||
====================================================================================================
|
@ -1,6 +0,0 @@
|
||||
[{000214A0-0000-0000-C000-000000000046}]
|
||||
Prop3=19,11
|
||||
[InternetShortcut]
|
||||
IDList=
|
||||
URL=https://pastebin.com/raw/jduBSazJ
|
||||
HotKey=0
|
@ -1,621 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:: =======================================================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: =======================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
title Extract $OEM$ Folder
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell -nop -ep bypass -c"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "EchoRed=%_psc% write-host -back Black -fore Red"
|
||||
set "EchoGreen=%_psc% write-host -back Black -fore Green"
|
||||
set "ELine=echo: & %EchoRed% ==== ERROR ==== &echo:"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 7600 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 7/8/8.1/10 and their Server equivalent.
|
||||
goto Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
:: Written by @abbodi1406
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode con cols=98 lines=30
|
||||
|
||||
:: Get correct Desktop Location with powershell
|
||||
:: Written by @dcshoecomp (superuser.com)
|
||||
:: https://superuser.com/a/1413170
|
||||
|
||||
for /f "delims=" %%a in ('%_psc% "& {write-host $([Environment]::GetFolderPath('Desktop'))}"') do Set "desktop=%%a"
|
||||
|
||||
if exist "%desktop%\$OEM$\" (
|
||||
echo _____________________________________________________
|
||||
%ELine%
|
||||
echo $OEM$ folder already exists on the Desktop.
|
||||
echo _____________________________________________________
|
||||
goto Done2
|
||||
)
|
||||
|
||||
set "_dir=%desktop%\$OEM$\$$\Setup\Scripts"
|
||||
set _nofile=
|
||||
|
||||
set "_fdir1=Activators\HWID-KMS38_Activation"
|
||||
set "HWID_Activation.cmd=%_fdir1%\HWID_Activation.cmd"
|
||||
set "KMS38_Activation.cmd=%_fdir1%\KMS38_Activation.cmd"
|
||||
set "ClipUp.exe=%_fdir1%\BIN\ClipUp.exe"
|
||||
set "gatherosstate.exe=%_fdir1%\BIN\gatherosstate.exe"
|
||||
set "slc.dll=%_fdir1%\BIN\slc.dll"
|
||||
set "ARM64_gatherosstate.exe=%_fdir1%\BIN\ARM64_gatherosstate.exe"
|
||||
set "ARM64_slc.dll=%_fdir1%\BIN\ARM64_slc.dll"
|
||||
|
||||
set "_fdir2=Activators\Online_KMS_Activation"
|
||||
set "Activate.cmd=%_fdir2%\Activate.cmd"
|
||||
set "Renewal_Setup.cmd=%_fdir2%\Renewal_Setup.cmd"
|
||||
set "cleanosppx64.exe=%_fdir2%\BIN\cleanosppx64.exe"
|
||||
set "cleanosppx86.exe=%_fdir2%\BIN\cleanosppx86.exe"
|
||||
|
||||
cd /d "!_work!"
|
||||
pushd "!_work!"
|
||||
cd ..
|
||||
cd ..
|
||||
|
||||
if not exist "%HWID_Activation.cmd%" set _nofile=1
|
||||
if not exist "%KMS38_Activation.cmd%" set _nofile=1
|
||||
if not exist "%ClipUp.exe%" set _nofile=1
|
||||
if not exist "%gatherosstate.exe%" set _nofile=1
|
||||
if not exist "%slc.dll%" set _nofile=1
|
||||
if not exist "%ARM64_gatherosstate.exe%" set _nofile=1
|
||||
if not exist "%ARM64_slc.dll%" set _nofile=1
|
||||
|
||||
if not exist "%Activate.cmd%" set _nofile=1
|
||||
if not exist "%Renewal_Setup.cmd%" set _nofile=1
|
||||
if not exist "%cleanosppx64.exe%" set _nofile=1
|
||||
if not exist "%cleanosppx86.exe%" set _nofile=1
|
||||
|
||||
if defined _nofile (
|
||||
echo _____________________________________________________
|
||||
%ELine%
|
||||
echo Some files are missing in the 'Activators' folder.
|
||||
echo _____________________________________________________
|
||||
goto Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Menu
|
||||
|
||||
cls
|
||||
echo:
|
||||
echo:
|
||||
echo Extract the $OEM$ Folder on your desktop.
|
||||
echo For more details use Read me.
|
||||
echo _______________________________________________________
|
||||
echo ^| ^|
|
||||
echo ^| ^|
|
||||
echo ^| [1] HWID ^|
|
||||
echo ^| ^|
|
||||
echo ^| [2] KMS38 ^|
|
||||
echo ^| ^|
|
||||
echo ^| [3] HWID, Fallback to KMS38 ^|
|
||||
echo ^| ^|
|
||||
echo ^| [4] Online KMS ^|
|
||||
echo ^| ^|
|
||||
echo ^| [5] HWID ^+ Online KMS ^|
|
||||
echo ^| ^|
|
||||
echo ^| [6] KMS38 ^+ Online KMS ^|
|
||||
echo ^| ^|
|
||||
echo ^| [7] HWID, Fallback to KMS38 ^+ Online KMS ^|
|
||||
echo ^| ^|
|
||||
echo ^| [8] Exit ^|
|
||||
echo ^| ^|
|
||||
echo ^|_______________________________________________________^|
|
||||
echo:
|
||||
choice /C:12345678 /N /M "> Enter Your Choice [1,2,3,4,5,6,7,8] : "
|
||||
|
||||
if errorlevel 8 exit /b
|
||||
if errorlevel 7 goto:$OEM$HWID_FB_KMS38-KMS
|
||||
if errorlevel 6 goto:$OEM$KMS38KMS
|
||||
if errorlevel 5 goto:$OEM$HWIDKMS
|
||||
if errorlevel 4 goto:$OEM$KMS
|
||||
if errorlevel 3 goto:$OEM$HWID_FB_KMS38
|
||||
if errorlevel 2 goto:$OEM$KMS38
|
||||
if errorlevel 1 goto:$OEM$HWID
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$HWID
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
call :HWIDPrep
|
||||
call :export HWIDSetup "%_dir%\SetupComplete.cmd"
|
||||
set error_=
|
||||
call :HWIDPrep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=HWID"
|
||||
goto Done
|
||||
|
||||
:HWIDSetup:
|
||||
@echo off
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
call "%~dp0HWID_Activation.cmd" /u
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:HWIDSetup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$KMS38
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
call :KMS38Prep
|
||||
call :export KMS38Setup "%_dir%\SetupComplete.cmd"
|
||||
set error_=
|
||||
call :KMS38Prep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=KMS38"
|
||||
goto Done
|
||||
|
||||
:KMS38Setup:
|
||||
@echo off
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
call "%~dp0KMS38_Activation.cmd" /u
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:KMS38Setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$HWID_FB_KMS38
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
|
||||
copy /y /b "%HWID_Activation.cmd%" "%_dir%\HWID_Activation.cmd" %nul%
|
||||
call :KMS38Prep
|
||||
call :export HWID_FB_KMS38 "%_dir%\SetupComplete.cmd"
|
||||
|
||||
set error_=
|
||||
If not exist "%_dir%\HWID_Activation.cmd" (set error_=1)
|
||||
call :KMS38Prep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=HWID`, Fallback to KMS38"
|
||||
goto Done
|
||||
|
||||
:HWID_FB_KMS38:
|
||||
@echo off
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
|
||||
:: Check Windows Edition
|
||||
set osedition=
|
||||
for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' and PartialProductKey is not NULL) get LicenseFamily /VALUE" 2^>nul') do if not errorlevel 1 set "osedition=%%a"
|
||||
if not defined osedition for /f "tokens=3 delims=: " %%a in ('DISM /English /Online /Get-CurrentEdition 2^>nul ^| find /i "Current Edition :"') do set "osedition=%%a"
|
||||
|
||||
:: Check Installation type
|
||||
set instype=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType 2^>nul') do if not errorlevel 1 set "instype=%%b"
|
||||
|
||||
set KMS38=
|
||||
if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseS" set KMS38=1
|
||||
if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseSN" set KMS38=1
|
||||
if "%osedition%"=="EnterpriseG" set KMS38=1
|
||||
if "%osedition%"=="EnterpriseGN" set KMS38=1
|
||||
if not "%instype%"=="Client" echo %osedition%| findstr /I /B Server 1>nul && set KMS38=1
|
||||
|
||||
if defined KMS38 (
|
||||
call "%~dp0KMS38_Activation.cmd" /u
|
||||
) else (
|
||||
call "%~dp0HWID_Activation.cmd" /u
|
||||
)
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:HWID_FB_KMS38:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$KMS
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
call :KMSPrep
|
||||
call :export KMSSetup "%_dir%\SetupComplete.cmd"
|
||||
set error_=
|
||||
call :KMSPrep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=Online KMS"
|
||||
goto Done
|
||||
|
||||
:KMSSetup:
|
||||
@echo off
|
||||
|
||||
============================================================================
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS Renewal And Activation Task
|
||||
set Renewal_And_Activation_Task=1
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS activation desktop context menu
|
||||
set Desktop_context_menu=1
|
||||
|
||||
============================================================================
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat
|
||||
if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:KMSSetup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$HWIDKMS
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
call :HWIDPrep
|
||||
call :KMSPrep
|
||||
|
||||
call :export HWIDKMSSetup "%_dir%\SetupComplete.cmd"
|
||||
|
||||
set error_=
|
||||
call :HWIDPrep2
|
||||
call :KMSPrep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=HWID `+ Online KMS"
|
||||
goto Done
|
||||
|
||||
:HWIDKMSSetup:
|
||||
@echo off
|
||||
|
||||
============================================================================
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS Renewal And Activation Task
|
||||
set Renewal_And_Activation_Task=1
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS activation desktop context menu
|
||||
set Desktop_context_menu=1
|
||||
|
||||
============================================================================
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
call "%~dp0HWID_Activation.cmd" /u
|
||||
if defined HWIDAct set SkipWinAct=/swa
|
||||
|
||||
if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat %SkipWinAct%
|
||||
if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm %SkipWinAct%
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:HWIDKMSSetup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$KMS38KMS
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
call :KMS38Prep
|
||||
call :KMSPrep
|
||||
call :export KMS38KMSSetup "%_dir%\SetupComplete.cmd"
|
||||
set error_=
|
||||
call :KMS38Prep2
|
||||
call :KMSPrep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=KMS38 `+ Online KMS"
|
||||
goto Done
|
||||
|
||||
:KMS38KMSSetup:
|
||||
@echo off
|
||||
|
||||
============================================================================
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS Renewal And Activation Task
|
||||
set Renewal_And_Activation_Task=1
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS activation desktop context menu
|
||||
set Desktop_context_menu=1
|
||||
|
||||
============================================================================
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
call "%~dp0KMS38_Activation.cmd" /u
|
||||
|
||||
if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat
|
||||
if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:KMS38KMSSetup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$HWID_FB_KMS38-KMS
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
|
||||
copy /y /b "%HWID_Activation.cmd%" "%_dir%\HWID_Activation.cmd" %nul%
|
||||
call :KMS38Prep
|
||||
call :KMSPrep
|
||||
call :export HWID_FB_KMS38-KMSSetup "%_dir%\SetupComplete.cmd"
|
||||
|
||||
set error_=
|
||||
If not exist "%_dir%\HWID_Activation.cmd" (set error_=1)
|
||||
call :KMS38Prep2
|
||||
call :KMSPrep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=HWID`, Fallback to KMS38 `+ Online KMS"
|
||||
goto Done
|
||||
|
||||
:HWID_FB_KMS38-KMSSetup:
|
||||
@echo off
|
||||
|
||||
============================================================================
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS Renewal And Activation Task
|
||||
set Renewal_And_Activation_Task=1
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS activation desktop context menu
|
||||
set Desktop_context_menu=1
|
||||
|
||||
============================================================================
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
|
||||
:: Check Windows Edition
|
||||
set osedition=
|
||||
for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' and PartialProductKey is not NULL) get LicenseFamily /VALUE" 2^>nul') do if not errorlevel 1 set "osedition=%%a"
|
||||
if not defined osedition for /f "tokens=3 delims=: " %%a in ('DISM /English /Online /Get-CurrentEdition 2^>nul ^| find /i "Current Edition :"') do set "osedition=%%a"
|
||||
|
||||
:: Check Installation type
|
||||
set instype=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType 2^>nul') do if not errorlevel 1 set "instype=%%b"
|
||||
|
||||
set KMS38=
|
||||
if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseS" set KMS38=1
|
||||
if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseSN" set KMS38=1
|
||||
if "%osedition%"=="EnterpriseG" set KMS38=1
|
||||
if "%osedition%"=="EnterpriseGN" set KMS38=1
|
||||
if not "%instype%"=="Client" echo %osedition%| findstr /I /B Server 1>nul && set KMS38=1
|
||||
|
||||
if defined KMS38 (
|
||||
call "%~dp0KMS38_Activation.cmd" /u
|
||||
) else (
|
||||
call "%~dp0HWID_Activation.cmd" /u
|
||||
if defined HWIDAct set SkipWinAct=/swa
|
||||
)
|
||||
|
||||
if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat %SkipWinAct%
|
||||
if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm %SkipWinAct%
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:HWID_FB_KMS38-KMSSetup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:ErrorFound
|
||||
|
||||
%ELine%
|
||||
echo $OEM$ Folder was not created successfully...
|
||||
goto :Done2
|
||||
:Done
|
||||
echo ________________________________________________________________________________________________
|
||||
echo:
|
||||
%EchoGreen% %_oem% `$OEM`$ folder is successfully created on the Desktop.
|
||||
echo ________________________________________________________________________________________________
|
||||
:Done2
|
||||
echo:
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Prep
|
||||
|
||||
cd /d "%desktop%"
|
||||
md "%desktop%\$OEM$\$$\Setup\Scripts\"
|
||||
md "%desktop%\$OEM$\$$\Setup\Scripts\BIN"
|
||||
|
||||
cd /d "!_work!"
|
||||
pushd "!_work!"
|
||||
cd ..
|
||||
cd ..
|
||||
|
||||
exit /b
|
||||
|
||||
:HWIDPrep
|
||||
|
||||
copy /y /b "%HWID_Activation.cmd%" "%_dir%\HWID_Activation.cmd" %nul%
|
||||
copy /y /b "%gatherosstate.exe%" "%_dir%\BIN\gatherosstate.exe" %nul%
|
||||
copy /y /b "%slc.dll%" "%_dir%\BIN\slc.dll" %nul%
|
||||
copy /y /b "%ARM64_gatherosstate.exe%" "%_dir%\BIN\ARM64_gatherosstate.exe" %nul%
|
||||
copy /y /b "%ARM64_slc.dll%" "%_dir%\BIN\ARM64_slc.dll" %nul%
|
||||
exit /b
|
||||
|
||||
:KMS38Prep
|
||||
|
||||
copy /y /b "%KMS38_Activation.cmd%" "%_dir%\KMS38_Activation.cmd" %nul%
|
||||
copy /y /b "%ClipUp.exe%" "%_dir%\BIN\ClipUp.exe" %nul%
|
||||
copy /y /b "%gatherosstate.exe%" "%_dir%\BIN\gatherosstate.exe" %nul%
|
||||
copy /y /b "%slc.dll%" "%_dir%\BIN\slc.dll" %nul%
|
||||
copy /y /b "%ARM64_gatherosstate.exe%" "%_dir%\BIN\ARM64_gatherosstate.exe" %nul%
|
||||
copy /y /b "%ARM64_slc.dll%" "%_dir%\BIN\ARM64_slc.dll" %nul%
|
||||
exit /b
|
||||
|
||||
:KMSPrep
|
||||
|
||||
copy /y /b "%Activate.cmd%" "%_dir%\Activate.cmd" %nul%
|
||||
copy /y /b "%Renewal_Setup.cmd%" "%_dir%\Renewal_Setup.cmd" %nul%
|
||||
copy /y /b "%cleanosppx64.exe%" "%_dir%\BIN\cleanosppx64.exe" %nul%
|
||||
copy /y /b "%cleanosppx86.exe%" "%_dir%\BIN\cleanosppx86.exe" %nul%
|
||||
exit /b
|
||||
|
||||
:HWIDPrep2
|
||||
|
||||
If not exist "%_dir%\HWID_Activation.cmd" (set error_=1)
|
||||
If not exist "%_dir%\BIN\gatherosstate.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\slc.dll" (set error_=1)
|
||||
If not exist "%_dir%\BIN\ARM64_gatherosstate.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\ARM64_slc.dll" (set error_=1)
|
||||
If not exist "%_dir%\SetupComplete.cmd" (set error_=1)
|
||||
exit /b
|
||||
|
||||
:KMS38Prep2
|
||||
|
||||
If not exist "%_dir%\KMS38_Activation.cmd" (set error_=1)
|
||||
If not exist "%_dir%\BIN\ClipUp.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\gatherosstate.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\slc.dll" (set error_=1)
|
||||
If not exist "%_dir%\BIN\ARM64_gatherosstate.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\ARM64_slc.dll" (set error_=1)
|
||||
If not exist "%_dir%\SetupComplete.cmd" (set error_=1)
|
||||
exit /b
|
||||
|
||||
:KMSPrep2
|
||||
|
||||
If not exist "%_dir%\Activate.cmd" (set error_=1)
|
||||
If not exist "%_dir%\Renewal_Setup.cmd" (set error_=1)
|
||||
If not exist "%_dir%\BIN\cleanosppx64.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\cleanosppx86.exe" (set error_=1)
|
||||
If not exist "%_dir%\SetupComplete.cmd" (set error_=1)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Extract the text from batch script without character and file encoding issue
|
||||
:: Thanks to @abbodi1406
|
||||
|
||||
:export
|
||||
%nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::ASCII);" &exit/b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,123 +0,0 @@
|
||||
====================================================================================================
|
||||
$OEM$ Folders [Windows Pre-Activation]:
|
||||
====================================================================================================
|
||||
|
||||
- To create a Preactivated Windows installation .iso, do the following things:
|
||||
Copy the "$OEM$" folder to the "sources" folder in the Windows installation media (.iso or USB).
|
||||
The directory will appear like this: \sources\$OEM$ in your altered .iso or on your bootable
|
||||
USB drive.
|
||||
Now use this .iso or bootable USB drive to install Windows and it will either already be activated
|
||||
(KMS38) as soon as it boots, or will self-activate at first internet contact.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
HWID:
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- When using Digital License (HWID), no files are stored on the system, and when connected to the
|
||||
internet for the first time, the system will self-activate at that time.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
KMS38:
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- When using KMS38, no files are stored on the system, and Windows becomes activated immediately
|
||||
without further actions or connectivity of any kind being required.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
Online KMS (separately, or in combination with HWID or KMS38):
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- It creates the following 2 Activation/Renewal Methods. You can turn off any of them in
|
||||
setupcomplete.cmd file
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
1- Automatic Renewal via Task Scheduler---
|
||||
|
||||
It creates following files and tasks,
|
||||
|
||||
Files:
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
C:\ProgramData\Online_KMS_Activation\Info.txt
|
||||
|
||||
Scheduled Tasks:
|
||||
\Online_KMS_Activation_Script-Renewal (Weekly)
|
||||
\Online_KMS_Activation_Script-Run_Once (Activation Task)
|
||||
|
||||
The scheduled task runs only if the system is connected to the Internet.
|
||||
Activation Task will run on the system login and after successful activation and registering
|
||||
online KMS server, this task will delete itself. leaving behind only one task to run weekly
|
||||
for the lifetime of the system.
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
2- Manual Renewal via Desktop Context Menu---
|
||||
|
||||
It creates Desktop context Menu for manual activation and renewal.
|
||||
It creates the following files and registry entries.
|
||||
|
||||
Files:
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
C:\ProgramData\Online_KMS_Activation\Info.txt
|
||||
|
||||
Registry entries:
|
||||
HKCR\DesktopBackground\shell\Activate Windows - Office
|
||||
HKCR\DesktopBackground\shell\Activate Windows - Office\command
|
||||
|
||||
It creates an easy to reach the Desktop context menu for the manual activation renewal.
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe Virus Total = 0/66
|
||||
39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe Virus Total = 1/66
|
||||
|
||||
Virus Total Report Date: 12-11-2019
|
||||
|
||||
These files are official Microsoft files and in this script, these are used in
|
||||
cleaning office license in C2R Retail office to VL conversion process.
|
||||
|
||||
The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab
|
||||
You can get the original file here https://s.put.re/WFuXpyWA.zip
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
IMPORTANT NOTE - Some sensitive AV's may flag the Automatic Renewal via the Task, and not
|
||||
because of KMS, because for them it's suspicious to run long scripts in the background as Tasks.
|
||||
|
||||
It's recommended to set exclusions in Antivirus for
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
- When using Online KMS plus HWID Digital License, Online KMS script will be set to skip Windows
|
||||
activation (if the HWID activation was applied but was not successful due to lack of internet
|
||||
at the time of installation of Windows) but will register the KMS for other products, and all
|
||||
later installed Volume License (VL) products (MS Office) will self-activate when going online.
|
||||
|
||||
- When using Online KMS plus KMS38, Online KMS will not skip Windows activation but skip KMS38
|
||||
activation and will register the KMS for other products, and all subsequently-installed Volume
|
||||
License (VL) products (MS Office) will self-activate when going online.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
HWID (Fallback to KMS38):
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- In this method, KMS38 will be used for the activation in case the Windows version is not
|
||||
supported by HWID. For example, Windows 10 LTSC and Windows server.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
Activation Type Supported Product Activation Period
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Digital License - Windows 10 - Permanent
|
||||
KMS38 - Windows 10 / Server - Until the year 2038
|
||||
Online KMS - Windows / Server / Office - For 180 Days, renewal task needs to be
|
||||
created for lifetime auto-activation.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
* For more details, use the ReadMe.txt included in the respective activation folders.
|
@ -1,412 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:: =======================================================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: =======================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
title Protect / Unprotect KMS38 Activation
|
||||
set _elev=
|
||||
if /i "%~1"=="-el" set _elev=1
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell -nop -ep bypass -c"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "Red="white" "DarkRed""
|
||||
set "Green="white" "DarkGreen""
|
||||
set "Magenta="white" "darkmagenta""
|
||||
set "Gray="white" "darkgray""
|
||||
set "Black="white" "Black""
|
||||
set "ELine=echo: &call :PU_color "==== ERROR ====" %Red% &echo:"
|
||||
set line=__________________________________________________________________________________________________
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 14393 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 10 / Server 1607 [14393] and later builds.
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :Passed
|
||||
) || (
|
||||
if defined _elev goto :E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el) && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto PU_Done
|
||||
|
||||
:Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode con: cols=98 lines=30
|
||||
|
||||
set slp=SoftwareLicensingProduct
|
||||
set sls=SoftwareLicensingService
|
||||
set wApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
:: Written by @abbodi1406
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
:: Check Windows OS name
|
||||
|
||||
set winos=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
echo [1] Protect KMS38 Activation from being overwritten by 180 days KMS Activators
|
||||
echo:
|
||||
echo [2] Undo changes
|
||||
echo:
|
||||
echo [3] Exit
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
choice /C:123 /N /M "> Enter Your Choice [1,2,3] : "
|
||||
|
||||
if errorlevel 3 exit /b
|
||||
if errorlevel 2 goto Undo
|
||||
if errorlevel 1 goto Protect
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Protect
|
||||
|
||||
cls
|
||||
|
||||
:: Check KMS client setup key
|
||||
|
||||
set _gvlk=
|
||||
wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel 2>nul | findstr /i GVLK 1>nul && (set _gvlk=1)
|
||||
|
||||
if not defined _gvlk (
|
||||
%ELine%
|
||||
echo System is not activated with KMS38. ^(KMS Key is not installed^) Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Check Activation Grace Period
|
||||
|
||||
set gpr=
|
||||
for /f "tokens=2 delims==" %%# in ('"wmic path %slp% where (ApplicationID='%wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get GracePeriodRemaining /VALUE" ') do set "gpr=%%#"
|
||||
|
||||
if "%gpr%" LEQ "259200" (
|
||||
%ELine%
|
||||
echo System is not activated with KMS38. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Check SKU value
|
||||
|
||||
set SKU=
|
||||
for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
|
||||
if "%osSKU%"=="" (
|
||||
%ELine%
|
||||
echo SKU value was not detected properly. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
set osedition=
|
||||
call :K38_CheckEdition %nul%
|
||||
|
||||
if "%osedition%"=="" (
|
||||
%ELine%
|
||||
echo OS Edition was not detected properly. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Check Activation ID
|
||||
|
||||
set app=
|
||||
for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%' and LicenseFamily='%osedition%' and Description like '%%KMSCLIENT%%') get ID /VALUE" 2^>nul') do set "app=%%a"
|
||||
|
||||
if "%app%"=="" (
|
||||
%ELine%
|
||||
echo Activation ID was not detected properly. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
wmic path %sls% where __CLASS='%sls%' call ClearKeyManagementServiceMachine %nul%
|
||||
wmic path %sls% where __CLASS='%sls%' call ClearKeyManagementServicePort %nul%
|
||||
|
||||
reg query "HKLM\%SPPk%\%wApp%" %nul% && (
|
||||
%nul% call :reg_takeownership "HKLM\%SPPk%\%wApp%" FullControl Allow S-1-5-32-544
|
||||
reg delete "HKLM\%SPPk%\%wApp%" /f %nul%
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul%
|
||||
)
|
||||
|
||||
reg query "HKLM\%SPPk%\%wApp%" %nul% && (
|
||||
%ELine%
|
||||
echo Registry Key was not cleared successfully. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Set specific KMS host to Local Host
|
||||
:: Thanks to @abbodi1406
|
||||
|
||||
set setkms_error=
|
||||
|
||||
wmic path %slp% where ID='%app%' call ClearKeyManagementServiceMachine %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call ClearKeyManagementServicePort %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call SetKeyManagementServiceMachine MachineName="127.0.0.2" %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call SetKeyManagementServicePort 1688 %nul% || (set setkms_error=1)
|
||||
|
||||
if defined setkms_error (
|
||||
reg delete "HKLM\%SPPk%\%wApp%" /f %nul%
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul%
|
||||
%ELine%
|
||||
echo Specific KMS host to Local Host was not properly applied. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
%nul% call :reg_takeownership "HKLM\%SPPk%\%wApp%" "SetValue, Delete" Deny S-1-5-32-544
|
||||
|
||||
reg delete "HKLM\%SPPk%\%wApp%" /f %nul%
|
||||
reg query "HKLM\%SPPk%\%wApp%" %nul% || (
|
||||
%ELine%
|
||||
echo Registry Key was not protected properly. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Check Activation Grace Period
|
||||
|
||||
set gpr=
|
||||
for /f "tokens=2 delims==" %%# in ('"wmic path %slp% where (ApplicationID='%wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get GracePeriodRemaining /VALUE" ') do set "gpr=%%#"
|
||||
|
||||
if "%gpr%" LEQ "259200" (
|
||||
%ELine%
|
||||
echo System is not activated with KMS38.
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
cls
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
echo Specific KMS host set to 127.0.0.2 ^(Local Host^) successfully.
|
||||
echo:
|
||||
echo Registry item locked successfully.
|
||||
echo HKLM\%SPPk%\%wApp%
|
||||
echo:
|
||||
call :PU_color "%winos% - KMS38 Activation is now protected." %Green%
|
||||
echo:
|
||||
echo Now you need to activate Office with KMS ^(If required^)
|
||||
echo:
|
||||
echo %line%
|
||||
|
||||
goto PU_Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Undo
|
||||
|
||||
cls
|
||||
set exist_=
|
||||
reg query "HKLM\%SPPk%\%wApp%" %nul% && (set exist_=1)
|
||||
|
||||
if defined exist_ (
|
||||
%nul% call :reg_takeownership "HKLM\%SPPk%\%wApp%" FullControl Allow S-1-5-32-544
|
||||
reg delete "HKLM\%SPPk%\%wApp%" /f %nul%
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul%
|
||||
)
|
||||
|
||||
reg query "HKLM\%SPPk%\%wApp%" %nul% && (
|
||||
%ELine%
|
||||
echo Registry Key was not cleared successfully. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
if defined exist_ (
|
||||
echo Registry item deleted successfully.
|
||||
echo HKLM\%SPPk%\%wApp%
|
||||
echo:
|
||||
call :PU_color "KMS38 Activation is now unprotected [set to default]" %Green%
|
||||
) else (
|
||||
call :PU_color "It is already unprotected [set to default]" %Green%
|
||||
)
|
||||
echo:
|
||||
echo %line%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:PU_Done
|
||||
echo:
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:PU_color
|
||||
|
||||
%_psc% write-host '%1' -fore '%2' -back '%3'
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
:K38_CheckEdition
|
||||
|
||||
for %%# in (
|
||||
4-Enterprise
|
||||
7-ServerStandard
|
||||
8-ServerDatacenter
|
||||
27-EnterpriseN
|
||||
48-Professional
|
||||
49-ProfessionalN
|
||||
50-ServerSolution
|
||||
98-CoreN
|
||||
99-CoreCountrySpecific
|
||||
100-CoreSingleLanguage
|
||||
101-Core
|
||||
110-ServerCloudStorage
|
||||
120-ServerARM64
|
||||
121-Education
|
||||
122-EducationN
|
||||
125-EnterpriseS
|
||||
126-EnterpriseSN
|
||||
145-ServerDatacenterACor
|
||||
146-ServerStandardACor
|
||||
161-ProfessionalWorkstation
|
||||
162-ProfessionalWorkstationN
|
||||
164-ProfessionalEducation
|
||||
165-ProfessionalEducationN
|
||||
168-ServerAzureCor
|
||||
171-EnterpriseG
|
||||
172-EnterpriseGN
|
||||
175-ServerRdsh
|
||||
183-CloudE
|
||||
) do for /f "tokens=1,2 delims=-" %%A in ("%%#") do (
|
||||
if %osSKU%==%%A set "osedition=%%B"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Reg_takeownership snippet
|
||||
:: Written by @AveYo aka @BAU
|
||||
:: pastebin.com/XTPt0JSC
|
||||
|
||||
:reg_takeownership
|
||||
set "pargs=$regkey='%~1'; $p='%~2'; $a='%~3'; $u='%~4'; $o='%~5';"
|
||||
%_psc% "%pargs%; $f=[io.file]::ReadAllText('!_batp!') -split ':ps_reg_own\:.*';iex ($f[1]);" & exit/b:ps_reg_own:
|
||||
$dll0='[DllImport("ntdll.dll")]public static extern IntPtr RtlAdjustPrivilege(int a,bool b,bool c,ref bool d);';
|
||||
$nt=Add-Type -Member $dll0 -Name Nt -PassThru; foreach($i in @(9,17,18)){$null=$nt::RtlAdjustPrivilege($i,1,0,[ref]0)}
|
||||
$root=$true; if($o -eq ''){$o=$u}; $rk=$regkey -split '\\',2; $key=$rk[1];
|
||||
switch -regex ($rk[0]){ '[mM]'{$HK='LocalMachine'};'[uU]'{$HK='CurrentUser'};default{$HK='ClassesRoot'}; }
|
||||
$usr=0,0,0; $sec=0,0,0; $rule=0,0,0; $perm='FullControl',$p,$p; $access='Allow',$a,$a; $s=$o,$u,'S-1-5-32-544';
|
||||
for($i=0;$i -le 2;$i++){ $usr[$i]=[System.Security.Principal.SecurityIdentifier]$s[$i];
|
||||
$rule[$i]=[System.Security.AccessControl.RegistryAccessRule]::new($usr[$i], $perm[$i], 3, 0, $access[$i]);
|
||||
$sec[$i]=[System.Security.AccessControl.RegistrySecurity]::new(); }
|
||||
function Reg_TakeOwnership { param($hive, $key, $root=$false);
|
||||
$reg=[Microsoft.Win32.Registry]::$hive.OpenSubKey($key,'ReadWriteSubTree','TakeOwnership'); $sec[2].SetOwner($usr[2]);
|
||||
$reg.SetAccessControl($sec[2]); if($root){ $reg=$reg.OpenSubKey('','ReadWriteSubTree','ChangePermissions');
|
||||
$acl=$reg.GetAccessControl(); $acl.SetAccessRuleProtection($false,$false); $acl.ResetAccessRule($rule[1]);
|
||||
$reg.SetAccessControl($acl); } $sec[0].SetOwner($usr[0]); $reg.SetAccessControl($sec[0]); }
|
||||
Reg_TakeOwnership $HK $key $true; if($root){ $r=[Microsoft.Win32.Registry]::$HK.OpenSubKey($key);
|
||||
foreach($sk in $r.GetSubKeyNames()){try{ Reg_TakeOwnership $HK "$($key+'\\'+$sk)" $false}catch{} }}
|
||||
Get-Acl "$($rk[0]+':\\'+$rk[1])" | fl:ps_reg_own:
|
||||
|
||||
::========================================================================================================================================
|
@ -1,48 +0,0 @@
|
||||
====================================================================================================
|
||||
KMS38 Protection:
|
||||
====================================================================================================
|
||||
|
||||
- If you don't know what KMS38 is, then first check it in the Read Me.
|
||||
|
||||
- By default, a KMS38 Activation is vulnerable to unintended overwriting/replacement and
|
||||
neutralization by a 180-Day KMS Activator (non-KMS38 Activator).
|
||||
However, with a few tricks you can ensure that no alternative KMS Activator can replace KMS38
|
||||
Activation by accident or even on purpose. This script demonstrate how to do/undo that.
|
||||
|
||||
- Protect KMS38:
|
||||
- How does KMS38 Protection work?
|
||||
In the KMS activation method, the Windows Operating System first checks the KMS IP registered
|
||||
as a specific KMS, and if that is not defined then it checks the Global KMS IP.
|
||||
Another fact is that if LocalHost (127.0.0.2) is defined as KMS IP in the Windows 8.1 and 10 OS's
|
||||
then Windows will not accept it as a valid KMS IP.
|
||||
This script simply utilizes the above facts to protect the KMS38 activation from being
|
||||
overwritten by any alternative 'normal' 180-Day KMS Activation.
|
||||
|
||||
Script steps-
|
||||
- Check if Windows is activated with KMS38, if yes,
|
||||
- Set that Windows edition specific KMS IP to LocalHost (127.0.0.2),
|
||||
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\55c92734-d682-4d71-983e-d6ec3f16059f\XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
||||
where X is Windows edition Activation ID.
|
||||
|
||||
- Lock this Registry with Reg_takeownership snippet by @AveYo aka @BAU
|
||||
pastebin.com/XTPt0JSC
|
||||
- Done.
|
||||
|
||||
- Unprotect KMS38:
|
||||
- Just undo above steps,
|
||||
- Give administrator full control of that mentioned registry key.
|
||||
- Delete that registry key.
|
||||
- Done.
|
||||
|
||||
=======================================================================================================
|
||||
|
||||
This script is a part of 'Microsoft Activation Scripts' project.
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
=======================================================================================================
|
@ -1,291 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:: =======================================================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: =======================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
title Change Windows 10 Edition with Retail/OEM Key
|
||||
set _elev=
|
||||
if /i "%~1"=="-el" set _elev=1
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell -nop -ep bypass -c"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "ELine=echo: &echo ==== ERROR ==== &echo:"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 17134 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo OS Requirement - Windows 10 [17134] 1803 and later builds.
|
||||
goto Ced_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :Passed
|
||||
) || (
|
||||
if defined _elev goto :E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el) && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto Ced_Done
|
||||
|
||||
:Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Set buffer height independently of window height
|
||||
:: https://stackoverflow.com/a/13351373
|
||||
:: Written by @dbenham
|
||||
|
||||
mode con: cols=98 lines=31
|
||||
%nul% %_psc% "&{$H=get-host;$W=$H.ui.rawui;$B=$W.buffersize;$B.height=36;$W.buffersize=$B;}"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set slp=SoftwareLicensingProduct
|
||||
set sls=SoftwareLicensingService
|
||||
set wApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
:: Check Installation type
|
||||
set instype=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType 2^>nul') do if not errorlevel 1 set "instype=%%b"
|
||||
|
||||
if not "%instype%"=="Client" (
|
||||
%ELine%
|
||||
echo Unsupported OS version [Server] Detected.
|
||||
echo OS Requirement - Windows 10 [17134] 1803 and later builds.
|
||||
goto Ced_Done
|
||||
)
|
||||
|
||||
:: Check Windows Edition
|
||||
set osedition=
|
||||
for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%' and PartialProductKey is not NULL) get LicenseFamily /VALUE" 2^>nul') do if not errorlevel 1 set "osedition=%%a"
|
||||
if not defined osedition for /f "tokens=3 delims=: " %%a in ('DISM /English /Online /Get-CurrentEdition 2^>nul ^| find /i "Current Edition :"') do set "osedition=%%a"
|
||||
|
||||
cls
|
||||
if "%osedition%"=="" (
|
||||
%ELine%
|
||||
echo OS Edition was not detected properly. Aborting...
|
||||
goto Ced_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo _______________________________________________________________________________________________
|
||||
echo:
|
||||
echo Note 1 - This script can not change 'Core'(Home) to 'Non-Core' (Pro) Editions.
|
||||
echo You'll have to do the above manually, Follow these steps.
|
||||
echo - Disable internet.
|
||||
echo - Go to Settings ^> Update ^& Security ^> Activation and
|
||||
echo Insert 'Pro' Edition Product Key VK7JG-NPHTM-C97JM-9MPGT-3V66T
|
||||
echo - Follow on screen instructions, Done.
|
||||
echo:
|
||||
echo Note 2 - Following option works only in W10 17134 (RS4) and later builds.
|
||||
echo _______________________________________________________________________________________________
|
||||
echo:
|
||||
echo You can change the Current Edition '%osedition%' to one of the following :
|
||||
echo _______________________________________________________________________________________________
|
||||
|
||||
REM Thanks to @RPO for the help in codes
|
||||
|
||||
echo:
|
||||
for /f "tokens=4" %%a in ('dism /online /english /Get-TargetEditions ^| findstr /i /c:"Target Edition : "') do echo %%a
|
||||
echo:
|
||||
choice /C:21 /N /M "[1] Continue [2] Exit : "
|
||||
if %errorlevel%==1 exit /b
|
||||
echo:
|
||||
|
||||
for /f "tokens=4" %%a in ('dism /online /english /Get-TargetEditions ^| findstr /i /c:"Target Edition : "') do (
|
||||
|
||||
choice /C:NY /N /M "Do you want to change to the %%a edition? [Y,N] : "
|
||||
if errorlevel 2 (
|
||||
|
||||
call :%%a %nul%
|
||||
if "!key!"=="" cls &%ELine% &echo [%%a ^| %winbuild%] HWID Activation is Not Supported. &goto Ced_Done
|
||||
|
||||
cls
|
||||
echo ____________________________________________________________________
|
||||
|
||||
REM Thanks to @abbodi1406 for the WMI methods
|
||||
|
||||
echo:
|
||||
echo Changing the Edition to Windows 10 %%a
|
||||
wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="!key!" %nul% && (
|
||||
for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#"
|
||||
wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
echo:
|
||||
call echo Installing %%_channel%% Key [!key!]
|
||||
echo [Successful]
|
||||
echo:
|
||||
echo Reboot is required to properly change the Edition.
|
||||
) || (
|
||||
%ELine%
|
||||
echo Installing Retail/OEM Key [!key!]
|
||||
echo [Unsuccessful]
|
||||
)
|
||||
echo ____________________________________________________________________
|
||||
|
||||
goto Ced_Done
|
||||
))
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Ced_Done
|
||||
|
||||
echo:
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Retail_OEM Key List
|
||||
|
||||
:Core
|
||||
set "key=YTMG3-N6DKC-DKB77-7M9GH-8HVX7"
|
||||
exit /b
|
||||
|
||||
:CoreCountrySpecific
|
||||
set "key=N2434-X9D7W-8PF6X-8DV9T-8TYMD"
|
||||
exit /b
|
||||
|
||||
:CoreN
|
||||
set "key=4CPRK-NM3K3-X6XXQ-RXX86-WXCHW"
|
||||
exit /b
|
||||
|
||||
:CoreSingleLanguage
|
||||
set "key=BT79Q-G7N6G-PGBYW-4YWX6-6F4BT"
|
||||
exit /b
|
||||
|
||||
:Education
|
||||
set "key=YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY"
|
||||
exit /b
|
||||
|
||||
:EducationN
|
||||
set "key=84NGF-MHBT6-FXBX8-QWJK7-DRR8H"
|
||||
exit /b
|
||||
|
||||
:Enterprise
|
||||
set "key=XGVPP-NMH47-7TTHJ-W3FW7-8HV2C"
|
||||
exit /b
|
||||
|
||||
:EnterpriseN
|
||||
set "key=3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT"
|
||||
exit /b
|
||||
|
||||
:EnterpriseS
|
||||
if "%winbuild%" EQU "10240" set "key=FWN7H-PF93Q-4GGP8-M8RF3-MDWWW"
|
||||
if "%winbuild%" EQU "14393" set "key=NK96Y-D9CD8-W44CQ-R8YTK-DYJWX"
|
||||
exit /b
|
||||
|
||||
:EnterpriseSN
|
||||
if "%winbuild%" EQU "10240" set "key=8V8WN-3GXBH-2TCMG-XHRX3-9766K"
|
||||
if "%winbuild%" EQU "14393" set "key=2DBW3-N2PJG-MVHW3-G7TDK-9HKR4"
|
||||
exit /b
|
||||
|
||||
:Professional
|
||||
set "key=VK7JG-NPHTM-C97JM-9MPGT-3V66T"
|
||||
exit /b
|
||||
|
||||
:ProfessionalEducation
|
||||
set "key=8PTT6-RNW4C-6V7J2-C2D3X-MHBPB"
|
||||
exit /b
|
||||
|
||||
:ProfessionalEducationN
|
||||
set "key=GJTYN-HDMQY-FRR76-HVGC7-QPF8P"
|
||||
exit /b
|
||||
|
||||
:ProfessionalN
|
||||
set "key=2B87N-8KFHP-DKV6R-Y2C8J-PKCKT"
|
||||
exit /b
|
||||
|
||||
:ProfessionalWorkstation
|
||||
set "key=DXG7C-N36C4-C4HTG-X4T3X-2YV77"
|
||||
exit /b
|
||||
|
||||
:ProfessionalWorkstationN
|
||||
set "key=WYPNQ-8C467-V2W6J-TX4WX-WT2RQ"
|
||||
exit /b
|
||||
|
||||
:ServerRdsh
|
||||
set "key=NJCF7-PW8QT-3324D-688JX-2YV66"
|
||||
exit /b
|
||||
|
||||
:IoTEnterprise
|
||||
set "key=XQQYW-NFFMW-XJPBH-K8732-CKFFD"
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,322 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
:: For unattended mode, run the script with /u parameter.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:: =======================================================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: =======================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
title Install Windows 10 Retail/OEM Key
|
||||
set Unattended=
|
||||
set _args=
|
||||
set _elev=
|
||||
set "_arg1=%~1"
|
||||
if not defined _arg1 goto :NoProgArgs
|
||||
set "_args=%~1"
|
||||
set "_arg2=%~2"
|
||||
if defined _arg2 set "_args=%~1 %~2"
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
if /i "%%A"=="/u" set Unattended=1)
|
||||
:NoProgArgs
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell -nop -ep bypass -c"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "ELine=echo: &echo ==== ERROR ==== &echo:"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 10240 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 10.
|
||||
goto Ins_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :Passed
|
||||
) || (
|
||||
if defined _elev goto :E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
if defined _args set _PSarg="""%~f0""" -el """%_args%"""
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto Ins_Done
|
||||
|
||||
:Passed
|
||||
|
||||
mode con: cols=98 lines=30
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Windows OS name
|
||||
|
||||
set winos=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
|
||||
:: Check SKU value
|
||||
|
||||
set SKU=
|
||||
for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
|
||||
if "%osSKU%"=="" (
|
||||
%ELine%
|
||||
echo SKU value was not detected properly. Aborting...
|
||||
goto Ins_Done
|
||||
)
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
set osedition=
|
||||
call :CheckEdition %nul%
|
||||
|
||||
if "%osedition%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild% ^| SKU:%osSKU%] HWID Activation is Not Supported.
|
||||
goto Ins_Done
|
||||
)
|
||||
|
||||
set key=
|
||||
call :%osedition% %nul%
|
||||
|
||||
if "%key%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild%] HWID Activation is Not Supported.
|
||||
goto Ins_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if defined Unattended goto ContinueKeyInsert
|
||||
|
||||
cls
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
echo Install [%winos% ^| %winbuild%] Retail/OEM Key
|
||||
echo [%key%]
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
choice /C:12 /N /M "[1] Continue [2] Exit : "
|
||||
|
||||
if errorlevel 2 exit /b
|
||||
if errorlevel 1 goto ContinueKeyInsert
|
||||
|
||||
:ContinueKeyInsert
|
||||
|
||||
cls
|
||||
echo ___________________________________________________________________________________________
|
||||
|
||||
:: Thanks to @abbodi1406 for the WMI methods
|
||||
|
||||
set slp=SoftwareLicensingProduct
|
||||
set sls=SoftwareLicensingService
|
||||
set wApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
|
||||
wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="%key%" %nul% && (
|
||||
for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#"
|
||||
wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
echo:
|
||||
echo [%winos% ^| %winbuild%]
|
||||
call echo Installing %%_channel%% Key [%key%]
|
||||
echo [Successful]
|
||||
) || (
|
||||
%ELine%
|
||||
echo Installing Retail/OEM Key [%key%]
|
||||
echo [Unsuccessful]
|
||||
)
|
||||
echo ___________________________________________________________________________________________
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Ins_Done
|
||||
echo:
|
||||
if defined Unattended (
|
||||
echo Exiting in 3 seconds...
|
||||
if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3)
|
||||
exit /b
|
||||
)
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
:CheckEdition
|
||||
|
||||
for %%# in (
|
||||
4-Enterprise
|
||||
27-EnterpriseN
|
||||
48-Professional
|
||||
49-ProfessionalN
|
||||
98-CoreN
|
||||
99-CoreCountrySpecific
|
||||
100-CoreSingleLanguage
|
||||
101-Core
|
||||
121-Education
|
||||
122-EducationN
|
||||
125-EnterpriseS
|
||||
126-EnterpriseSN
|
||||
161-ProfessionalWorkstation
|
||||
162-ProfessionalWorkstationN
|
||||
164-ProfessionalEducation
|
||||
165-ProfessionalEducationN
|
||||
175-ServerRdsh
|
||||
188-IoTEnterprise
|
||||
) do for /f "tokens=1,2 delims=-" %%A in ("%%#") do (
|
||||
if %osSKU%==%%A set "osedition=%%B"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Retail/OEM Key List
|
||||
|
||||
:Core
|
||||
set "key=YTMG3-N6DKC-DKB77-7M9GH-8HVX7"
|
||||
exit /b
|
||||
|
||||
:CoreCountrySpecific
|
||||
set "key=N2434-X9D7W-8PF6X-8DV9T-8TYMD"
|
||||
exit /b
|
||||
|
||||
:CoreN
|
||||
set "key=4CPRK-NM3K3-X6XXQ-RXX86-WXCHW"
|
||||
exit /b
|
||||
|
||||
:CoreSingleLanguage
|
||||
set "key=BT79Q-G7N6G-PGBYW-4YWX6-6F4BT"
|
||||
exit /b
|
||||
|
||||
:Education
|
||||
set "key=YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY"
|
||||
exit /b
|
||||
|
||||
:EducationN
|
||||
set "key=84NGF-MHBT6-FXBX8-QWJK7-DRR8H"
|
||||
exit /b
|
||||
|
||||
:Enterprise
|
||||
set "key=XGVPP-NMH47-7TTHJ-W3FW7-8HV2C"
|
||||
exit /b
|
||||
|
||||
:EnterpriseN
|
||||
set "key=3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT"
|
||||
exit /b
|
||||
|
||||
:EnterpriseS
|
||||
if "%winbuild%" EQU "10240" set "key=FWN7H-PF93Q-4GGP8-M8RF3-MDWWW"
|
||||
if "%winbuild%" EQU "14393" set "key=NK96Y-D9CD8-W44CQ-R8YTK-DYJWX"
|
||||
exit /b
|
||||
|
||||
:EnterpriseSN
|
||||
if "%winbuild%" EQU "10240" set "key=8V8WN-3GXBH-2TCMG-XHRX3-9766K"
|
||||
if "%winbuild%" EQU "14393" set "key=2DBW3-N2PJG-MVHW3-G7TDK-9HKR4"
|
||||
exit /b
|
||||
|
||||
:Professional
|
||||
set "key=VK7JG-NPHTM-C97JM-9MPGT-3V66T"
|
||||
exit /b
|
||||
|
||||
:ProfessionalEducation
|
||||
set "key=8PTT6-RNW4C-6V7J2-C2D3X-MHBPB"
|
||||
exit /b
|
||||
|
||||
:ProfessionalEducationN
|
||||
set "key=GJTYN-HDMQY-FRR76-HVGC7-QPF8P"
|
||||
exit /b
|
||||
|
||||
:ProfessionalN
|
||||
set "key=2B87N-8KFHP-DKV6R-Y2C8J-PKCKT"
|
||||
exit /b
|
||||
|
||||
:ProfessionalWorkstation
|
||||
set "key=DXG7C-N36C4-C4HTG-X4T3X-2YV77"
|
||||
exit /b
|
||||
|
||||
:ProfessionalWorkstationN
|
||||
set "key=WYPNQ-8C467-V2W6J-TX4WX-WT2RQ"
|
||||
exit /b
|
||||
|
||||
:ServerRdsh
|
||||
set "key=NJCF7-PW8QT-3324D-688JX-2YV66"
|
||||
exit /b
|
||||
|
||||
:IoTEnterprise
|
||||
set "key=XQQYW-NFFMW-XJPBH-K8732-CKFFD"
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,4 +0,0 @@
|
||||
@echo off
|
||||
start https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ &:: Login required
|
||||
start https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
start https://github.com/massgravel/Microsoft-Activation-Scripts
|
@ -1,31 +0,0 @@
|
||||
Use the tool 'HashCheck' to compare hashes.
|
||||
https://github.com/gurnec/HashCheck/releases/latest
|
||||
|
||||
9d5b4b3e761cca9531d64200dfbbfa0dec94f5b0 *Activators\Online_KMS_Activation\BIN\_Info.txt
|
||||
c1a44a54b4d53092de243d3af068fdbbda3c27de *Activators\Online_KMS_Activation\Renewal_Setup.cmd
|
||||
502d0705dcb06900ca3700271bc33eb3fdc83769 *Activators\Online_KMS_Activation\Uninstall.cmd
|
||||
2ca8daf456c858d58d51d20ccf6857da7460bcae *Activators\Online_KMS_Activation\_ReadMe.txt
|
||||
68de64a326cdf1b0336c2ecd42a62fec8e7110f2 *Activators\ReadMe.txt
|
||||
8b81e4db09cf7800d678b0ff8569df7c8ca278f1 *Extras\Download_Genuine_Installation_Media.url
|
||||
ba656804fd4c58dbf34b0b195a00d14cf84a790e *Extras\Extract_OEM_Folder\Extract_OEM_Folder.cmd
|
||||
1fd8374d9cad3b71b69162adbad4eab009ceb029 *Activators\Check_Activation_Status.cmd
|
||||
6c0697f17d1a7d8589eaaf37a4275fa745615f30 *Extras\Extract_OEM_Folder\ReadMe.txt
|
||||
b5b0f7c0bc677d4ca381e41cccf06e8ee6f97f00 *Extras\KMS38_Protection\Protect_Unprotect-KMS38.cmd
|
||||
a8443a4aa8d1956ea893557e18b3d8ec8056269f *Extras\KMS38_Protection\ReadMe.txt
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *Activators\HWID-KMS38_Activation\BIN\ARM64_gatherosstate.exe
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *Activators\HWID-KMS38_Activation\BIN\ARM64_slc.dll
|
||||
48d928b1bec25a56fe896c430c2c034b7866aa7a *Activators\HWID-KMS38_Activation\BIN\ClipUp.exe
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *Activators\HWID-KMS38_Activation\BIN\gatherosstate.exe
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *Activators\HWID-KMS38_Activation\BIN\slc.dll
|
||||
be0392be7ee0a78c7d1e8903cd29ea76cbafe201 *Activators\HWID-KMS38_Activation\BIN\_Info.txt
|
||||
5786bd332d1e08ed8a8bd264f7f085ff83aec778 *Activators\HWID-KMS38_Activation\HWID_Activation.cmd
|
||||
497300df6bcf4bc64cc4065cd81a856fb54a3851 *Activators\HWID-KMS38_Activation\KMS38_Activation.cmd
|
||||
bd37bf2122cc34f3680bbf17e89e8634b3654661 *Activators\HWID-KMS38_Activation\ReadMe_HWID.txt
|
||||
a53371e73405ba9c1c4fa6a29c604bf3b954117c *Activators\HWID-KMS38_Activation\ReadMe_KMS38.txt
|
||||
2898e59d908fd2ff38cc1b57f0ce453f2250b8af *Activators\Online_KMS_Activation\Activate.cmd
|
||||
d30a0e4e5911d3ca705617d17225372731c770e2 *Activators\Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *Activators\Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
86748a866ebd11766fe71ff12b63d2525d6f28be *Extras\OEMRET-Change_W10_Edition.cmd
|
||||
9838babe8091dad9574be5606fe88618b85dca3a *Extras\OEMRET-Install_W10_Key.cmd
|
||||
b470dc10afa63feebc1d8c1249b59f0a299026a6 *Credits.txt
|
||||
36075a49f50c915b3878f60460a3bb0301f3b257 *Homepages.cmd
|
File diff suppressed because it is too large
Load Diff
@ -1,239 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
@cls
|
||||
|
||||
|
||||
:: ==================================================
|
||||
:: Check-Activation-Status-Alternative.cmd
|
||||
:: Written by @abbodi1406 (MDL)
|
||||
:: https://forums.mydigitallife.net/posts/838808
|
||||
:: ==================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
color 07
|
||||
title Check Activation Status [wmic]
|
||||
set wspp=SoftwareLicensingProduct
|
||||
set wsps=SoftwareLicensingService
|
||||
set ospp=OfficeSoftwareProtectionProduct
|
||||
set osps=OfficeSoftwareProtectionService
|
||||
set winApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
set o14App=59a52881-a989-479d-af46-f275c6370663
|
||||
set o15App=0ff1ce15-a989-479d-af46-f275c6370663
|
||||
for %%# in (spp_get,ospp_get,cW1nd0ws,sppw,c0ff1ce15,sppo,osppsvc,ospp14,ospp15) do set "%%#="
|
||||
for /f "tokens=6 delims=[]. " %%# in ('ver') do set winbuild=%%#
|
||||
set "spp_get=Description, DiscoveredKeyManagementServiceMachineName, DiscoveredKeyManagementServiceMachinePort, EvaluationEndDate, GracePeriodRemaining, ID, KeyManagementServiceMachine, KeyManagementServicePort, KeyManagementServiceProductKeyID, LicenseStatus, LicenseStatusReason, Name, PartialProductKey, ProductKeyID, VLActivationInterval, VLRenewalInterval"
|
||||
set "ospp_get=%spp_get%"
|
||||
if %winbuild% geq 9200 set "spp_get=%spp_get%, DiscoveredKeyManagementServiceMachineIpAddress, KeyManagementServiceLookupDomain, ProductKeyChannel, VLActivationTypeEnabled"
|
||||
|
||||
set "SysPath=%Windir%\System32"
|
||||
if exist "%Windir%\Sysnative\reg.exe" (set "SysPath=%Windir%\Sysnative")
|
||||
set "Path=%SysPath%;%Windir%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\"
|
||||
set "line2=************************************************************"
|
||||
set "line3=____________________________________________________________"
|
||||
|
||||
call :casWpkey %wspp% %winApp% cW1nd0ws sppw
|
||||
if %winbuild% geq 9200 call :casWpkey %wspp% %o15App% c0ff1ce15 sppo
|
||||
wmic path %osps% get Version 1>nul 2>nul && (
|
||||
call :casWpkey %ospp% %o14App% osppsvc ospp14
|
||||
if %winbuild% lss 9200 call :casWpkey %ospp% %o15App% osppsvc ospp15
|
||||
)
|
||||
|
||||
echo %line2%
|
||||
echo *** Windows Status ***
|
||||
echo %line2%
|
||||
if not defined cW1nd0ws (
|
||||
echo:
|
||||
echo Error: product key not found.
|
||||
goto :casWcon
|
||||
)
|
||||
set winID=1
|
||||
for /f "tokens=2 delims==" %%# in ('"wmic path %wspp% where (ApplicationID='%winApp%' and PartialProductKey is not null) get ID /value"') do (
|
||||
set "chkID=%%#"
|
||||
call :casWdet "%wspp%" "%wsps%" "%spp_get%"
|
||||
call :casWout
|
||||
echo %line3%
|
||||
echo:
|
||||
)
|
||||
|
||||
:casWcon
|
||||
set winID=0
|
||||
set verbose=1
|
||||
if not defined c0ff1ce15 (
|
||||
if defined osppsvc goto :casWospp
|
||||
goto :casWend
|
||||
)
|
||||
echo %line2%
|
||||
echo *** Office Status ***
|
||||
echo %line2%
|
||||
for /f "tokens=2 delims==" %%# in ('"wmic path %wspp% where (ApplicationID='%o15App%' and PartialProductKey is not null) get ID /value"') do (
|
||||
set "chkID=%%#"
|
||||
call :casWdet "%wspp%" "%wsps%" "%spp_get%"
|
||||
call :casWout
|
||||
echo %line3%
|
||||
echo:
|
||||
)
|
||||
set verbose=0
|
||||
if defined osppsvc goto :casWospp
|
||||
goto :casWend
|
||||
|
||||
:casWospp
|
||||
if %verbose%==1 (
|
||||
echo %line2%
|
||||
echo *** Office Status ***
|
||||
echo %line2%
|
||||
)
|
||||
if defined ospp15 for /f "tokens=2 delims==" %%# in ('"wmic path %ospp% where (ApplicationID='%o15App%' and PartialProductKey is not null) get ID /value"') do (
|
||||
set "chkID=%%#"
|
||||
call :casWdet "%ospp%" "%osps%" "%ospp_get%"
|
||||
call :casWout
|
||||
echo %line3%
|
||||
echo:
|
||||
)
|
||||
if defined ospp14 for /f "tokens=2 delims==" %%# in ('"wmic path %ospp% where (ApplicationID='%o14App%' and PartialProductKey is not null) get ID /value"') do (
|
||||
set "chkID=%%#"
|
||||
call :casWdet "%ospp%" "%osps%" "%ospp_get%"
|
||||
call :casWout
|
||||
echo %line3%
|
||||
echo:
|
||||
)
|
||||
goto :casWend
|
||||
|
||||
:casWpkey
|
||||
wmic path %1 where (ApplicationID='%2' and PartialProductKey is not null) get ID /value 2>nul | findstr /i ID 1>nul && (set %3=1&set %4=1)
|
||||
exit /b
|
||||
|
||||
:casWdet
|
||||
for %%# in (%~3) do set "%%#="
|
||||
if %~1 equ %ospp% for %%# in (DiscoveredKeyManagementServiceMachineIpAddress, KeyManagementServiceLookupDomain, ProductKeyChannel, VLActivationTypeEnabled) do set "%%#="
|
||||
set "cKmsClient="
|
||||
set "cTblClient="
|
||||
set "cAvmClient="
|
||||
set "ExpireMsg="
|
||||
set "_xpr="
|
||||
for /f "tokens=* delims=" %%# in ('"wmic path %~1 where ID='%chkID%' get %~3 /value" ^| findstr ^=') do set "%%#"
|
||||
|
||||
set /a _gpr=(GracePeriodRemaining+1440-1)/1440
|
||||
echo %Description%| findstr /i VOLUME_KMSCLIENT 1>nul && (set cKmsClient=1&set _mTag=Volume)
|
||||
echo %Description%| findstr /i TIMEBASED_ 1>nul && (set cTblClient=1&set _mTag=Timebased)
|
||||
echo %Description%| findstr /i VIRTUAL_MACHINE_ACTIVATION 1>nul && (set cAvmClient=1&set _mTag=Automatic VM)
|
||||
cmd /c exit /b %LicenseStatusReason%
|
||||
set "LicenseReason=%=ExitCode%"
|
||||
set "LicenseMsg=Time remaining: %GracePeriodRemaining% minute(s) (%_gpr% day(s))"
|
||||
if %_gpr% GEQ 1 for /f "tokens=* delims=" %%# in ('powershell "$([DateTime]::Now.addMinutes(%GracePeriodRemaining%)).ToString('yyyy-MM-dd HH:mm:ss')" 2^>nul') do set "_xpr=%%#"
|
||||
|
||||
if %LicenseStatus% EQU 0 (
|
||||
set "License=Unlicensed"
|
||||
set "LicenseMsg="
|
||||
)
|
||||
if %LicenseStatus% EQU 1 (
|
||||
set "License=Licensed"
|
||||
set "LicenseMsg="
|
||||
if %GracePeriodRemaining% EQU 0 (
|
||||
if %winID% EQU 1 (set "ExpireMsg=The machine is permanently activated.") else (set "ExpireMsg=The product is permanently activated.")
|
||||
) else (
|
||||
set "LicenseMsg=%_mTag% activation expiration: %GracePeriodRemaining% minute(s) (%_gpr% day(s))"
|
||||
if defined _xpr set "ExpireMsg=%_mTag% activation will expire %_xpr%"
|
||||
)
|
||||
)
|
||||
if %LicenseStatus% EQU 2 (
|
||||
set "License=Initial grace period"
|
||||
if defined _xpr set "ExpireMsg=Initial grace period ends %_xpr%"
|
||||
)
|
||||
if %LicenseStatus% EQU 3 (
|
||||
set "License=Additional grace period (KMS license expired or hardware out of tolerance)"
|
||||
if defined _xpr set "ExpireMsg=Additional grace period ends %_xpr%"
|
||||
)
|
||||
if %LicenseStatus% EQU 4 (
|
||||
set "License=Non-genuine grace period."
|
||||
if defined _xpr set "ExpireMsg=Non-genuine grace period ends %_xpr%"
|
||||
)
|
||||
if %LicenseStatus% EQU 6 (
|
||||
set "License=Extended grace period"
|
||||
if defined _xpr set "ExpireMsg=Extended grace period ends %_xpr%"
|
||||
)
|
||||
if %LicenseStatus% EQU 5 (
|
||||
set "License=Notification"
|
||||
if "%LicenseReason%"=="C004F200" (set "LicenseMsg=Notification Reason: 0xC004F200 (non-genuine)."
|
||||
) else if "%LicenseReason%"=="C004F009" (set "LicenseMsg=Notification Reason: 0xC004F009 (grace time expired)."
|
||||
) else (set "LicenseMsg=Notification Reason: 0x%LicenseReason%"
|
||||
)
|
||||
)
|
||||
if %LicenseStatus% GTR 6 (
|
||||
set "License=Unknown"
|
||||
set "LicenseMsg="
|
||||
)
|
||||
if not defined cKmsClient exit /b
|
||||
|
||||
if %KeyManagementServicePort%==0 set KeyManagementServicePort=1688
|
||||
set "KmsReg=Registered KMS machine name: %KeyManagementServiceMachine%:%KeyManagementServicePort%"
|
||||
if "%KeyManagementServiceMachine%"=="" set "KmsReg=Registered KMS machine name: KMS name not available"
|
||||
|
||||
if %DiscoveredKeyManagementServiceMachinePort%==0 set DiscoveredKeyManagementServiceMachinePort=1688
|
||||
set "KmsDns=KMS machine name from DNS: %DiscoveredKeyManagementServiceMachineName%:%DiscoveredKeyManagementServiceMachinePort%"
|
||||
if "%DiscoveredKeyManagementServiceMachineName%"=="" set "KmsDns=DNS auto-discovery: KMS name not available"
|
||||
|
||||
for /f "tokens=* delims=" %%# in ('"wmic path %~2 get ClientMachineID, KeyManagementServiceHostCaching /value" ^| findstr ^=') do set "%%#"
|
||||
if /i %KeyManagementServiceHostCaching%==True (set KeyManagementServiceHostCaching=Enabled) else (set KeyManagementServiceHostCaching=Disabled)
|
||||
|
||||
if %winbuild% lss 9200 exit /b
|
||||
if %~1 equ %ospp% exit /b
|
||||
|
||||
if "%DiscoveredKeyManagementServiceMachineIpAddress%"=="" set "DiscoveredKeyManagementServiceMachineIpAddress=not available"
|
||||
|
||||
if "%KeyManagementServiceLookupDomain%"=="" set "KeyManagementServiceLookupDomain="
|
||||
|
||||
if %VLActivationTypeEnabled% EQU 3 (
|
||||
set VLActivationType=Token
|
||||
) else if %VLActivationTypeEnabled% EQU 2 (
|
||||
set VLActivationType=KMS
|
||||
) else if %VLActivationTypeEnabled% EQU 1 (
|
||||
set VLActivationType=AD
|
||||
) else (
|
||||
set VLActivationType=All
|
||||
)
|
||||
exit /b
|
||||
|
||||
:casWout
|
||||
echo:
|
||||
echo Name: %Name%
|
||||
echo Description: %Description%
|
||||
echo Activation ID: %ID%
|
||||
echo Extended PID: %ProductKeyID%
|
||||
if defined ProductKeyChannel echo Product Key Channel: %ProductKeyChannel%
|
||||
echo Partial Product Key: %PartialProductKey%
|
||||
echo License Status: %License%
|
||||
if defined LicenseMsg echo %LicenseMsg%
|
||||
if not %LicenseStatus%==0 if not %EvaluationEndDate:~0,8%==16010101 echo Evaluation End Date: %EvaluationEndDate:~0,4%-%EvaluationEndDate:~4,2%-%EvaluationEndDate:~6,2% %EvaluationEndDate:~8,2%:%EvaluationEndDate:~10,2% UTC
|
||||
if not defined cKmsClient (
|
||||
if defined ExpireMsg echo:&echo: %ExpireMsg%
|
||||
exit /b
|
||||
)
|
||||
if defined VLActivationTypeEnabled echo Configured Activation Type: %VLActivationType%
|
||||
echo:
|
||||
if not %LicenseStatus%==1 (
|
||||
echo Please activate the product in order to update KMS client information values.
|
||||
exit /b
|
||||
)
|
||||
echo Most recent activation information:
|
||||
echo Key Management Service client information
|
||||
echo: Client Machine ID (CMID): %ClientMachineID%
|
||||
echo: %KmsDns%
|
||||
echo: %KmsReg%
|
||||
if defined DiscoveredKeyManagementServiceMachineIpAddress echo: KMS machine IP address: %DiscoveredKeyManagementServiceMachineIpAddress%
|
||||
echo: KMS machine extended PID: %KeyManagementServiceProductKeyID%
|
||||
echo: Activation interval: %VLActivationInterval% minutes
|
||||
echo: Renewal interval: %VLRenewalInterval% minutes
|
||||
echo: KMS host caching: %KeyManagementServiceHostCaching%
|
||||
if defined KeyManagementServiceLookupDomain echo: KMS SRV record lookup domain: %KeyManagementServiceLookupDomain%
|
||||
if defined ExpireMsg echo:&echo: %ExpireMsg%
|
||||
exit /b
|
||||
|
||||
:casWend
|
||||
echo:
|
||||
echo Press any key to exit.
|
||||
pause >nul
|
||||
exit /b
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,45 +0,0 @@
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe Virus Total = 0/71
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll Virus Total = 0/68
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe Virus Total = 0/69
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll Virus Total = 0/67
|
||||
48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe Virus Total = 0/68
|
||||
|
||||
Virus Total Report Date: 2020-01-21
|
||||
|
||||
- File Sources:
|
||||
|
||||
- ClipUp.exe (Original):
|
||||
From Windows server 2016 x64 ISO
|
||||
|
||||
- gatherosstate.exe (Original):
|
||||
From Windows 10 x86 14393 ADK
|
||||
|
||||
- ARM64_gatherosstate.exe (Original):
|
||||
From Windows 10 ARM64 18362 ISO
|
||||
|
||||
- ARM64_slc.dll and slc.dll:
|
||||
|
||||
Original slshim
|
||||
https://github.com/vyvojar/slshim
|
||||
|
||||
Improved by @mspaintmsi
|
||||
https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://github.com/massgravel/MASSGRAVE
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
Source code is included.
|
||||
slc.dll is based on Integrated_Patcher_2 method.
|
||||
It is currently in use in HWID/KMS38 Activation script.
|
||||
|
||||
____________________________________________________________________________________________________
|
||||
|
||||
You can safely delete the following files if it's not required for you.
|
||||
|
||||
ClipUp.exe - Required to KMS38 activate Server Cor and Acor editions.
|
||||
ARM64_gatherosstate.exe and ARM64_slc.dll - Required to activate ARM64 Arch Windows 10.
|
||||
|
||||
====================================================================================================
|
Binary file not shown.
Binary file not shown.
@ -1,765 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
:: For unattended mode, run the script with /u parameter.
|
||||
|
||||
|
||||
|
||||
::=========================================================================================================
|
||||
: Credits:
|
||||
::=========================================================================================================
|
||||
::
|
||||
:: @mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade.
|
||||
:: and Created various methods for HWID/KMS38 Activation
|
||||
:: *Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
:: https://github.com/massgravel/MASSGRAVE
|
||||
:: https://gitlab.com/massgrave/massgrave
|
||||
::
|
||||
:: @vyvojar Original slshim (slc.dll)
|
||||
:: https://github.com/vyvojar/slshim/releases
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: HWID/KMS38 methods Suggestions and improvements:-
|
||||
::
|
||||
:: @sponpa New ideas for the HWID/KM38 Generation
|
||||
:: https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257
|
||||
::
|
||||
:: @leitek8 Improvements for the slc.dll
|
||||
:: https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: Kind Help:-
|
||||
::
|
||||
:: Thanks for having my back and answering all of my queries. (In no particular order)
|
||||
::
|
||||
:: @AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
::
|
||||
:: @BorrowedWifi for providing support in fixing English grammar errors in the Read Me.
|
||||
:: @Chibi ANUBIS and @smashed for testing scripts for ARM64 system.
|
||||
::
|
||||
:: Special thanks to @abbodi1406 for providing the great help.
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only
|
||||
:: manage batch script tool which is based on the above mentioned original co-authors activation methods.
|
||||
::
|
||||
::=========================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
title [HWID] Digital License Activation
|
||||
set Unattended=
|
||||
set _args=
|
||||
set _elev=
|
||||
set "_arg1=%~1"
|
||||
if not defined _arg1 goto :DL_NoProgArgs
|
||||
set "_args=%~1"
|
||||
set "_arg2=%~2"
|
||||
if defined _arg2 set "_args=%~1 %~2"
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
if /i "%%A"=="/u" set Unattended=1)
|
||||
:DL_NoProgArgs
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "Red="white" "DarkRed""
|
||||
set "Green="white" "DarkGreen""
|
||||
set "Magenta="white" "darkmagenta""
|
||||
set "Gray="white" "darkgray""
|
||||
set "Black="white" "Black""
|
||||
set "ELine=echo: &call :DL_color "==== ERROR ====" %Red% &echo:"
|
||||
set slp=SoftwareLicensingProduct
|
||||
set sls=SoftwareLicensingService
|
||||
set wApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 10240 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 10.
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :DL_Passed
|
||||
) || (
|
||||
if defined _elev goto :DL_E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
if defined _args set _PSarg="""%~f0""" -el """%_args%"""
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :DL_E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:DL_E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto DL_Done
|
||||
|
||||
:DL_Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
:: Written by @abbodi1406
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode con: cols=102 lines=31
|
||||
|
||||
:: Check Windows OS name
|
||||
|
||||
set winos=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
|
||||
call :DL_CheckPermAct
|
||||
if defined PermAct (
|
||||
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
call :DL_color1 " " %Black% &call :DL_color "Checking: %winos% is Permanently Activated." %Green%
|
||||
call :DL_color1 " " %Black% &call :DL_color "Activation is not required." %Gray%
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
if defined Unattended goto DL_Done
|
||||
|
||||
echo Press [1] or [2] button in Keyboard :
|
||||
echo ___________________________________________
|
||||
echo:
|
||||
choice /C:12 /N /M "> [1] Activate [2] Exit : "
|
||||
|
||||
if errorlevel 2 exit /b
|
||||
if errorlevel 1 Goto DL_Continue
|
||||
)
|
||||
|
||||
:DL_Continue
|
||||
cls
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cd /d "!_work!"
|
||||
pushd "!_work!"
|
||||
|
||||
if not exist "!_work!\BIN\" (
|
||||
%ELine%
|
||||
echo 'BIN' Folder does not exist in current directory.
|
||||
echo It's supposed to have files required for the Activation.
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo %winos%| findstr /I Evaluation >nul && set Eval=1||set Eval=
|
||||
if defined Eval (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild%] HWID Activation is Not Supported.
|
||||
echo %winos%| findstr /I Server >nul && (
|
||||
echo Server Evaluation cannot be activated. Convert it to full Server OS.
|
||||
) || (
|
||||
echo Evaluation Editions cannot be activated. Install full Windows OS.
|
||||
)
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check SKU value
|
||||
|
||||
set SKU=
|
||||
for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
|
||||
if "%osSKU%"=="" (
|
||||
%ELine%
|
||||
echo SKU value was not detected properly. Aborting...
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
set osedition=
|
||||
call :_CheckEdition %nul%
|
||||
|
||||
if "%osedition%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild% ^| SKU:%osSKU%] HWID Activation is Not Supported.
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
:: Check Windows Architecture
|
||||
|
||||
set arch=
|
||||
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > nul && set arch=x86|| set arch=x64
|
||||
wmic os get osarchitecture | find /i "ARM" > nul && set arch=ARM64|| echo %PROCESSOR_ARCHITECTURE% | find /i "ARM" > nul && set arch=ARM64
|
||||
|
||||
if "%arch%"=="ARM64" call :DL_check ARM64_gatherosstate.exe ARM64_slc.dll
|
||||
if not "%arch%"=="ARM64" call :DL_check gatherosstate.exe slc.dll
|
||||
if defined _miss goto DL_Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
set key=
|
||||
call :%osedition% %nul%
|
||||
|
||||
if "%key%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild%] HWID Activation is Not Supported.
|
||||
goto DL_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
echo Checking OS Info [%winos% ^| %winbuild% ^| %arch%]
|
||||
|
||||
set "Chkint=Checking Internet Connection "
|
||||
set IntCon=
|
||||
ping -n 1 www.microsoft.com %nul% && (
|
||||
set IntCon=1
|
||||
echo %Chkint% [Connected]
|
||||
) || (
|
||||
call :DL_color "%Chkint% [Not connected] [Ping www.microsoft.com - Failed]" %Red%
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo:
|
||||
set _1=ClipSVC
|
||||
set _2=wlidsvc
|
||||
set _3=sppsvc
|
||||
set _4=wuauserv
|
||||
|
||||
for %%# in (%_1% %_2% %_3% %_4%) do call :DL_ServiceCheck %%#
|
||||
|
||||
set "CLecho=Checking %_1% [Service Status -%Cl_state%] [Startup Type -%Cl_start_type%]"
|
||||
set "wlecho=Checking %_2% [Service Status -%wl_state%] [Startup Type -%wl_start_type%]"
|
||||
set "specho=Checking %_3% [Service Status -%sp_state%] [Startup Type -%sp_start_type%]"
|
||||
set "wuecho=Checking %_4% [Service Status -%wu_state%] [Startup Type -%wu_start_type%]"
|
||||
|
||||
if not "%Cl_start_type%"=="Demand" (call :DL_color "%CLecho%" %Red% & set Clst_e=1) else (echo %CLecho%)
|
||||
if not "%wl_start_type%"=="Demand" (call :DL_color "%wlecho%" %Red% & set wlst_e=1) else (echo %wlecho%)
|
||||
if not "%sp_start_type%"=="Delayed-Auto" (call :DL_color "%specho%" %Red% & set spst_e=1) else (echo %specho%)
|
||||
|
||||
if "%wu_start_type%"=="Disabled" (set "_C=%Red%") else (set "_C=%Gray%")
|
||||
if not "%wu_start_type%"=="Auto" (call :DL_color "%wuecho%" %_C% & set wust_e=1) else (echo %wuecho%)
|
||||
|
||||
echo:
|
||||
if defined Clst_e (sc config %_1% start= Demand %nul% && set Clst_s=%_1%-Demand || set Clst_u=%_1%-Demand )
|
||||
if defined wlst_e (sc config %_2% start= Demand %nul% && set wlst_s=%_2%-Demand || set wlst_u=%_2%-Demand )
|
||||
if defined spst_e (sc config %_3% start= Delayed-Auto %nul% && set spst_s=%_3%-Delayed-Auto || set spst_u=%_3%-Delayed-Auto )
|
||||
if defined wust_e (sc config %_4% start= Auto %nul% && set wust_s=%_4%-Auto || set wust_u=%_4%-Auto )
|
||||
|
||||
for %%# in (Clst_s,wlst_s,spst_s,wust_s) do if defined %%# set st_s=1
|
||||
if defined st_s (echo Changing services Startup Type to [ %Clst_s%%wlst_s%%spst_s%%wust_s%] [Successful])
|
||||
|
||||
for %%# in (Clst_u,wlst_u,spst_u,wust_u) do if defined %%# set st_u=1
|
||||
if defined st_u (call :DL_color "Error in changing Startup Type to [ %Clst_u%%wlst_u%%spst_u%%wust_u%]" %Red%)
|
||||
|
||||
if not "%Cl_state%"=="Running" (%_psc% start-service %_1% %nul% && set Cl_s=%_1% || set Cl_u=%_1% )
|
||||
if not "%wl_state%"=="Running" (%_psc% start-service %_2% %nul% && set wl_s=%_2% || set wl_u=%_2% )
|
||||
if not "%sp_state%"=="Running" (%_psc% start-service %_3% %nul% && set sp_s=%_3% || set sp_u=%_3% )
|
||||
if not "%wu_state%"=="Running" (%_psc% start-service %_4% %nul% && set wu_s=%_4% || set wu_u=%_4% )
|
||||
|
||||
for %%# in (Cl_s,wl_s,sp_s,wu_s) do if defined %%# set s_s=1
|
||||
if defined s_s (echo Starting services [ %Cl_s%%wl_s%%sp_s%%wu_s%] [Successful])
|
||||
|
||||
for %%# in (Cl_u,wl_u,sp_u,wu_u) do if defined %%# set s_u=1
|
||||
if defined s_u (call :DL_color "Error in starting services [ %Cl_u%%wl_u%%sp_u%%wu_u%]" %Red%)
|
||||
|
||||
if defined wust_u (
|
||||
call :DL_color "Most likely the Windows Update Service was blocked with a tool, identify and unblock it." %Magenta%
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Thanks to @abbodi1406 for the WMI methods
|
||||
|
||||
echo:
|
||||
set _channel=
|
||||
set _Keyexist=
|
||||
set _partial=
|
||||
|
||||
for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#"
|
||||
for %%A in (MAK, OEM, Retail) do echo %_channel%| findstr /i %%A >nul && set _Keyexist=1
|
||||
|
||||
if defined _Keyexist (
|
||||
for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get PartialProductKey /value 2^>nul') do set "_partial=%%#"
|
||||
call echo Checking Installed Product Key [%_channel%] [Partial Key -%%_partial%%]
|
||||
)
|
||||
|
||||
if not defined _Keyexist (
|
||||
set "InsKey=Installing Generic Product Key "
|
||||
wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="%key%" %nul% && (
|
||||
for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#"
|
||||
call echo %%InsKey%% [%key%] [%%_channel%%] [Successful]
|
||||
) || (
|
||||
call :DL_color "%%InsKey%% [%key%] [Unsuccessful]" %Red%
|
||||
)
|
||||
)
|
||||
|
||||
wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Files are copied to temp to generate ticket to avoid possible issues in case the path contains special character or non English names.
|
||||
|
||||
echo:
|
||||
set "temp_=%SystemRoot%\Temp\_Ticket_Work"
|
||||
if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul%
|
||||
md "%temp_%\" %nul%
|
||||
|
||||
cd /d "!_work!\BIN\"
|
||||
|
||||
set ARM64_file=
|
||||
if "%arch%"=="ARM64" set ARM64_file=ARM64_
|
||||
|
||||
copy /y /b "%ARM64_file%gatherosstate.exe" "%temp_%\gatherosstate.exe" %nul%
|
||||
copy /y /b "%ARM64_file%slc.dll" "%temp_%\slc.dll" %nul%
|
||||
|
||||
set cfailed=
|
||||
if not exist "%temp_%\gatherosstate.exe" set cfailed=1
|
||||
if not exist "%temp_%\slc.dll" set cfailed=1
|
||||
|
||||
set "copyfiles=Copying Required Files to Temp "
|
||||
if defined cfailed (
|
||||
call :DL_color "%copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Unsuccessful] Aborting..." %Red%
|
||||
goto :DL_Act_Cont
|
||||
) else (
|
||||
echo %copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Successful]
|
||||
)
|
||||
|
||||
cd /d "%temp_%\"
|
||||
attrib -R -A -S -H *.*
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set "GatherMod=Creating modified gatherosstate "
|
||||
|
||||
if not "%arch%"=="ARM64" (
|
||||
rundll32 "%temp_%\slc.dll",PatchGatherosstate %nul%
|
||||
if not exist "%temp_%\gatherosstatemodified.exe" (
|
||||
call :DL_color "%GatherMod% [Unsuccessful] Aborting" %Red%
|
||||
call :DL_color "Most likely Antivirus program blocked the process, disable it and-or create proper exclsuions." %Magenta%
|
||||
goto :DL_Act_Cont
|
||||
) else (
|
||||
echo %GatherMod% [Successful]
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set _gather=
|
||||
if "%arch%"=="ARM64" (
|
||||
set _gather=gatherosstate.exe
|
||||
) else (
|
||||
set _gather=gatherosstatemodified.exe
|
||||
)
|
||||
|
||||
:: Multiple attempts to generate the ticket because in some cases, one attempt is not enough.
|
||||
|
||||
set "_noxml=if not exist "%temp_%\GenuineTicket.xml""
|
||||
|
||||
start /wait "" "%temp_%/%_gather%" %nul%
|
||||
%_noxml% timeout /t 3 %nul%
|
||||
%_noxml% call "%temp_%/%_gather%" %nul%
|
||||
%_noxml% timeout /t 3 %nul%
|
||||
%_noxml% "%temp_%/%_gather%" %nul%
|
||||
%_noxml% timeout /t 3 %nul%
|
||||
|
||||
set "GenTicket=Generating GenuineTicket.xml "
|
||||
%_noxml% (
|
||||
call :DL_color "%GenTicket% [Unsuccessful] Aborting..." %Red%
|
||||
goto :DL_Act_Cont
|
||||
) else (
|
||||
echo %GenTicket% [Successful]
|
||||
)
|
||||
|
||||
:: clipup -v -o -altto <Ticket path> method to apply ticket was not used to avoid the certain issues in case the username have spaces or non English names.
|
||||
|
||||
set "InsTicket=Installing GenuineTicket.xml "
|
||||
set "TDir=%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket"
|
||||
if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul%
|
||||
copy /y /b "%temp_%\GenuineTicket.xml" "%TDir%\GenuineTicket.xml" %nul%
|
||||
|
||||
if not exist "%TDir%\GenuineTicket.xml" (
|
||||
call :DL_color "Failed to copy Ticket to [%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket\] Aborting..." %Red%
|
||||
goto :DL_Act_Cont
|
||||
)
|
||||
|
||||
set "_xmlexist=if exist "%TDir%\GenuineTicket.xml""
|
||||
|
||||
%_psc% Restart-Service ClipSVC %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
|
||||
%_xmlexist% (
|
||||
%_psc% stop-Service ClipSVC %nul%
|
||||
%_psc% start-Service ClipSVC %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
)
|
||||
|
||||
set fallback_=
|
||||
%_xmlexist% (
|
||||
set fallback_=1
|
||||
%nul% clipup -v -o
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
)
|
||||
|
||||
%_xmlexist% (
|
||||
call :DL_color "%InsTicket% [Unsuccessful] Aborting..." %Red%
|
||||
if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul%
|
||||
goto :DL_Act_Cont
|
||||
) else (
|
||||
if not defined fallback_ echo %InsTicket% [Successful]
|
||||
if defined fallback_ call :DL_color "%InsTicket% [Successful] [Fallback method: clipup -v -o]" %Red%
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo:
|
||||
echo Activating...
|
||||
echo:
|
||||
|
||||
wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" call Activate %nul%
|
||||
call :DL_CheckPermAct
|
||||
if defined PermAct goto DL_Act_successful
|
||||
|
||||
call :DL_ReTry
|
||||
if not "%ErrCode%"=="" set "Error_Code_=[Error Code %ErrCode%]"
|
||||
call :DL_CheckPermAct
|
||||
|
||||
:DL_Act_successful
|
||||
|
||||
if defined PermAct (
|
||||
call :DL_color "%winos% is permanently activated." %Green%
|
||||
goto :DL_Act_Cont
|
||||
)
|
||||
|
||||
call :DL_color "Activation Failed %Error_Code_%" %Red%
|
||||
call :DL_color "Try the Troubleshoot Guide listed in the ReadMe." %Magenta%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_Act_Cont
|
||||
|
||||
echo:
|
||||
set "changing_wust_back=Changing wu Startup Type back to [%wu_start_type%]"
|
||||
if defined wust_s (
|
||||
sc config %_4% start= %wu_start_type% %nul% && echo %changing_wust_back% [Successful]
|
||||
) || (
|
||||
call :DL_color "%changing_wust_back% [Unsuccessful]" %Red%
|
||||
)
|
||||
|
||||
cd /d "!_work!\"
|
||||
if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul%
|
||||
set "delFiles=Cleaning Temp Files "
|
||||
if exist "%temp_%\" (
|
||||
call :DL_color "%delFiles% [Unsuccessful]" %Red%
|
||||
) else (
|
||||
echo %delFiles% [Successful]
|
||||
)
|
||||
|
||||
goto DL_Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Echo all the missing files.
|
||||
:: Written by @abbodi1406 (MDL)
|
||||
|
||||
:DL_check
|
||||
|
||||
for %%# in (%1 %2) do (if not exist "!_work!\BIN\%%#" (if defined _miss (set "_miss=!_miss! %%#") else (set "_miss=%%#")))
|
||||
if defined _miss (
|
||||
%ELine%
|
||||
echo Following required file^(s^) is missing in 'BIN' folder. Aborting...
|
||||
echo:
|
||||
echo !_miss!
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_ServiceCheck
|
||||
|
||||
:: Detect Service status and start type
|
||||
:: Written by @RPO
|
||||
|
||||
for /f "tokens=1,3 delims=: " %%a in ('sc query %1') do (if /i %%a==state set "state=%%b")
|
||||
for /f "tokens=1-4 delims=: " %%a in ('sc qc %1') do (if /i %%a==start_type set "start_type=%%c %%d")
|
||||
|
||||
if /i "%state%"=="STOPPED" set state=Stopped
|
||||
if /i "%state%"=="RUNNING" set state=Running
|
||||
|
||||
if /i "%start_type%"=="auto_start (delayed)" set start_type=Delayed-Auto
|
||||
if /i "%start_type%"=="auto_start " set start_type=Auto
|
||||
if /i "%start_type%"=="demand_start " set start_type=Demand
|
||||
if /i "%start_type%"=="disabled " set start_type=Disabled
|
||||
|
||||
for %%i in (%*) do (
|
||||
if /i "%%i"=="%_4%" set "wu_start_type=%start_type%" & set "wu_state=%state%"
|
||||
if /i "%%i"=="%_3%" set "sp_start_type=%start_type%" & set "sp_state=%state%"
|
||||
if /i "%%i"=="%_1%" set "Cl_start_type=%start_type%" & set "Cl_state=%state%"
|
||||
if /i "%%i"=="%_2%" set "wl_start_type=%start_type%" & set "wl_state=%state%"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_CheckPermAct
|
||||
|
||||
:: Check Windows Permanent Activation status
|
||||
:: Written by @abbodi1406
|
||||
|
||||
wmic path %slp% where (LicenseStatus='1' and GracePeriodRemaining='0' and PartialProductKey is not NULL) get Name 2>nul | findstr /i "Windows" 1>nul && set PermAct=1||set PermAct=
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_ReTry
|
||||
|
||||
if defined IntCon if not defined wust_u if not defined wu_u call :DL_ReTry_2
|
||||
|
||||
:: Detect Error Code in the Activation
|
||||
:: Written by @abbodi1406
|
||||
|
||||
wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" call Activate %nul%
|
||||
set errorcode=%errorlevel%
|
||||
cmd /c exit /b %errorcode%
|
||||
if %errorcode% NEQ 0 set "ErrCode=0x%=ExitCode%"
|
||||
exit /b
|
||||
|
||||
:DL_ReTry_2
|
||||
|
||||
set app=
|
||||
%_psc% Restart-Service sppsvc %nul%
|
||||
|
||||
:: Specific rearm - reset the licensing status of the Windows SKU and app, without the need to restart the system.
|
||||
:: wmic method by @abbodi1406
|
||||
|
||||
for /f "tokens=2 delims==" %%G in ('"wmic path %slp% where (ApplicationID='%wApp%' AND ProductKeyID like '%%-%%') get ID /value" 2^>nul') do (set app=%%G)
|
||||
wmic path %sls% where __CLASS='%sls%' call ReArmApp ApplicationId="%wApp%" %nul%
|
||||
wmic path %slp% where ID='%app%' call ReArmsku %nul%
|
||||
|
||||
wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
cscript /nologo %windir%\system32\slmgr.vbs -ato %nul%
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_color
|
||||
|
||||
%_psc% write-host '%1' -fore '%2' -back '%3'
|
||||
exit /b
|
||||
|
||||
:DL_color1
|
||||
|
||||
%_psc% write-host '%1' -fore '%2' -back '%3' -NoNewline
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:DL_Done
|
||||
|
||||
echo:
|
||||
if defined Unattended (
|
||||
echo Exiting in 3 seconds...
|
||||
if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3)
|
||||
:: set a value to use in certain conditions of setupcomplete.cmd file.
|
||||
if defined key if not defined PermAct (endlocal & endlocal & set HWIDAct=1)
|
||||
exit /b
|
||||
)
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
:_CheckEdition
|
||||
|
||||
for %%# in (
|
||||
4-Enterprise
|
||||
27-EnterpriseN
|
||||
48-Professional
|
||||
49-ProfessionalN
|
||||
98-CoreN
|
||||
99-CoreCountrySpecific
|
||||
100-CoreSingleLanguage
|
||||
101-Core
|
||||
121-Education
|
||||
122-EducationN
|
||||
125-EnterpriseS
|
||||
126-EnterpriseSN
|
||||
161-ProfessionalWorkstation
|
||||
162-ProfessionalWorkstationN
|
||||
164-ProfessionalEducation
|
||||
165-ProfessionalEducationN
|
||||
175-ServerRdsh
|
||||
188-IoTEnterprise
|
||||
) do for /f "tokens=1,2 delims=-" %%A in ("%%#") do (
|
||||
if %osSKU%==%%A set "osedition=%%B"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Retail_OEM Key List
|
||||
|
||||
:Core
|
||||
set "key=YTMG3-N6DKC-DKB77-7M9GH-8HVX7"
|
||||
exit /b
|
||||
|
||||
:CoreCountrySpecific
|
||||
set "key=N2434-X9D7W-8PF6X-8DV9T-8TYMD"
|
||||
exit /b
|
||||
|
||||
:CoreN
|
||||
set "key=4CPRK-NM3K3-X6XXQ-RXX86-WXCHW"
|
||||
exit /b
|
||||
|
||||
:CoreSingleLanguage
|
||||
set "key=BT79Q-G7N6G-PGBYW-4YWX6-6F4BT"
|
||||
exit /b
|
||||
|
||||
:Education
|
||||
set "key=YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY"
|
||||
exit /b
|
||||
|
||||
:EducationN
|
||||
set "key=84NGF-MHBT6-FXBX8-QWJK7-DRR8H"
|
||||
exit /b
|
||||
|
||||
:Enterprise
|
||||
set "key=XGVPP-NMH47-7TTHJ-W3FW7-8HV2C"
|
||||
exit /b
|
||||
|
||||
:EnterpriseN
|
||||
set "key=3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT"
|
||||
exit /b
|
||||
|
||||
:EnterpriseS
|
||||
if "%winbuild%" EQU "10240" set "key=FWN7H-PF93Q-4GGP8-M8RF3-MDWWW"
|
||||
if "%winbuild%" EQU "14393" set "key=NK96Y-D9CD8-W44CQ-R8YTK-DYJWX"
|
||||
if "%winbuild%" EQU "17763" set "key=43TBQ-NH92J-XKTM7-KT3KK-P39PB"
|
||||
exit /b
|
||||
|
||||
:EnterpriseSN
|
||||
if "%winbuild%" EQU "10240" set "key=8V8WN-3GXBH-2TCMG-XHRX3-9766K"
|
||||
if "%winbuild%" EQU "14393" set "key=2DBW3-N2PJG-MVHW3-G7TDK-9HKR4"
|
||||
if "%winbuild%" EQU "17763" set "key=M33WV-NHY3C-R7FPM-BQGPT-239PG"
|
||||
exit /b
|
||||
|
||||
:Professional
|
||||
set "key=VK7JG-NPHTM-C97JM-9MPGT-3V66T"
|
||||
exit /b
|
||||
|
||||
:ProfessionalEducation
|
||||
set "key=8PTT6-RNW4C-6V7J2-C2D3X-MHBPB"
|
||||
exit /b
|
||||
|
||||
:ProfessionalEducationN
|
||||
set "key=GJTYN-HDMQY-FRR76-HVGC7-QPF8P"
|
||||
exit /b
|
||||
|
||||
:ProfessionalN
|
||||
set "key=2B87N-8KFHP-DKV6R-Y2C8J-PKCKT"
|
||||
exit /b
|
||||
|
||||
:ProfessionalWorkstation
|
||||
set "key=DXG7C-N36C4-C4HTG-X4T3X-2YV77"
|
||||
exit /b
|
||||
|
||||
:ProfessionalWorkstationN
|
||||
set "key=WYPNQ-8C467-V2W6J-TX4WX-WT2RQ"
|
||||
exit /b
|
||||
|
||||
:ServerRdsh
|
||||
set "key=NJCF7-PW8QT-3324D-688JX-2YV66"
|
||||
exit /b
|
||||
|
||||
:IoTEnterprise
|
||||
set "key=XQQYW-NFFMW-XJPBH-K8732-CKFFD"
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,885 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
:: For unattended mode, run the script with /u parameter.
|
||||
|
||||
|
||||
|
||||
::=========================================================================================================
|
||||
: Credits:
|
||||
::=========================================================================================================
|
||||
::
|
||||
:: @mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade.
|
||||
:: and Created various methods for HWID/KMS38 Activation
|
||||
:: *Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
:: https://github.com/massgravel/MASSGRAVE
|
||||
:: https://gitlab.com/massgrave/massgrave
|
||||
::
|
||||
:: @vyvojar Original slshim (slc.dll)
|
||||
:: https://github.com/vyvojar/slshim/releases
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: HWID/KMS38 methods Suggestions and improvements:-
|
||||
::
|
||||
:: @sponpa New ideas for the HWID/KM38 Generation
|
||||
:: https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257
|
||||
::
|
||||
:: @leitek8 Improvements for the slc.dll
|
||||
:: https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: Kind Help:-
|
||||
::
|
||||
:: Thanks for having my back and answering all of my queries. (In no particular order)
|
||||
::
|
||||
:: @AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
::
|
||||
:: @BorrowedWifi for providing support in fixing English grammar errors in the Read Me.
|
||||
:: @Chibi ANUBIS and @smashed for testing scripts for ARM64 system.
|
||||
::
|
||||
:: Special thanks to @abbodi1406 for providing the great help.
|
||||
::
|
||||
::---------------------------------------------------------------------------------------------------------
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only
|
||||
:: manage batch script tool which is based on the above mentioned original co-authors activation methods.
|
||||
::
|
||||
::=========================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
title KMS38 Activation
|
||||
set Unattended=
|
||||
set _args=
|
||||
set _elev=
|
||||
set "_arg1=%~1"
|
||||
if not defined _arg1 goto :K38_NoProgArgs
|
||||
set "_args=%~1"
|
||||
set "_arg2=%~2"
|
||||
if defined _arg2 set "_args=%~1 %~2"
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
if /i "%%A"=="/u" set Unattended=1)
|
||||
:K38_NoProgArgs
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "Red="white" "DarkRed""
|
||||
set "Green="white" "DarkGreen""
|
||||
set "Magenta="white" "darkmagenta""
|
||||
set "Gray="white" "darkgray""
|
||||
set "Black="white" "Black""
|
||||
set "ELine=echo: &call :K38_color "==== ERROR ====" %Red% &echo:"
|
||||
set slp=SoftwareLicensingProduct
|
||||
set sls=SoftwareLicensingService
|
||||
set wApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 14393 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 10 / Server - 1607 [14393] and later builds.
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :K38_Passed
|
||||
) || (
|
||||
if defined _elev goto :K38_E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
if defined _args set _PSarg="""%~f0""" -el """%_args%"""
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :K38_E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:K38_E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto K38_Done
|
||||
|
||||
:K38_Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
:: Written by @abbodi1406
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode con: cols=102 lines=30
|
||||
|
||||
:: Check Windows OS name
|
||||
|
||||
set winos=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
|
||||
call :K38_CheckPermAct
|
||||
if defined PermAct (
|
||||
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
call :K38_color1 " " %Black% &call :K38_color "Checking: %winos% is Permanently Activated." %Green%
|
||||
call :K38_color1 " " %Black% &call :K38_color "Activation is not required." %Gray%
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
if defined Unattended goto K38_Done
|
||||
|
||||
echo Press [1] or [2] button in Keyboard :
|
||||
echo ___________________________________________
|
||||
echo:
|
||||
choice /C:12 /N /M "> [1] Activate [2] Exit : "
|
||||
|
||||
if errorlevel 2 exit /b
|
||||
if errorlevel 1 Goto K38_Continue
|
||||
)
|
||||
|
||||
:K38_Continue
|
||||
cls
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cd /d "!_work!"
|
||||
pushd "!_work!"
|
||||
|
||||
if not exist "!_work!\BIN\" (
|
||||
%ELine%
|
||||
echo 'BIN' Folder does not exist in current directory.
|
||||
echo It's supposed to have files required for the Activation.
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo %winos%| findstr /I Evaluation >nul && set Eval=1||set Eval=
|
||||
if defined Eval (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild%] KMS38 Activation is Not Supported.
|
||||
echo %winos%| findstr /I Server >nul && (
|
||||
echo Server Evaluation cannot be activated. Convert it to full Server OS.
|
||||
) || (
|
||||
echo Evaluation Editions cannot be activated. Install full Windows OS.
|
||||
)
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check SKU value
|
||||
|
||||
set SKU=
|
||||
for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
|
||||
if "%osSKU%"=="" (
|
||||
%ELine%
|
||||
echo SKU value was not detected properly. Aborting...
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
set osedition=
|
||||
call :K38_CheckEdition %nul%
|
||||
|
||||
if "%osedition%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild% ^| SKU:%osSKU%] KMS38 Activation is Not Supported.
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
:: Check Activation ID
|
||||
|
||||
set app=
|
||||
for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%' and LicenseFamily='%osedition%' and Description like '%%KMSCLIENT%%') get ID /VALUE" 2^>nul') do set "app=%%a"
|
||||
|
||||
:: Check Windows Architecture
|
||||
|
||||
set arch=
|
||||
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > nul && set arch=x86|| set arch=x64
|
||||
wmic os get osarchitecture | find /i "ARM" > nul && set arch=ARM64|| echo %PROCESSOR_ARCHITECTURE% | find /i "ARM" > nul && set arch=ARM64
|
||||
|
||||
if "%arch%"=="ARM64" call :K38_check ARM64_gatherosstate.exe ARM64_slc.dll
|
||||
if not "%arch%"=="ARM64" call :K38_check gatherosstate.exe slc.dll
|
||||
if defined _miss goto K38_Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
if "%app%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild%] KMS38 Activation is Not Supported.
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
set key=
|
||||
call :%app% %nul%
|
||||
|
||||
if "%key%"=="" (
|
||||
%ELine%
|
||||
echo [%winos% ^| %winbuild% ^| %app%] KMS38 Activation is Not Supported.
|
||||
goto K38_Done
|
||||
)
|
||||
|
||||
:: clipup.exe does not exist in server cor and acor editions.
|
||||
|
||||
set A_Cor=
|
||||
echo %osedition%| findstr /I /B Server >nul && if not exist "%systemroot%\System32\clipup.exe" set A_Cor=1
|
||||
|
||||
if defined A_Cor (
|
||||
call :K38_check clipup.exe
|
||||
if defined _miss goto K38_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
echo Checking OS Info [%winos% ^| %winbuild% ^| %arch%]
|
||||
|
||||
echo:
|
||||
set _1=ClipSVC
|
||||
set _3=sppsvc
|
||||
|
||||
for %%# in (%_1% %_3%) do call :K38_ServiceCheck %%#
|
||||
|
||||
set "CLecho=Checking %_1% [Service Status -%Cl_state%] [Startup Type -%Cl_start_type%]"
|
||||
set "specho=Checking %_3% [Service Status -%sp_state%] [Startup Type -%sp_start_type%]"
|
||||
|
||||
if not "%Cl_start_type%"=="Demand" (call :K38_color "%CLecho%" %Red% & set Clst_e=1) else (echo %CLecho%)
|
||||
if not "%sp_start_type%"=="Delayed-Auto" (call :K38_color "%specho%" %Red% & set spst_e=1) else (echo %specho%)
|
||||
|
||||
echo:
|
||||
if defined Clst_e (sc config %_1% start= Demand %nul% && set Clst_s=%_1%-Demand || set Clst_u=%_1%-Demand )
|
||||
if defined spst_e (sc config %_3% start= Delayed-Auto %nul% && set spst_s=%_3%-Delayed-Auto || set spst_u=%_3%-Delayed-Auto )
|
||||
|
||||
for %%# in (Clst_s,spst_s) do if defined %%# set st_s=1
|
||||
if defined st_s (echo Changing services Startup Type to [ %Clst_s%%spst_s%] [Successful])
|
||||
|
||||
for %%# in (Clst_u,spst_u) do if defined %%# set st_u=1
|
||||
if defined st_u (call :K38_color "Error in changing Startup Type to [ %Clst_u%%spst_u%]" %Red%)
|
||||
|
||||
if not "%Cl_state%"=="Running" (%_psc% start-service %_1% %nul% && set Cl_s=%_1% || set Cl_u=%_1% )
|
||||
if not "%sp_state%"=="Running" (%_psc% start-service %_3% %nul% && set sp_s=%_3% || set sp_u=%_3% )
|
||||
|
||||
for %%# in (Cl_s,sp_s) do if defined %%# set s_s=1
|
||||
if defined s_s (echo Starting services [ %Cl_s%%sp_s%] [Successful])
|
||||
|
||||
for %%# in (Cl_u,sp_u) do if defined %%# set s_u=1
|
||||
if defined s_u (call :K38_color "Error in starting services [ %Cl_u%%sp_u%]" %Red%)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Thanks to @abbodi1406 for the WMI methods
|
||||
|
||||
echo:
|
||||
set _channel=
|
||||
set _Keyexist=
|
||||
set _partial=
|
||||
|
||||
wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel 2>nul | findstr /i GVLK 1>nul && (set _Keyexist=1)
|
||||
|
||||
if defined _Keyexist (
|
||||
for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get PartialProductKey /value 2^>nul') do set "_partial=%%#"
|
||||
call echo Checking Installed Product Key [Volume:GVLK] [Partial Key -%%_partial%%]
|
||||
)
|
||||
|
||||
if not defined _Keyexist (
|
||||
set "InsKey=Installing KMS Client Setup Key "
|
||||
wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="%key%" %nul% && (
|
||||
call echo %%InsKey%% [%key%] [Successful]
|
||||
) || (
|
||||
call :K38_color "%%InsKey%% [%key%] [Unsuccessful]" %Red%
|
||||
)
|
||||
)
|
||||
|
||||
wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Set specific KMS host to Local Host
|
||||
:: Thanks to @abbodi1406
|
||||
|
||||
:: By doing this, global KMS IP can not replace KMS38 activation but can be used with Office and other Windows Editions.
|
||||
|
||||
echo:
|
||||
set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
|
||||
reg delete "HKLM\%SPPk%\%wApp%" /f %nul%
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul%
|
||||
|
||||
set setkms_error=
|
||||
set "setkms_=Setting Specific KMS Host to "
|
||||
|
||||
wmic path %slp% where ID='%app%' call ClearKeyManagementServiceMachine %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call ClearKeyManagementServicePort %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call SetKeyManagementServiceMachine MachineName="127.0.0.2" %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call SetKeyManagementServicePort 1688 %nul% || (set setkms_error=1)
|
||||
|
||||
if not defined setkms_error (
|
||||
echo %setkms_% [LocalHost 127.0.0.2] [Successful]
|
||||
) else (
|
||||
call :K38_color "%setkms_% [LocalHost 127.0.0.2] [Unsuccessful]" %Red%
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Files are copied to temp to generate ticket to avoid possible issues in case the path contains special character or non English names.
|
||||
|
||||
echo:
|
||||
set "temp_=%SystemRoot%\Temp\_Ticket_Work"
|
||||
if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul%
|
||||
md "%temp_%\" %nul%
|
||||
|
||||
cd /d "!_work!\BIN\"
|
||||
|
||||
set ARM64_file=
|
||||
if "%arch%"=="ARM64" set ARM64_file=ARM64_
|
||||
|
||||
set "A_Cor_cl=%systemroot%\System32\clipup.exe"
|
||||
copy /y /b "%ARM64_file%gatherosstate.exe" "%temp_%\gatherosstate.exe" %nul%
|
||||
copy /y /b "%ARM64_file%slc.dll" "%temp_%\slc.dll" %nul%
|
||||
if defined A_Cor (copy /y /b "ClipUp.exe" "%A_Cor_cl%" %nul%)
|
||||
|
||||
set cfailed=
|
||||
if not exist "%temp_%\gatherosstate.exe" set cfailed=1
|
||||
if not exist "%temp_%\slc.dll" set cfailed=1
|
||||
|
||||
set "copyfiles=Copying Required Files to Temp "
|
||||
set "copyclipup=Copying clipup.exe File to "
|
||||
|
||||
if defined cfailed (
|
||||
call :K38_color "%copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Unsuccessful] Aborting..." %Red%
|
||||
goto K38_Act_Cont
|
||||
) else (
|
||||
echo %copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Successful]
|
||||
)
|
||||
|
||||
if defined A_Cor (
|
||||
if not exist "%A_Cor_cl%" call :K38_color "%copyclipup% [%systemroot%\System32\] [Unsuccessful] Aborting..." %Red% & goto K38_Act_Cont
|
||||
if exist "%A_Cor_cl%" echo %copyclipup% [%systemroot%\System32\] [Successful]
|
||||
)
|
||||
|
||||
cd /d "%temp_%\"
|
||||
attrib -R -A -S -H *.*
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Multiple attempts to generate the ticket because in some cases, one attempt is not enough.
|
||||
|
||||
set "_noxml=if not exist "%temp_%\GenuineTicket.xml""
|
||||
|
||||
start /wait "" "%temp_%/gatherosstate.exe" %nul%
|
||||
%_noxml% timeout /t 3 %nul%
|
||||
%_noxml% call "%temp_%/gatherosstate.exe" %nul%
|
||||
%_noxml% timeout /t 3 %nul%
|
||||
%_noxml% "%temp_%/gatherosstate.exe" %nul%
|
||||
%_noxml% timeout /t 3 %nul%
|
||||
|
||||
set "GenTicket=Generating GenuineTicket.xml "
|
||||
%_noxml% (
|
||||
call :K38_color "%GenTicket% [Unsuccessful] Aborting..." %Red%
|
||||
goto K38_Act_Cont
|
||||
) else (
|
||||
echo %GenTicket% [Successful]
|
||||
)
|
||||
|
||||
:: clipup -v -o -altto <Ticket path> method to apply ticket was not used to avoid the certain issues in case the username have spaces or non English names.
|
||||
|
||||
set "InsTicket=Installing GenuineTicket.xml "
|
||||
set "TDir=%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket"
|
||||
if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul%
|
||||
copy /y /b "%temp_%\GenuineTicket.xml" "%TDir%\GenuineTicket.xml" %nul%
|
||||
|
||||
if not exist "%TDir%\GenuineTicket.xml" (
|
||||
call :K38_color "Failed to copy Ticket to [%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket\] Aborting..." %Red%
|
||||
goto K38_Act_Cont
|
||||
)
|
||||
|
||||
set "_xmlexist=if exist "%TDir%\GenuineTicket.xml""
|
||||
|
||||
%_psc% Restart-Service ClipSVC %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
|
||||
%_xmlexist% (
|
||||
%_psc% stop-Service ClipSVC %nul%
|
||||
%_psc% start-Service ClipSVC %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
)
|
||||
|
||||
set fallback_=
|
||||
%_xmlexist% (
|
||||
set fallback_=1
|
||||
%nul% clipup -v -o
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
)
|
||||
|
||||
%_xmlexist% (
|
||||
call :K38_color "%InsTicket% [Unsuccessful] Aborting..." %Red%
|
||||
if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul%
|
||||
goto K38_Act_Cont
|
||||
) else (
|
||||
if not defined fallback_ echo %InsTicket% [Successful]
|
||||
if defined fallback_ call :K38_color "%InsTicket% [Successful] [Fallback method: clipup -v -o]" %Red%
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo:
|
||||
echo Activating...
|
||||
echo:
|
||||
|
||||
call :K38_CheckEXPtime
|
||||
if %gpr% GTR 259200 (
|
||||
call :K38_Actinfo
|
||||
goto K38_Act_Cont
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Clear 180 Days KMS Activation lock without full Rearm and Restart
|
||||
|
||||
set RearmF=
|
||||
set "Rearm=Applying SKU-APP ID Rearm "
|
||||
wmic path %sls% where __CLASS='%sls%' call ReArmApp ApplicationId="%wApp%" %nul% || (set RearmF=1)
|
||||
wmic path %slp% where ID='%app%' call ReArmsku %nul% || (set RearmF=1)
|
||||
|
||||
if defined RearmF (
|
||||
call :K38_color "%Rearm% [Unsuccessful]" %Red%
|
||||
) else (
|
||||
echo %Rearm% [Successful]
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo:
|
||||
call :K38_CheckEXPtime
|
||||
if %gpr% GTR 259200 (
|
||||
call :K38_Actinfo
|
||||
goto K38_Act_Cont
|
||||
)
|
||||
|
||||
%_psc% Restart-Service sppsvc %nul%
|
||||
wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
|
||||
call :K38_CheckEXPtime
|
||||
if %gpr% GTR 259200 (
|
||||
call :K38_Actinfo
|
||||
goto K38_Act_Cont
|
||||
)
|
||||
|
||||
call :K38_color "Activation Failed." %Red%
|
||||
call :K38_color "Try the Troubleshoot Guide listed in the ReadMe." %Magenta%
|
||||
|
||||
:K38_Act_Cont
|
||||
|
||||
:: clipup.exe does not exist in server cor and acor editions by default, it was copied there with this script.
|
||||
|
||||
echo:
|
||||
cd /d "!_work!\"
|
||||
if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul%
|
||||
if defined A_Cor (if exist "%A_Cor_cl%" del /f /q "%A_Cor_cl%" %nul%)
|
||||
|
||||
set "delFiles=Cleaning Temp Files "
|
||||
set "delclipup=Deleting copied clipup.exe file "
|
||||
|
||||
if exist "%temp_%\" (
|
||||
call :K38_color "%delFiles% [Unsuccessful]" %Red%
|
||||
) else (
|
||||
echo %delFiles% [Successful]
|
||||
)
|
||||
|
||||
if defined A_Cor (
|
||||
if exist "%A_Cor_cl%" call :K38_color "%delclipup% [Unsuccessful]" %Red%
|
||||
if not exist "%A_Cor_cl%" echo %delclipup% [Successful]
|
||||
)
|
||||
|
||||
goto K38_Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Echo all the missing files.
|
||||
:: Written by @abbodi1406 (MDL)
|
||||
|
||||
:K38_check
|
||||
|
||||
for %%# in (%1 %2) do (if not exist "!_work!\BIN\%%#" (if defined _miss (set "_miss=!_miss! %%#") else (set "_miss=%%#")))
|
||||
if defined _miss (
|
||||
%ELine%
|
||||
echo Following required file^(s^) is missing in 'BIN' folder. Aborting...
|
||||
echo:
|
||||
echo !_miss!
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:K38_ServiceCheck
|
||||
|
||||
:: Detect Service status and start type
|
||||
:: Written by @RPO
|
||||
|
||||
for /f "tokens=1,3 delims=: " %%a in ('sc query %1') do (if /i %%a==state set "state=%%b")
|
||||
for /f "tokens=1-4 delims=: " %%a in ('sc qc %1') do (if /i %%a==start_type set "start_type=%%c %%d")
|
||||
|
||||
if /i "%state%"=="STOPPED" set state=Stopped
|
||||
if /i "%state%"=="RUNNING" set state=Running
|
||||
|
||||
if /i "%start_type%"=="auto_start (delayed)" set start_type=Delayed-Auto
|
||||
if /i "%start_type%"=="auto_start " set start_type=Auto
|
||||
if /i "%start_type%"=="demand_start " set start_type=Demand
|
||||
if /i "%start_type%"=="disabled " set start_type=Disabled
|
||||
|
||||
for %%i in (%*) do (
|
||||
if /i "%%i"=="%_3%" set "sp_start_type=%start_type%" & set "sp_state=%state%"
|
||||
if /i "%%i"=="%_1%" set "Cl_start_type=%start_type%" & set "Cl_state=%state%"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:K38_CheckPermAct
|
||||
|
||||
:: Check Windows Permanent Activation status
|
||||
:: Written by @abbodi1406
|
||||
|
||||
wmic path %slp% where (LicenseStatus='1' and GracePeriodRemaining='0' and PartialProductKey is not NULL) get Name 2>nul | findstr /i "Windows" 1>nul && set PermAct=1||set PermAct=
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Expiration date with powershell
|
||||
:: Written by @abbodi1406
|
||||
|
||||
:K38_Actinfo
|
||||
|
||||
for /f "tokens=* delims=" %%# in ('%_psc% "$([DateTime]::Now.addMinutes(%gpr%)).ToString('yyyy-MM-dd HH:mm:ss')" 2^>nul') do set "_xpr=%%#"
|
||||
call :K38_color "%winos% is activated till %_xpr%" %Green%
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:K38_CheckEXPtime
|
||||
|
||||
:: Check Activation remaining time
|
||||
:: Written by @abbodi1406
|
||||
|
||||
for /f "tokens=2 delims==" %%# in ('"wmic path %slp% where (ApplicationID='%wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get GracePeriodRemaining /VALUE" ') do set "gpr=%%#"
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:K38_color
|
||||
|
||||
%_psc% write-host '%1' -fore '%2' -back '%3'
|
||||
exit /b
|
||||
|
||||
:K38_color1
|
||||
|
||||
%_psc% write-host '%1' -fore '%2' -back '%3' -NoNewline
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:K38_Done
|
||||
|
||||
echo:
|
||||
if defined Unattended (
|
||||
echo Exiting in 3 seconds...
|
||||
if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3)
|
||||
exit /b
|
||||
)
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
:K38_CheckEdition
|
||||
|
||||
for %%# in (
|
||||
4-Enterprise
|
||||
7-ServerStandard
|
||||
8-ServerDatacenter
|
||||
27-EnterpriseN
|
||||
48-Professional
|
||||
49-ProfessionalN
|
||||
50-ServerSolution
|
||||
98-CoreN
|
||||
99-CoreCountrySpecific
|
||||
100-CoreSingleLanguage
|
||||
101-Core
|
||||
110-ServerCloudStorage
|
||||
120-ServerARM64
|
||||
121-Education
|
||||
122-EducationN
|
||||
125-EnterpriseS
|
||||
126-EnterpriseSN
|
||||
145-ServerDatacenterACor
|
||||
146-ServerStandardACor
|
||||
161-ProfessionalWorkstation
|
||||
162-ProfessionalWorkstationN
|
||||
164-ProfessionalEducation
|
||||
165-ProfessionalEducationN
|
||||
168-ServerAzureCor
|
||||
171-EnterpriseG
|
||||
172-EnterpriseGN
|
||||
175-ServerRdsh
|
||||
183-CloudE
|
||||
) do for /f "tokens=1,2 delims=-" %%A in ("%%#") do (
|
||||
if %osSKU%==%%A set "osedition=%%B"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Generic Volume License Key (GVLK) List
|
||||
|
||||
:: Windows 10 [RS5]
|
||||
:32d2fab3-e4a8-42c2-923b-4bf4fd13e6ee
|
||||
set "key=M7XTQ-FN8P6-TTKYV-9D4CC-J462D" &:: Enterprise LTSC 2019
|
||||
exit /b
|
||||
|
||||
:7103a333-b8c8-49cc-93ce-d37c09687f92
|
||||
set "key=92NFX-8DJQP-P6BBQ-THF9C-7CG2H" &:: Enterprise LTSC 2019 N
|
||||
exit /b
|
||||
|
||||
:ec868e65-fadf-4759-b23e-93fe37f2cc29
|
||||
set "key=CPWHC-NT2C7-VYW78-DHDB2-PG3GK" &:: Enterprise for Virtual Desktops
|
||||
exit /b
|
||||
|
||||
:0df4f814-3f57-4b8b-9a9d-fddadcd69fac
|
||||
set "key=NBTWJ-3DR69-3C4V8-C26MC-GQ9M6" &:: Lean
|
||||
exit /b
|
||||
|
||||
:: Windows 10 [RS3]
|
||||
:82bbc092-bc50-4e16-8e18-b74fc486aec3
|
||||
set "key=NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J" &:: Pro Workstation
|
||||
exit /b
|
||||
|
||||
:4b1571d3-bafb-4b40-8087-a961be2caf65
|
||||
set "key=9FNHH-K3HBT-3W4TD-6383H-6XYWF" &:: Pro Workstation N
|
||||
exit /b
|
||||
|
||||
:e4db50ea-bda1-4566-b047-0ca50abc6f07
|
||||
set "key=7NBT4-WGBQX-MP4H7-QXFF8-YP3KX" &:: Enterprise Remote Server
|
||||
exit /b
|
||||
|
||||
:: Windows 10 [RS2]
|
||||
:e0b2d383-d112-413f-8a80-97f373a5820c
|
||||
set "key=YYVX9-NTFWV-6MDM3-9PT4T-4M68B" &:: Enterprise G
|
||||
exit /b
|
||||
|
||||
:e38454fb-41a4-4f59-a5dc-25080e354730
|
||||
set "key=44RPN-FTY23-9VTTB-MP9BX-T84FV" &:: Enterprise G N
|
||||
exit /b
|
||||
|
||||
:: Windows 10 [RS1]
|
||||
:2d5a5a60-3040-48bf-beb0-fcd770c20ce0
|
||||
set "key=DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ" &:: Enterprise 2016 LTSB
|
||||
exit /b
|
||||
|
||||
:9f776d83-7156-45b2-8a5c-359b9c9f22a3
|
||||
set "key=QFFDN-GRT3P-VKWWX-X7T3R-8B639" &:: Enterprise 2016 LTSB N
|
||||
exit /b
|
||||
|
||||
:3f1afc82-f8ac-4f6c-8005-1d233e606eee
|
||||
set "key=6TP4R-GNPTD-KYYHQ-7B7DP-J447Y" &:: Pro Education
|
||||
exit /b
|
||||
|
||||
:5300b18c-2e33-4dc2-8291-47ffcec746dd
|
||||
set "key=YVWGF-BXNMC-HTQYQ-CPQ99-66QFC" &:: Pro Education N
|
||||
exit /b
|
||||
|
||||
:: Windows 10 [TH]
|
||||
:58e97c99-f377-4ef1-81d5-4ad5522b5fd8
|
||||
set "key=TX9XD-98N7V-6WMQ6-BX7FG-H8Q99" &:: Home
|
||||
exit /b
|
||||
|
||||
:7b9e1751-a8da-4f75-9560-5fadfe3d8e38
|
||||
set "key=3KHY7-WNT83-DGQKR-F7HPR-844BM" &:: Home N
|
||||
exit /b
|
||||
|
||||
:cd918a57-a41b-4c82-8dce-1a538e221a83
|
||||
set "key=7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH" &:: Home Single Language
|
||||
exit /b
|
||||
|
||||
:a9107544-f4a0-4053-a96a-1479abdef912
|
||||
set "key=PVMJN-6DFY6-9CCP6-7BKTT-D3WVR" &:: Home China
|
||||
exit /b
|
||||
|
||||
:2de67392-b7a7-462a-b1ca-108dd189f588
|
||||
set "key=W269N-WFGWX-YVC9B-4J6C9-T83GX" &:: Pro
|
||||
exit /b
|
||||
|
||||
:a80b5abf-76ad-428b-b05d-a47d2dffeebf
|
||||
set "key=MH37W-N47XK-V7XM9-C7227-GCQG9" &:: Pro N
|
||||
exit /b
|
||||
|
||||
:e0c42288-980c-4788-a014-c080d2e1926e
|
||||
set "key=NW6C2-QMPVW-D7KKK-3GKT6-VCFB2" &:: Education
|
||||
exit /b
|
||||
|
||||
:3c102355-d027-42c6-ad23-2e7ef8a02585
|
||||
set "key=2WH4N-8QGBV-H22JP-CT43Q-MDWWJ" &:: Education N
|
||||
exit /b
|
||||
|
||||
:73111121-5638-40f6-bc11-f1d7b0d64300
|
||||
set "key=NPPR9-FWDCX-D2C8J-H872K-2YT43" &:: Enterprise
|
||||
exit /b
|
||||
|
||||
:e272e3e2-732f-4c65-a8f0-484747d0d947
|
||||
set "key=DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4" &:: Enterprise N
|
||||
exit /b
|
||||
|
||||
:7b51a46c-0c04-4e8f-9af4-8496cca90d5e
|
||||
set "key=WNMTR-4C88C-JK8YV-HQ7T2-76DF9" &:: Enterprise 2015 LTSB
|
||||
exit /b
|
||||
|
||||
:87b838b7-41b6-4590-8318-5797951d8529
|
||||
set "key=2F77B-TNFGY-69QQF-B8YKP-D69TJ" &:: Enterprise 2015 LTSB N
|
||||
exit /b
|
||||
|
||||
:: Windows Server 2019 [RS5]
|
||||
:de32eafd-aaee-4662-9444-c1befb41bde2
|
||||
set "key=N69G4-B89J2-4G8F4-WWYCC-J464C" &:: Standard
|
||||
exit /b
|
||||
|
||||
:34e1ae55-27f8-4950-8877-7a03be5fb181
|
||||
set "key=WMDGN-G9PQG-XVVXX-R3X43-63DFG" &:: Datacenter
|
||||
exit /b
|
||||
|
||||
:034d3cbb-5d4b-4245-b3f8-f84571314078
|
||||
set "key=WVDHN-86M7X-466P6-VHXV7-YY726" &:: Essentials
|
||||
exit /b
|
||||
|
||||
:a99cc1f0-7719-4306-9645-294102fbff95
|
||||
set "key=FDNH6-VW9RW-BXPJ7-4XTYG-239TB" &:: Azure Core
|
||||
exit /b
|
||||
|
||||
:73e3957c-fc0c-400d-9184-5f7b6f2eb409
|
||||
set "key=N2KJX-J94YW-TQVFB-DG9YT-724CC" &:: Standard ACor
|
||||
exit /b
|
||||
|
||||
:90c362e5-0da1-4bfd-b53b-b87d309ade43
|
||||
set "key=6NMRW-2C8FM-D24W7-TQWMY-CWH2D" &:: Datacenter ACor
|
||||
exit /b
|
||||
|
||||
:8de8eb62-bbe0-40ac-ac17-f75595071ea3
|
||||
set "key=GRFBW-QNDC4-6QBHG-CCK3B-2PR88" &:: ServerARM64
|
||||
exit /b
|
||||
|
||||
:: Windows Server 2016 [RS4]
|
||||
:43d9af6e-5e86-4be8-a797-d072a046896c
|
||||
set "key=K9FYF-G6NCK-73M32-XMVPY-F9DRR" &:: ServerARM64
|
||||
exit /b
|
||||
|
||||
:: Windows Server 2016 [RS3]
|
||||
:61c5ef22-f14f-4553-a824-c4b31e84b100
|
||||
set "key=PTXN8-JFHJM-4WC78-MPCBR-9W4KR" &:: Standard ACor
|
||||
exit /b
|
||||
|
||||
:e49c08e7-da82-42f8-bde2-b570fbcae76c
|
||||
set "key=2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG" &:: Datacenter ACor
|
||||
exit /b
|
||||
|
||||
:: Windows Server 2016 [RS1]
|
||||
:8c1c5410-9f39-4805-8c9d-63a07706358f
|
||||
set "key=WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY" &:: Standard
|
||||
exit /b
|
||||
|
||||
:21c56779-b449-4d20-adfc-eece0e1ad74b
|
||||
set "key=CB7KF-BWN84-R7R2Y-793K2-8XDDG" &:: Datacenter
|
||||
exit /b
|
||||
|
||||
:2b5a1b0f-a5ab-4c54-ac2f-a6d94824a283
|
||||
set "key=JCKRF-N37P4-C2D82-9YXRT-4M63B" &:: Essentials
|
||||
exit /b
|
||||
|
||||
:7b4433f4-b1e7-4788-895a-c45378d38253
|
||||
set "key=QN4C6-GBJD2-FB422-GHWJK-GJG2R" &:: Cloud Storage
|
||||
exit /b
|
||||
|
||||
:3dbf341b-5f6c-4fa7-b936-699dce9e263f
|
||||
set "key=VP34G-4NPPG-79JTQ-864T4-R3MQX" &:: Azure Core
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,345 +0,0 @@
|
||||
====================================================================================================
|
||||
[HWID] Digital License Activation:
|
||||
====================================================================================================
|
||||
|
||||
- This activation is supported for Windows 10 ONLY.
|
||||
- This activation does not store any files in your system.
|
||||
- This activation is a permanent activation for your system Hardware.
|
||||
|
||||
- On a system, this activation can be created for all the supported editions, and all can be
|
||||
linked to Microsoft account without any issues.
|
||||
|
||||
- Once a system is activated, this activation cannot be removed. (Because the license is stored in
|
||||
the Microsoft servers and not in the user's system.)
|
||||
|
||||
- Any significant changes in the Hardware (such as a motherboard) may deactivate the system.
|
||||
It is possible to reactivate a system that was deactivated because of significant hardware
|
||||
changes, IF your activation, was linked to an online Microsoft account.
|
||||
|
||||
- For activation to succeed, the Windows Update Service and internet connectivity must be enabled.
|
||||
If you are trying to activate without these conditions being met, then the system will auto-
|
||||
activate later when the conditions are met.
|
||||
|
||||
- Auto activation scenario after the Windows reinstall:
|
||||
- The Internet is required. (Only at the time of activation)
|
||||
- The system will auto-activate if Retail (Consumer) media was used for the installation.
|
||||
- The system will NOT auto-activate if VL (Business) media was used for the installation.
|
||||
In this case, the user will have to insert that windows edition Retail/OEM key (find keys below
|
||||
in this page) to activate, if the user doesn't wish to activate again using this script.
|
||||
|
||||
- Possible reasons for activation failure:
|
||||
- The Internet is not connected.
|
||||
- Windows update service is disabled.
|
||||
- Use of a VPN, and/or a privacy-based hosts file, firewall rules.
|
||||
- Corrupt system files.
|
||||
- Microsoft servers block the activation request from some countries such as Iran.
|
||||
- Rarely, Microsoft's activation servers are the problem.
|
||||
- Some machines are not able to generate GenuineTicket.xml file using gatherosstate.exe
|
||||
The reason is unknown (to me). Please contact me if it happens to you.
|
||||
|
||||
* Troubleshoot guide is listed below.
|
||||
|
||||
====================================================================================================
|
||||
|
||||
Documentation by @mspaintmsi
|
||||
|
||||
Included topics-
|
||||
|
||||
How does it work?
|
||||
Is it possible that Microsoft can block these Digital Licenses (HWID)?
|
||||
|
||||
https://pastebin.com/raw/7Xyaf15Z
|
||||
Mirror Link-
|
||||
https://textuploader.com/1dg8d/raw
|
||||
|
||||
And
|
||||
|
||||
https://github.com/massgravel/MASSGRAVE
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
====================================================================================================
|
||||
Supported Products:
|
||||
====================================================================================================
|
||||
|
||||
Windows 10 Versions that can be activated:
|
||||
|
||||
Core
|
||||
CoreCountrySpecific
|
||||
CoreN
|
||||
CoreSingleLanguage
|
||||
Education
|
||||
EducationN
|
||||
Enterprise
|
||||
EnterpriseN
|
||||
EnterpriseS [LTSB 2015/2016 & LTSC 2019]
|
||||
EnterpriseSN [LTSB 2015/2016]
|
||||
Professional
|
||||
ProfessionalEducation
|
||||
ProfessionalEducationN
|
||||
ProfessionalN
|
||||
ProfessionalWorkstation
|
||||
ProfessionalWorkstationN
|
||||
ServerRdsh
|
||||
IoTEnterprise
|
||||
|
||||
|
||||
Note - X86-X64 and ARM64 architecture systems are supported.
|
||||
- Any Evaluation version of Windows (i.e. 'EVAL' LTSB/C) cannot be activated.
|
||||
|
||||
====================================================================================================
|
||||
Switches for the Script:
|
||||
====================================================================================================
|
||||
|
||||
- To run the script in unattended mode, use /u parameter.
|
||||
"HWID_Activation.cmd" /u
|
||||
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe Virus Total = 0/71
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll Virus Total = 0/68
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe Virus Total = 0/69
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll Virus Total = 0/67
|
||||
48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe Virus Total = 0/68
|
||||
|
||||
Virus Total Report Date: 2020-01-21
|
||||
|
||||
- File Sources:
|
||||
|
||||
- ClipUp.exe (Original):
|
||||
From Windows server 2016 x64 ISO
|
||||
|
||||
- gatherosstate.exe (Original):
|
||||
From Windows 10 x86 14393 ADK
|
||||
|
||||
- ARM64_gatherosstate.exe (Original):
|
||||
From Windows 10 ARM64 18362 ISO
|
||||
|
||||
- ARM64_slc.dll and slc.dll:
|
||||
|
||||
Original slshim
|
||||
https://github.com/vyvojar/slshim
|
||||
|
||||
Improved by @mspaintmsi
|
||||
https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://github.com/massgravel/MASSGRAVE
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
Source code is included.
|
||||
slc.dll is based on Integrated_Patcher_2 method.
|
||||
It is currently in use in HWID/KMS38 Activation script.
|
||||
|
||||
____________________________________________________________________________________________________
|
||||
|
||||
You can safely delete the following files if it's not required for you.
|
||||
|
||||
ClipUp.exe - Required to KMS38 activate Server Cor and Acor editions.
|
||||
ARM64_gatherosstate.exe and ARM64_slc.dll - Required to activate ARM64 Arch Windows 10.
|
||||
|
||||
====================================================================================================
|
||||
Manual Activation Process:
|
||||
====================================================================================================
|
||||
|
||||
- Prerequisite:
|
||||
|
||||
For Windows 10 x86-x64 system, you need following files,
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll
|
||||
|
||||
For Windows 10 ARM64 system, you need following files,
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll
|
||||
* Rename the ARM64 files to gatherosstate.exe and slc.dll respectively.
|
||||
|
||||
|
||||
Make a folder named 'Files' in C drive, [C:\Files] and copy the required files in that folder.
|
||||
|
||||
-------------------------------------------------------------------------------------------------
|
||||
|
||||
Retail/OEM Keys Windows 10 Editions
|
||||
|
||||
YTMG3-N6DKC-DKB77-7M9GH-8HVX7 Core
|
||||
4CPRK-NM3K3-X6XXQ-RXX86-WXCHW CoreN
|
||||
N2434-X9D7W-8PF6X-8DV9T-8TYMD CoreCountrySpecific
|
||||
BT79Q-G7N6G-PGBYW-4YWX6-6F4BT CoreSingleLanguage
|
||||
YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY Education
|
||||
84NGF-MHBT6-FXBX8-QWJK7-DRR8H EducationN
|
||||
XGVPP-NMH47-7TTHJ-W3FW7-8HV2C Enterprise
|
||||
3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT EnterpriseN
|
||||
FWN7H-PF93Q-4GGP8-M8RF3-MDWWW EnterpriseS [LTSB 2015]
|
||||
8V8WN-3GXBH-2TCMG-XHRX3-9766K EnterpriseSN [LTSB 2015]
|
||||
NK96Y-D9CD8-W44CQ-R8YTK-DYJWX EnterpriseS [LTSB 2016]
|
||||
2DBW3-N2PJG-MVHW3-G7TDK-9HKR4 EnterpriseSN [LTSB 2016]
|
||||
43TBQ-NH92J-XKTM7-KT3KK-P39PB EnterpriseS [LTSC 2019]
|
||||
VK7JG-NPHTM-C97JM-9MPGT-3V66T Professional
|
||||
2B87N-8KFHP-DKV6R-Y2C8J-PKCKT ProfessionalN
|
||||
8PTT6-RNW4C-6V7J2-C2D3X-MHBPB ProfessionalEducation
|
||||
GJTYN-HDMQY-FRR76-HVGC7-QPF8P ProfessionalEducationN
|
||||
DXG7C-N36C4-C4HTG-X4T3X-2YV77 ProfessionalWorkstation
|
||||
WYPNQ-8C467-V2W6J-TX4WX-WT2RQ ProfessionalWorkstationN
|
||||
NJCF7-PW8QT-3324D-688JX-2YV66 ServerRdsh
|
||||
XQQYW-NFFMW-XJPBH-K8732-CKFFD IoTEnterprise
|
||||
|
||||
-------------------------------------------------------------------------------------------------
|
||||
|
||||
- Make sure the Windows Update Service and internet are both enabled.
|
||||
- Open a command prompt (run cmd.exe) as administrator, and enter following listed commands in the
|
||||
the sequence in which they are given.
|
||||
- Enter Retail/OEM Key, (Replace '%key%' with the key from the above list) with the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /ipk %key%
|
||||
|
||||
- Make sure slc.dll and gatherosstate.exe files are located in the folder, "C:\Files" and enter
|
||||
the following commands to generate GenuineTicket.xml file.
|
||||
|
||||
For x86-x64 systems,
|
||||
|
||||
pushd "C:\Files"
|
||||
rundll32 "C:\Files\slc.dll",PatchGatherosstate
|
||||
call "C:\Files\gatherosstatemodified.exe"
|
||||
|
||||
For ARM64 systems,
|
||||
|
||||
call "C:\Files\gatherosstate.exe"
|
||||
|
||||
- Now a GenuineTicket.xml file should be created in the folder "C:\Files\", copy and paste this file in the
|
||||
folder named, "C:\ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket\"
|
||||
|
||||
- Now apply this ticket using the following commands in this sequence:
|
||||
|
||||
net stop ClipSVC
|
||||
net start ClipSVC
|
||||
|
||||
- Activate Windows with the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /ato
|
||||
|
||||
- Check Activation Status with the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /xpr
|
||||
|
||||
- Done.
|
||||
|
||||
* Note - [clipup -v -o -altto <ticket_path>] method to apply the ticket was not suggested because
|
||||
of the issues in case the username have spaces or non English characters.
|
||||
|
||||
====================================================================================================
|
||||
Troubleshoot activation issues:
|
||||
====================================================================================================
|
||||
|
||||
- Make sure the internet is connected.
|
||||
|
||||
- Open CMD and type services.msc and hit Enter, When Services opens up, look for 'Windows Update'
|
||||
and Make sure its startup type is set to Automatic. Some update blocking tools and scripts
|
||||
usually permanently block the update service, you need to make sure it's not the case.
|
||||
|
||||
- VPN, privacy-based hosts and/or firewall rules may cause problems with the activation. Disable
|
||||
them if you are facing problems in activation.
|
||||
|
||||
- Reboot the system.
|
||||
|
||||
- Now run the script to activate Windows 10, and if unsuccessful,
|
||||
Try the troubleshoot button in the settings activation page.
|
||||
If still unsuccessful then read additional troubleshoot options listed below.
|
||||
|
||||
--------------------------------------------
|
||||
|
||||
- Open CMD as administrator, and enter the following command:
|
||||
|
||||
Dism /online /Cleanup-Image /RestoreHealth
|
||||
|
||||
- After it's done, reboot the system and open CMD as administrator again, and enter the
|
||||
following command:
|
||||
|
||||
sfc.exe /scannow
|
||||
|
||||
- After it's done, reboot the system and run the activation script, and if unsuccessful,
|
||||
open CMD as administrator again, and enter the following command:
|
||||
|
||||
slmgr.vbs /rearm
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
You may try to rebuild licensing Tokens.dat as suggested in https://support.microsoft.com/en-us/help/2736303
|
||||
(this will require to repair Office afterwards.)
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
try cleaning the clipup using the following commands, it will reset all the HWID/KMS38 installed
|
||||
licences in the current system installation. open CMD as administrator again, and enter the
|
||||
following commands one by one:
|
||||
|
||||
net stop ClipSVC
|
||||
rundll32 clipc.dll,ClipCleanUpState
|
||||
|
||||
- Reboot the system (important) and run the activation script, and if unsuccessful,
|
||||
Make sure hardware component proper drivers are installed, check manufacturer site/Windows-
|
||||
update for drivers.
|
||||
|
||||
- After it's done, reboot the system and run the activation script, and if unsuccessful,
|
||||
it may be time to start over from the very beginning and do a clean install of windows :D
|
||||
|
||||
-------------------------------------------
|
||||
Activation is blocked in some countries -
|
||||
-------------------------------------------
|
||||
|
||||
- Microsoft servers block the activation request from some countries such as Iran,
|
||||
To activate the system in those countries, follow the below steps,
|
||||
- In the settings app, Change Region and Timezone to the USA location and use a VPN, choose the
|
||||
the location of the USA. Now run the script, it should activate now.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- Some machines are not able to generate GenuineTicket.xml file using gatherosstate.exe
|
||||
The reason is unknown (to me). Please contact me if it happens to you.
|
||||
|
||||
=========================================================================================================
|
||||
Credits:
|
||||
=========================================================================================================
|
||||
|
||||
@mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade.
|
||||
and Created various methods for HWID/KMS38 Activation
|
||||
*Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://github.com/massgravel/MASSGRAVE
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
@vyvojar Original slshim (slc.dll)
|
||||
https://github.com/vyvojar/slshim/releases
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
HWID/KMS38 methods Suggestions and improvements:-
|
||||
|
||||
@sponpa New ideas for the HWID/KM38 Generation
|
||||
https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257
|
||||
|
||||
@leitek8 Improvements for the slc.dll
|
||||
https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
Kind Help:-
|
||||
|
||||
Thanks for having my back and answering all of my queries. (In no particular order)
|
||||
|
||||
@AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
|
||||
@BorrowedWifi for providing support in fixing English grammar errors in the Read Me.
|
||||
@Chibi ANUBIS and @smashed for testing scripts for ARM64 system.
|
||||
|
||||
Special thanks to @abbodi1406 for providing the great help.
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
This script is a part of 'Microsoft Activation Scripts' project.
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only
|
||||
manage batch script tool which is based on the above mentioned original co-authors activation methods.
|
||||
|
||||
=========================================================================================================
|
@ -1,358 +0,0 @@
|
||||
====================================================================================================
|
||||
KMS38 Activation:
|
||||
====================================================================================================
|
||||
|
||||
- This activation method activates Windows 10 and Windows Server (14393 and later builds),
|
||||
until the year 2038.
|
||||
- This activation method does not store any files on the system.
|
||||
|
||||
- Make sure the following things have been accounted for, before applying KMS38 Activation:
|
||||
- Before the activation, if any KMS activator is installed, then make sure to uninstall it
|
||||
completely.
|
||||
- After KMS38 activation for the Windows Operating System has been achieved, if you want to
|
||||
additionally, use the 180 Days KMS Activator for MS Office, then you must make sure that
|
||||
it (the 180 Days KMS Activator for MS Office) is compatible with Windows KMS38 activation.
|
||||
FYI, the following activators are compatible and can activate Office
|
||||
without disrupting the Windows KMS38 activation.
|
||||
|
||||
KMS_VL_ALL by @abbodi1406 https://forums.mydigitallife.net/posts/838808
|
||||
Online KMS Activation Script https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
|
||||
- Any KMS Activator which is not compatible with KMS38, may overwrite the KMS38 activation for
|
||||
Windows with its own 180 days activation, thereby destroying the KMS38 activation for Windows.
|
||||
To prevent this accidental overwriting, you can apply KMS38 protection for Windows, check
|
||||
the Extras folder for more details.
|
||||
|
||||
- Why is the script setting the specific KMS host to 127.0.0.2 (localhost)?
|
||||
- By doing this, global KMS IP can not replace KMS38 activation but can be used with Office and
|
||||
other Windows Editions.
|
||||
- In case you don't like it, you can remove it with following codes, open CMD as admin and enter,
|
||||
|
||||
set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
|
||||
reg delete "HKLM\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f
|
||||
|
||||
====================================================================================================
|
||||
|
||||
Documentation by @mspaintmsi
|
||||
|
||||
Included topics-
|
||||
|
||||
How does it work?
|
||||
|
||||
https://pastebin.com/raw/7Xyaf15Z
|
||||
Mirror Link-
|
||||
https://textuploader.com/1dg8d/raw
|
||||
|
||||
And
|
||||
|
||||
https://github.com/massgravel/MASSGRAVE
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
====================================================================================================
|
||||
Supported Products:
|
||||
====================================================================================================
|
||||
|
||||
Windows 10:
|
||||
|
||||
Core
|
||||
CoreCountrySpecific
|
||||
CoreN
|
||||
CoreSingleLanguage
|
||||
Education
|
||||
EducationN
|
||||
Enterprise
|
||||
EnterpriseG
|
||||
EnterpriseGN
|
||||
EnterpriseN
|
||||
EnterpriseS [LTSB 2016 & LTSC 2019]
|
||||
EnterpriseSN [LTSB 2016 & LTSC 2019]
|
||||
Professional
|
||||
ProfessionalEducation
|
||||
ProfessionalEducationN
|
||||
ProfessionalN
|
||||
ProfessionalWorkstation
|
||||
ProfessionalWorkstationN
|
||||
ServerRdsh
|
||||
|
||||
------------------------
|
||||
|
||||
Windows Server:
|
||||
|
||||
ServerCloudStorage [Server 2016]
|
||||
ServerDatacenter [Server 2016 & 2019]
|
||||
ServerDatacenterCor [Server 2016 & 2019]
|
||||
ServerSolution [Server 2016 & 2019]
|
||||
ServerSolutionCor [Server 2016 & 2019]
|
||||
ServerStandard [Server 2016 & 2019]
|
||||
ServerStandardCor [Server 2016 & 2019]
|
||||
ServerAzureCor [Server 2016 & 2019]
|
||||
ServerDatacenterACor [All versions]
|
||||
ServerStandardACor [All versions]
|
||||
|
||||
|
||||
Note - X86-X64 and ARM64 architecture systems are supported.
|
||||
- Any Evaluation version of Windows and Server (i.e. 'EVAL' LTSB/C) cannot be activated.
|
||||
- KMS38 only supports Windows/server version 14393 (1607) and newer versions.
|
||||
|
||||
====================================================================================================
|
||||
Switches in the Script:
|
||||
====================================================================================================
|
||||
|
||||
- For unattended mode, run the script with /u parameter.
|
||||
|
||||
"KMS38_Activation.cmd" /u
|
||||
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe Virus Total = 0/71
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll Virus Total = 0/68
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe Virus Total = 0/69
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll Virus Total = 0/67
|
||||
48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe Virus Total = 0/68
|
||||
|
||||
Virus Total Report Date: 2020-01-21
|
||||
|
||||
- File Sources:
|
||||
|
||||
- ClipUp.exe (Original):
|
||||
From Windows server 2016 x64 ISO
|
||||
|
||||
- gatherosstate.exe (Original):
|
||||
From Windows 10 x86 14393 ADK
|
||||
|
||||
- ARM64_gatherosstate.exe (Original):
|
||||
From Windows 10 ARM64 18362 ISO
|
||||
|
||||
- ARM64_slc.dll and slc.dll:
|
||||
|
||||
Original slshim
|
||||
https://github.com/vyvojar/slshim
|
||||
|
||||
Improved by @mspaintmsi
|
||||
https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://github.com/massgravel/MASSGRAVE
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
Source code is included.
|
||||
slc.dll is based on Integrated_Patcher_2 method.
|
||||
It is currently in use in HWID/KMS38 Activation script.
|
||||
|
||||
____________________________________________________________________________________________________
|
||||
|
||||
You can safely delete the following files if it's not required for you.
|
||||
|
||||
ClipUp.exe - Required to KMS38 activate Server Cor and Acor editions.
|
||||
ARM64_gatherosstate.exe and ARM64_slc.dll - Required to activate ARM64 Arch Windows 10.
|
||||
|
||||
====================================================================================================
|
||||
Manual Activation Process:
|
||||
====================================================================================================
|
||||
|
||||
- Prerequisite:
|
||||
|
||||
For Windows 10 / Server x86-x64 system, you need following files,
|
||||
48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe
|
||||
ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll
|
||||
* ClipUp.exe is only required to activate Server Cor and Acor editions.
|
||||
|
||||
For Windows 10 ARM64 system, you need following files,
|
||||
578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe
|
||||
5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll
|
||||
* Rename the ARM64 files to gatherosstate.exe and slc.dll respectively.
|
||||
|
||||
Make a folder named 'Files' in C drive, [C:\Files] and copy the required files in that folder.
|
||||
|
||||
-------------------------------------------------------------------------------------------------
|
||||
|
||||
GVLK Windows 10 Editions
|
||||
|
||||
TX9XD-98N7V-6WMQ6-BX7FG-H8Q99 Core
|
||||
PVMJN-6DFY6-9CCP6-7BKTT-D3WVR CoreCountrySpecific
|
||||
3KHY7-WNT83-DGQKR-F7HPR-844BM CoreN
|
||||
7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH CoreSingleLanguage
|
||||
NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 Education
|
||||
2WH4N-8QGBV-H22JP-CT43Q-MDWWJ EducationN
|
||||
NPPR9-FWDCX-D2C8J-H872K-2YT43 Enterprise
|
||||
YYVX9-NTFWV-6MDM3-9PT4T-4M68B EnterpriseG
|
||||
44RPN-FTY23-9VTTB-MP9BX-T84FV EnterpriseGN
|
||||
DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4 EnterpriseN
|
||||
DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ EnterpriseS [LTSB 2016]
|
||||
M7XTQ-FN8P6-TTKYV-9D4CC-J462D EnterpriseS [LTSC 2019]
|
||||
QFFDN-GRT3P-VKWWX-X7T3R-8B639 EnterpriseSN [LTSB 2016]
|
||||
92NFX-8DJQP-P6BBQ-THF9C-7CG2H EnterpriseSN [LTSC 2019]
|
||||
W269N-WFGWX-YVC9B-4J6C9-T83GX Professional
|
||||
6TP4R-GNPTD-KYYHQ-7B7DP-J447Y ProfessionalEducation
|
||||
YVWGF-BXNMC-HTQYQ-CPQ99-66QFC ProfessionalEducationN
|
||||
MH37W-N47XK-V7XM9-C7227-GCQG9 ProfessionalN
|
||||
NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J ProfessionalWorkstation
|
||||
9FNHH-K3HBT-3W4TD-6383H-6XYWF ProfessionalWorkstationN
|
||||
7NBT4-WGBQX-MP4H7-QXFF8-YP3KX ServerRdsh [Less than 1809]
|
||||
CPWHC-NT2C7-VYW78-DHDB2-PG3GK ServerRdsh [Greater or Equal 1809]
|
||||
|
||||
GVLK Windows Server Editions
|
||||
|
||||
QN4C6-GBJD2-FB422-GHWJK-GJG2R ServerCloudStorage [Server 2016]
|
||||
CB7KF-BWN84-R7R2Y-793K2-8XDDG ServerDatacenter, ServerDatacenterCor [Server 2016]
|
||||
WMDGN-G9PQG-XVVXX-R3X43-63DFG ServerDatacenter, ServerDatacenterCor [Server 2019]
|
||||
JCKRF-N37P4-C2D82-9YXRT-4M63B ServerSolution, ServerSolutionCor [Server 2016]
|
||||
WVDHN-86M7X-466P6-VHXV7-YY726 ServerSolution, ServerSolutionCor [Server 2019]
|
||||
WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY ServerStandard, ServerStandardCor [Server 2016]
|
||||
N69G4-B89J2-4G8F4-WWYCC-J464C ServerStandard, ServerStandardCor [Server 2019]
|
||||
VP34G-4NPPG-79JTQ-864T4-R3MQX ServerAzureCor [Server 2016]
|
||||
FDNH6-VW9RW-BXPJ7-4XTYG-239TB ServerAzureCor [Server 2019]
|
||||
6Y6KB-N82V8-D8CQV-23MJW-BWTG6 ServerDatacenterACor [Server 1709 and later]
|
||||
DPCNP-XQFKJ-BJF7R-FRC8D-GF6G4 ServerStandardACor [Server 1709 and later]
|
||||
|
||||
-------------------------------------------------------------------------------------------------
|
||||
|
||||
- Make sure to properly and completely remove any previously-installed KMS activator if one already exists.
|
||||
- Open CMD as Admin, and enter the following listed commands in the sequence in which they are given.
|
||||
- Enter Generic Volume License Key (GVLK) (Replace '%key%' with the key from the above list)
|
||||
with the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /ipk %key%
|
||||
|
||||
- Set specific KMS host to 127.0.0.2 [Localhost] with the following command: (Run one by one)
|
||||
- By doing this, the global KMS IP can not replace the KMS38 activation, and can then safely be used with MS Office
|
||||
and other Windows Editions.
|
||||
- It's optional.
|
||||
|
||||
set spp=SoftwareLicensingProduct
|
||||
for /f "tokens=2 delims==" %G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%' and Name like 'Windows%%' and PartialProductKey is not NULL) get ID /VALUE"') do (set app=%G)
|
||||
wmic path %spp% where ID='%app%' call ClearKeyManagementServiceMachine
|
||||
wmic path %spp% where ID='%app%' call ClearKeyManagementServicePort
|
||||
wmic path %spp% where ID='%app%' call SetKeyManagementServiceMachine MachineName="127.0.0.2"
|
||||
wmic path %spp% where ID='%app%' call SetKeyManagementServicePort 1688
|
||||
|
||||
- Make sure slc.dll and gatherosstate.exe files are located in the folder, "C:\Files" and enter
|
||||
following command to generate GenuineTicket.xml file.
|
||||
|
||||
call "C:\Files\gatherosstate.exe"
|
||||
|
||||
- Now a GenuineTicket.xml file should be created in the folder "C:\Files\", copy and paste this file in the
|
||||
folder named, "C:\ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket\"
|
||||
|
||||
- Now apply this ticket using the following commands in this sequence:
|
||||
(In case of server cor and acor editions, copy the clipup.exe file to the folder "C:\Windows\System32\")
|
||||
|
||||
net stop ClipSVC
|
||||
net start ClipSVC
|
||||
|
||||
- Check the expiry date of the activation with the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /xpr
|
||||
|
||||
- If the expiry date is not in the year 2038, then enter the following command:
|
||||
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /rearm-app 55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
set spp=SoftwareLicensingProduct
|
||||
for /f "tokens=2 delims==" %G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%' and Name like 'Windows%%' and PartialProductKey is not NULL) get ID /VALUE"') do (set app=%G)
|
||||
cscript /nologo %windir%\system32\slmgr.vbs /rearm-sku %app%
|
||||
|
||||
- check expiry date again, now it should show activation until the year 2038.
|
||||
|
||||
- Done.
|
||||
|
||||
====================================================================================================
|
||||
Troubleshoot activation issues:
|
||||
====================================================================================================
|
||||
|
||||
- Make sure to completely remove any previously-installed KMS activators if any exist, before
|
||||
installing KMS38 activation.
|
||||
|
||||
- Reboot the system.
|
||||
|
||||
- Now run the script to activate Windows 10, and if unsuccessful,
|
||||
Try the troubleshoot button in settings activation page.
|
||||
If still unsuccessful then read additional troubleshoot options listed below.
|
||||
|
||||
--------------------------------------------
|
||||
|
||||
- Open CMD as Admin, and enter the following command:
|
||||
|
||||
Dism /online /Cleanup-Image /RestoreHealth
|
||||
|
||||
- After its done, reboot the system and Open CMD as Admin, and enter the following command:
|
||||
|
||||
sfc.exe /scannow
|
||||
|
||||
- After it's done, reboot the system and run the activation script, and if unsuccessful,
|
||||
open CMD as administrator again, and enter the following command:
|
||||
|
||||
slmgr.vbs /rearm
|
||||
|
||||
- Reboot the system (important) and run the activation script, and if unsuccessful,
|
||||
You may try to rebuild licensing Tokens.dat as suggested in https://support.microsoft.com/en-us/help/2736303
|
||||
(this will require to repair Office afterwards.)
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
try cleaning the clipup using the following commands, it will reset all the HWID/KMS38 installed
|
||||
licences in the current system installation. open CMD as administrator again, and enter the
|
||||
following commands one by one:
|
||||
|
||||
net stop ClipSVC
|
||||
rundll32 clipc.dll,ClipCleanUpState
|
||||
|
||||
- Reboot the system (important) and run the activation script, and if unsuccessful, it may be
|
||||
time to start over from the very beginning and do a clean install of windows :D
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- Some machines are not able to generate GenuineTicket.xml file using gatherosstate.exe
|
||||
The reason is unknown (to me). Please contact me if it happens to you.
|
||||
|
||||
=========================================================================================================
|
||||
Credits:
|
||||
=========================================================================================================
|
||||
|
||||
@mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade.
|
||||
and Created various methods for HWID/KMS38 Activation
|
||||
*Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://github.com/massgravel/MASSGRAVE
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
@vyvojar Original slshim (slc.dll)
|
||||
https://github.com/vyvojar/slshim/releases
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
HWID/KMS38 methods Suggestions and improvements:-
|
||||
|
||||
@sponpa New ideas for the HWID/KM38 Generation
|
||||
https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257
|
||||
|
||||
@leitek8 Improvements for the slc.dll
|
||||
https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
Kind Help:-
|
||||
|
||||
Thanks for having my back and answering all of my queries. (In no particular order)
|
||||
|
||||
@AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
|
||||
@BorrowedWifi for providing support in fixing English grammar errors in the Read Me.
|
||||
@Chibi ANUBIS and @smashed for testing scripts for ARM64 system.
|
||||
|
||||
Special thanks to @abbodi1406 for providing the great help.
|
||||
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
This script is a part of 'Microsoft Activation Scripts' project.
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only
|
||||
manage batch script tool which is based on the above mentioned original co-authors activation methods.
|
||||
|
||||
=========================================================================================================
|
File diff suppressed because it is too large
Load Diff
@ -1,16 +0,0 @@
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe Virus Total = 0/66
|
||||
39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe Virus Total = 1/66
|
||||
|
||||
Virus Total Report Date: 12-11-2019
|
||||
|
||||
These files are official Microsoft files and in this script, these are used in
|
||||
cleaning office license in C2R Retail office to VL conversion process.
|
||||
|
||||
The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab
|
||||
You can get the original file here https://s.put.re/WFuXpyWA.zip
|
||||
|
||||
====================================================================================================
|
Binary file not shown.
Binary file not shown.
@ -1,657 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:: =======================================================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: =======================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
set Unattended=
|
||||
set _args=
|
||||
set _elev=
|
||||
set RenTask=
|
||||
set RenActTask=
|
||||
set DeskMenu=
|
||||
set _SkipWinAct=
|
||||
set _end=
|
||||
set "_arg1=%~1"
|
||||
if not defined _arg1 goto :NoProgArgs
|
||||
set "_args=%~1"
|
||||
set "_arg2=%~2"
|
||||
set "_arg3=%~3"
|
||||
if defined _arg2 set "_args=%~1 %~2"
|
||||
if defined _arg3 set "_args=%~1 %~2 %~3"
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
if /i "%%A"=="/swa" set _SkipWinAct=1
|
||||
if /i "%%A"=="/rt" set RenTask=1&set Unattended=1
|
||||
if /i "%%A"=="/rat" set RenActTask=1&set Unattended=1
|
||||
if /i "%%A"=="/dcm" set DeskMenu=1&set Unattended=1)
|
||||
:NoProgArgs
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "EchoRed=%_psc% write-host -back Black -fore Red"
|
||||
set "EchoGreen=%_psc% write-host -back Black -fore Green"
|
||||
set "EchoYellow=%_psc% write-host -back Black -fore DarkYellow"
|
||||
set "ELine=echo: & %EchoRed% ==== ERROR ==== &echo:"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
set _end=1
|
||||
goto Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 7600 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 7/8/8.1/10 and their Server equivalent.
|
||||
set _end=1
|
||||
goto Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :Passed
|
||||
) || (
|
||||
if defined _elev goto :E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
if defined _args set _PSarg="""%~f0""" -el """%_args%"""
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
set _end=1
|
||||
goto Done
|
||||
|
||||
:Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
:: Written by @abbodi1406
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if not exist "!_work!\Activate.cmd" (
|
||||
%ELine%
|
||||
echo File [Activate.cmd] does not exist in current folder..
|
||||
echo It's required for the Task Creation.
|
||||
set _end=1
|
||||
goto Done
|
||||
)
|
||||
|
||||
call :check cleanosppx64.exe cleanosppx86.exe
|
||||
if defined _miss set _end=1&goto Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set "_dest=%ProgramData%\Online_KMS_Activation"
|
||||
set "key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks"
|
||||
|
||||
:ActivationRenewal
|
||||
|
||||
cls
|
||||
title Online KMS Activation Renewal
|
||||
mode con cols=98 lines=30
|
||||
set ActTask=
|
||||
set error_=
|
||||
set DelDeskCont=
|
||||
set error_1=
|
||||
|
||||
if defined RenTask goto:Task
|
||||
if defined RenActTask set ActTask=1&goto:Task
|
||||
if defined DeskMenu goto:ContextMenu
|
||||
echo:
|
||||
echo:
|
||||
echo:
|
||||
echo You can apply the option [either 1 or 2] and [3].
|
||||
echo ______________________________________________________
|
||||
echo ^| ^|
|
||||
echo ^| Auto Renewal via Task Scheduler ^|
|
||||
echo ^| ^|
|
||||
echo ^| [1] Create Renewal Task ^|
|
||||
echo ^| ^|
|
||||
echo ^| [2] Create Renewal and Activation Task ^|
|
||||
echo ^|______________________________________________________^|
|
||||
echo ^| ^|
|
||||
echo ^| Manual Renewal via Desktop Context Menu ^|
|
||||
echo ^| ^|
|
||||
echo ^| [3] Add Desktop Context Menu ^|
|
||||
echo ^|______________________________________________________^|
|
||||
echo ^| ^|
|
||||
echo ^| [4] Exit ^|
|
||||
echo ^| ^|
|
||||
echo ^|______________________________________________________^|
|
||||
echo:
|
||||
choice /C:1234 /N /M ". Enter Your Choice [1,2,3,4] : "
|
||||
|
||||
if errorlevel 4 exit /b
|
||||
if errorlevel 3 goto:ContextMenu
|
||||
if errorlevel 2 set ActTask=1&goto:Task
|
||||
if errorlevel 1 goto:Task
|
||||
|
||||
:======================================================================================================================================================
|
||||
|
||||
:Task
|
||||
|
||||
cls
|
||||
if defined ActTask (
|
||||
title Create Renewal And Activation Tasks
|
||||
) else (
|
||||
title Create Renewal Task
|
||||
)
|
||||
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul%
|
||||
)
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul%
|
||||
)
|
||||
If exist "%_dest%\" (
|
||||
@RD /s /q "%_dest%\" %nul%
|
||||
)
|
||||
If exist "%windir%\Online_KMS_Activation_Script\" (
|
||||
@RD /s /q "%windir%\Online_KMS_Activation_Script\" %nul%
|
||||
)
|
||||
If exist "%ProgramData%\Online_KMS_Activation.cmd" (
|
||||
Reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul%
|
||||
del /f /q "%ProgramData%\Online_KMS_Activation.cmd" %nul%
|
||||
set DelDeskCont=1
|
||||
)
|
||||
|
||||
md "%_dest%\BIN\" %nul%
|
||||
|
||||
set "_temp=%SystemRoot%\Temp\_KMS_Task_Work"
|
||||
if exist "%_temp%\" @RD /S /Q "%_temp%\" %nul%
|
||||
md "%_temp%\" %nul%
|
||||
|
||||
call :Export renewal "%_temp%\Renewal.xml" Unicode
|
||||
if defined ActTask (call :Export run_once "%_temp%\Run_Once.xml" Unicode)
|
||||
|
||||
call :Export info "%_dest%\Info.txt" ASCII
|
||||
|
||||
copy /y /b "!_work!\BIN\cleanosppx64.exe" "%_dest%\BIN\cleanosppx64.exe" %nul%
|
||||
copy /y /b "!_work!\BIN\cleanosppx86.exe" "%_dest%\BIN\cleanosppx86.exe" %nul%
|
||||
|
||||
cd /d "!_work!"
|
||||
|
||||
if defined _SkipWinAct (
|
||||
%nul% %_psc% "(gc Activate.cmd) -replace 'set ActWindows=1', 'set ActWindows=0' | Out-File -encoding ASCII "%_dest%\Activate.cmd"" || (set error_=1)
|
||||
) else (
|
||||
copy /y /b "!_work!\Activate.cmd" "%_dest%\Activate.cmd" %nul%
|
||||
)
|
||||
schtasks /create /tn "Online_KMS_Activation_Script-Renewal" /ru "SYSTEM" /xml "%_temp%\Renewal.xml" %nul%
|
||||
if defined ActTask (schtasks /create /tn "Online_KMS_Activation_Script-Run_Once" /ru "SYSTEM" /xml "%_temp%\Run_Once.xml" %nul%)
|
||||
|
||||
if exist "%_temp%\" @RD /S /Q "%_temp%\" %nul%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul || (set error_=1)
|
||||
if defined ActTask reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul || (set error_=1)
|
||||
|
||||
If not exist "%_dest%\Activate.cmd" (set error_=1)
|
||||
If not exist "%_dest%\Info.txt" (set error_=1)
|
||||
If not exist "%_dest%\BIN\cleanosppx64.exe" (set error_=1)
|
||||
If not exist "%_dest%\BIN\cleanosppx86.exe" (set error_=1)
|
||||
|
||||
if defined error_ (
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul%
|
||||
)
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul%
|
||||
)
|
||||
reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul%
|
||||
If exist "%_dest%\" (
|
||||
@RD /s /q "%_dest%\" %nul%
|
||||
)
|
||||
echo _________________________________________________________________
|
||||
echo:
|
||||
%ELine%
|
||||
echo Run the Online KMS Complete Uninstall script and then try again.
|
||||
echo _________________________________________________________________
|
||||
) else (
|
||||
echo:
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
if defined DelDeskCont (
|
||||
%EchoYellow% Previous desktop context menu entry for Online KMS Activation is deleted.
|
||||
echo:
|
||||
)
|
||||
if defined _SkipWinAct (
|
||||
%EchoYellow% %_dest%\Activate.cmd is set to skip Windows Activation.
|
||||
echo:
|
||||
)
|
||||
|
||||
echo Files created:
|
||||
echo %_dest%\BIN\cleanosppx64.exe
|
||||
echo %_dest%\BIN\cleanosppx86.exe
|
||||
echo %_dest%\Activate.cmd
|
||||
echo %_dest%\Info.txt
|
||||
echo:
|
||||
echo Scheduled Tasks created:
|
||||
echo \Online_KMS_Activation_Script-Renewal
|
||||
if defined ActTask (echo \Online_KMS_Activation_Script-Run_Once)
|
||||
echo:
|
||||
echo It's recommended to set exclusion for the following file in your Antivirus Program.
|
||||
echo:
|
||||
echo %_dest%\Activate.cmd
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
if defined ActTask (
|
||||
%EchoGreen% Online KMS Activation - Renewal and Activation Tasks are successfully created.
|
||||
) else (
|
||||
%EchoGreen% Online KMS Activation - Renewal Task is successfully created.
|
||||
)
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
)
|
||||
|
||||
goto Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:ContextMenu
|
||||
|
||||
cls
|
||||
title Add Desktop Context Menu
|
||||
|
||||
If exist "%ProgramData%\Online_KMS_Activation.cmd" (
|
||||
del /f /q "%ProgramData%\Online_KMS_Activation.cmd" %nul%
|
||||
set DelDeskCont=1
|
||||
)
|
||||
|
||||
reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul%
|
||||
|
||||
if exist "%_dest%\BIN\" (
|
||||
@RD /s /q "%_dest%\BIN\" %nul%
|
||||
)
|
||||
|
||||
md "%_dest%\BIN\" %nul%
|
||||
copy /y /b "!_work!\BIN\cleanosppx64.exe" "%_dest%\BIN\cleanosppx64.exe" %nul%
|
||||
copy /y /b "!_work!\BIN\cleanosppx86.exe" "%_dest%\BIN\cleanosppx86.exe" %nul%
|
||||
|
||||
if exist "%_dest%\Activate.cmd" (
|
||||
del /f /q "%_dest%\Activate.cmd" %nul%
|
||||
)
|
||||
|
||||
cd /d "!_work!"
|
||||
|
||||
if defined _SkipWinAct (
|
||||
%nul% %_psc% "(gc Activate.cmd) -replace 'set ActWindows=1', 'set ActWindows=0' | Out-File -encoding ASCII "%_dest%\Activate.cmd"" || (set error_=1)
|
||||
) else (
|
||||
copy /y /b "!_work!\Activate.cmd" "%_dest%\Activate.cmd" %nul%
|
||||
)
|
||||
|
||||
if exist "%_dest%\Info.txt" (
|
||||
del /f /q "%_dest%\Info.txt" %nul%
|
||||
)
|
||||
|
||||
call :Export info "%_dest%\Info.txt" ASCII
|
||||
|
||||
reg add "HKCR\DesktopBackground\shell\Activate Windows - Office" /v "Icon" /t REG_SZ /d "%SystemRoot%%\System32\shell32.dll,71" /f >nul 2>&1 || (set error_1=1)
|
||||
reg add "HKCR\DesktopBackground\shell\Activate Windows - Office\command" /ve /d "%_dest%\Activate.cmd" /f %nul% || (set error_1=1)
|
||||
|
||||
If not exist "%_dest%\Activate.cmd" (set error_=1)
|
||||
If not exist "%_dest%\Info.txt" (set error_=1)
|
||||
If not exist "%_dest%\BIN\cleanosppx64.exe" (set error_=1)
|
||||
If not exist "%_dest%\BIN\cleanosppx86.exe" (set error_=1)
|
||||
|
||||
reg query "HKCR\DesktopBackground\shell\Activate Windows - Office" %nul% || (set error_1=1)
|
||||
|
||||
if defined error_1 (
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul%
|
||||
)
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul%
|
||||
)
|
||||
reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul%
|
||||
If exist "%_dest%\" (
|
||||
@RD /s /q "%_dest%\" %nul%
|
||||
)
|
||||
echo _________________________________________________________________
|
||||
echo:
|
||||
%ELine%
|
||||
echo Run the Online KMS Complete Uninstall script and then try again.
|
||||
echo _________________________________________________________________
|
||||
) else (
|
||||
echo:
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
if defined DelDeskCont (
|
||||
%EchoYellow% Previous desktop context menu entry for Online KMS Activation is deleted.
|
||||
echo:
|
||||
)
|
||||
if defined _SkipWinAct (
|
||||
%EchoYellow% %_dest%\Activate.cmd is set to skip Windows Activation.
|
||||
echo:
|
||||
)
|
||||
|
||||
echo Files created:
|
||||
echo %_dest%\BIN\cleanosppx64.exe
|
||||
echo %_dest%\BIN\cleanosppx86.exe
|
||||
echo %_dest%\Activate.cmd
|
||||
echo %_dest%\Info.txt
|
||||
echo:
|
||||
echo Registry entry added:
|
||||
echo HKCR\DesktopBackground\shell\Activate Windows - Office
|
||||
echo HKCR\DesktopBackground\shell\Activate Windows - Office\command
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
%EchoGreen% Desktop context menu entry for Online KMS Activation is successfully created.
|
||||
echo __________________________________________________________________________________________
|
||||
echo:
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Done
|
||||
echo:
|
||||
if defined Unattended (
|
||||
echo Exiting in 3 seconds...
|
||||
if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3)
|
||||
exit /b
|
||||
)
|
||||
if defined _end (
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
) else (
|
||||
echo Press any key to go back...
|
||||
pause >nul
|
||||
goto ActivationRenewal
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:info:
|
||||
====================================================================================================
|
||||
Online KMS Activation:
|
||||
====================================================================================================
|
||||
|
||||
The use of this script is to activate / renew your Windows /Server /Office license
|
||||
using online KMS.
|
||||
|
||||
- Scheduled task name (If Renewal Task is created) (Weekly).
|
||||
\Online_KMS_Activation_Script-Renewal
|
||||
|
||||
- Scheduled task name (If Activation Task is created).
|
||||
\Online_KMS_Activation_Script-Run_Once
|
||||
|
||||
The scheduled task runs only if the system is connected to the Internet.
|
||||
Activation Task will run on the system login and after successful activation, this task will
|
||||
delete itself.
|
||||
|
||||
- If system preactivation is done via HWID + Online KMS, and HWID was applied but was not
|
||||
successful due to lack of internet at the time of installation of Windows, in that case,
|
||||
Online KMS script will be set to skip Windows activation.
|
||||
|
||||
- Registry entry name and location (If desktop context menu is created).
|
||||
HKCR\DesktopBackground\shell\Activate Windows - Office
|
||||
|
||||
For complete script and more info, browse the script homepage.
|
||||
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe Virus Total = 0/66
|
||||
39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe Virus Total = 1/66
|
||||
|
||||
Virus Total Report Date: 12-11-2019
|
||||
|
||||
These files are official Microsoft files and in this script, these are used in
|
||||
cleaning office license in C2R Retail office to VL conversion process.
|
||||
|
||||
The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab
|
||||
You can get the original file here https://s.put.re/WFuXpyWA.zip
|
||||
|
||||
====================================================================================================
|
||||
|
||||
Online KMS Activation script is just a fork of @abbodi1406's KMS_VL_ALL Project.
|
||||
KMS_VL_ALL homepage: https://forums.mydigitallife.net/posts/838808
|
||||
|
||||
This fork was made to avoid having any KMS binary files and system can be activated using
|
||||
some manual commands or transparent batch script files.
|
||||
|
||||
Online KMS Activation script is a part of 'Microsoft Activation Scripts'
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
====================================================================================================
|
||||
:info:
|
||||
|
||||
:renewal:
|
||||
<?xml version="1.0" encoding="UTF-16"?>
|
||||
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
|
||||
<RegistrationInfo>
|
||||
<Source>Microsoft Corporation</Source>
|
||||
<Date>1999-01-01T12:00:00.34375</Date>
|
||||
<Author>RPO/WindowsAddict</Author>
|
||||
<Version>1.0</Version>
|
||||
<Description>Online_KMS_Activation_Script-Renewal - Weekly Activation Renewal Task</Description>
|
||||
<URI>\Online_KMS_Activation_Script-Renewal</URI>
|
||||
<SecurityDescriptor>D:P(A;;FA;;;SY)(A;;FA;;;BA)(A;;FRFX;;;LS)(A;;FRFW;;;S-1-5-80-123231216-2592883651-3715271367-3753151631-4175906628)(A;;FR;;;S-1-5-4)</SecurityDescriptor>
|
||||
</RegistrationInfo>
|
||||
<Triggers>
|
||||
<CalendarTrigger>
|
||||
<StartBoundary>1999-01-01T12:00:00</StartBoundary>
|
||||
<Enabled>true</Enabled>
|
||||
<ScheduleByWeek>
|
||||
<DaysOfWeek>
|
||||
<Sunday />
|
||||
</DaysOfWeek>
|
||||
<WeeksInterval>1</WeeksInterval>
|
||||
</ScheduleByWeek>
|
||||
</CalendarTrigger>
|
||||
</Triggers>
|
||||
<Principals>
|
||||
<Principal id="LocalSystem">
|
||||
<UserId>S-1-5-18</UserId>
|
||||
<RunLevel>HighestAvailable</RunLevel>
|
||||
</Principal>
|
||||
</Principals>
|
||||
<Settings>
|
||||
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
|
||||
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
|
||||
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
|
||||
<AllowHardTerminate>true</AllowHardTerminate>
|
||||
<StartWhenAvailable>true</StartWhenAvailable>
|
||||
<RunOnlyIfNetworkAvailable>true</RunOnlyIfNetworkAvailable>
|
||||
<IdleSettings>
|
||||
<StopOnIdleEnd>false</StopOnIdleEnd>
|
||||
<RestartOnIdle>false</RestartOnIdle>
|
||||
</IdleSettings>
|
||||
<AllowStartOnDemand>true</AllowStartOnDemand>
|
||||
<Enabled>true</Enabled>
|
||||
<Hidden>true</Hidden>
|
||||
<RunOnlyIfIdle>false</RunOnlyIfIdle>
|
||||
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
|
||||
<UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
|
||||
<WakeToRun>false</WakeToRun>
|
||||
<ExecutionTimeLimit>PT10M</ExecutionTimeLimit>
|
||||
<Priority>7</Priority>
|
||||
<RestartOnFailure>
|
||||
<Interval>PT2M</Interval>
|
||||
<Count>3</Count>
|
||||
</RestartOnFailure>
|
||||
</Settings>
|
||||
<Actions Context="LocalSystem">
|
||||
<Exec>
|
||||
<Command>%ProgramData%\Online_KMS_Activation\Activate.cmd</Command>
|
||||
<Arguments>Task</Arguments>
|
||||
</Exec>
|
||||
</Actions>
|
||||
</Task>
|
||||
:renewal:
|
||||
|
||||
:run_once:
|
||||
<?xml version="1.0" encoding="UTF-16"?>
|
||||
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
|
||||
<RegistrationInfo>
|
||||
<Source>Microsoft Corporation</Source>
|
||||
<Date>1999-01-01T12:00:00.34375</Date>
|
||||
<Author>RPO/WindowsAddict</Author>
|
||||
<Version>1.0</Version>
|
||||
<Description>Online_KMS_Activation_Script-Run_Once - Run and Delete itself on first Internet Contact</Description>
|
||||
<URI>\Online_KMS_Activation_Script-Run_Once</URI>
|
||||
<SecurityDescriptor>D:P(A;;FA;;;SY)(A;;FA;;;BA)(A;;FRFX;;;LS)(A;;FRFW;;;S-1-5-80-123231216-2592883651-3715271367-3753151631-4175906628)(A;;FR;;;S-1-5-4)</SecurityDescriptor>
|
||||
</RegistrationInfo>
|
||||
<Triggers>
|
||||
<LogonTrigger>
|
||||
<Enabled>true</Enabled>
|
||||
</LogonTrigger>
|
||||
</Triggers>
|
||||
<Principals>
|
||||
<Principal id="LocalSystem">
|
||||
<UserId>S-1-5-18</UserId>
|
||||
<RunLevel>HighestAvailable</RunLevel>
|
||||
</Principal>
|
||||
</Principals>
|
||||
<Settings>
|
||||
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
|
||||
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
|
||||
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
|
||||
<AllowHardTerminate>true</AllowHardTerminate>
|
||||
<StartWhenAvailable>true</StartWhenAvailable>
|
||||
<RunOnlyIfNetworkAvailable>true</RunOnlyIfNetworkAvailable>
|
||||
<IdleSettings>
|
||||
<StopOnIdleEnd>false</StopOnIdleEnd>
|
||||
<RestartOnIdle>false</RestartOnIdle>
|
||||
</IdleSettings>
|
||||
<AllowStartOnDemand>true</AllowStartOnDemand>
|
||||
<Enabled>true</Enabled>
|
||||
<Hidden>true</Hidden>
|
||||
<RunOnlyIfIdle>false</RunOnlyIfIdle>
|
||||
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
|
||||
<UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
|
||||
<WakeToRun>false</WakeToRun>
|
||||
<ExecutionTimeLimit>PT10M</ExecutionTimeLimit>
|
||||
<Priority>7</Priority>
|
||||
<RestartOnFailure>
|
||||
<Interval>PT2M</Interval>
|
||||
<Count>3</Count>
|
||||
</RestartOnFailure>
|
||||
</Settings>
|
||||
<Actions Context="LocalSystem">
|
||||
<Exec>
|
||||
<Command>%ProgramData%\Online_KMS_Activation\Activate.cmd</Command>
|
||||
<Arguments>Task</Arguments>
|
||||
</Exec>
|
||||
</Actions>
|
||||
</Task>
|
||||
:run_once:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Echo all the missing files.
|
||||
:: Written by @abbodi1406 (MDL)
|
||||
|
||||
:check
|
||||
|
||||
for %%# in (%1 %2) do (if not exist "!_work!\BIN\%%#" (if defined _miss (set "_miss=!_miss! %%#") else (set "_miss=%%#")))
|
||||
if defined _miss (
|
||||
%ELine%
|
||||
echo Following required file^(s^) is missing in 'BIN' folder. Aborting...
|
||||
echo:
|
||||
echo !_miss!
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Extract the text from batch script without character and file encoding issue
|
||||
:: Thanks to @abbodi1406
|
||||
|
||||
:Export
|
||||
%nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::%~3);" &exit/b
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,264 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
:: For unattended mode, run the script with /u parameter.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:: =======================================================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: =======================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
title Online KMS Complete Uninstall
|
||||
set Unattended=
|
||||
set _args=
|
||||
set _elev=
|
||||
set "_arg1=%~1"
|
||||
if not defined _arg1 goto :NoProgArgs
|
||||
set "_args=%~1"
|
||||
set "_arg2=%~2"
|
||||
if defined _arg2 set "_args=%~1 %~2"
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
if /i "%%A"=="/u" set Unattended=1)
|
||||
:NoProgArgs
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "EchoRed=%_psc% write-host -back Black -fore Red"
|
||||
set "EchoGreen=%_psc% write-host -back Black -fore Green"
|
||||
set "ELine=echo: & %EchoRed% ==== ERROR ==== &echo:"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto UN_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 7600 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 7/8/8.1/10 and their Server equivalent.
|
||||
goto UN_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :Passed
|
||||
) || (
|
||||
if defined _elev goto :E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
if defined _args set _PSarg="""%~f0""" -el """%_args%"""
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto UN_Done
|
||||
|
||||
:Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode con: cols=98 lines=30
|
||||
setlocal EnableDelayedExpansion
|
||||
set "key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks"
|
||||
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (
|
||||
echo Deleting [Task] Online_KMS_Activation_Script-Renewal
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul%
|
||||
)
|
||||
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (
|
||||
echo Deleting [Task] Online_KMS_Activation_Script-Run_Once
|
||||
schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul%
|
||||
)
|
||||
|
||||
If exist "%windir%\Online_KMS_Activation_Script\" (
|
||||
echo Deleting [Folder] %windir%\Online_KMS_Activation_Script\
|
||||
@RD /s /q "%windir%\Online_KMS_Activation_Script\" %nul%
|
||||
)
|
||||
|
||||
If exist "%ProgramData%\Online_KMS_Activation\" (
|
||||
echo Deleting [Folder] %ProgramData%\Online_KMS_Activation\
|
||||
@RD /s /q "%ProgramData%\Online_KMS_Activation\" %nul%
|
||||
)
|
||||
|
||||
if exist "%ProgramData%\Online_KMS_Activation.cmd" (
|
||||
echo Deleting [File] %ProgramData%\Online_KMS_Activation.cmd
|
||||
del /f /q "%ProgramData%\Online_KMS_Activation.cmd" %nul%
|
||||
)
|
||||
|
||||
reg query "HKCR\DesktopBackground\shell\Activate Windows - Office" %nul% && (
|
||||
echo Deleting [Context Menu Registry] HKCR\DesktopBackground\shell\Activate Windows - Office
|
||||
Reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul%
|
||||
)
|
||||
|
||||
echo:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Clear-KMS-Cache.cmd
|
||||
:: https://forums.mydigitallife.net/posts/1511883
|
||||
:: Written by @abbodi1406 (MDL)
|
||||
|
||||
set "SysPath=%Windir%\System32"
|
||||
if exist "%Windir%\Sysnative\reg.exe" (set "SysPath=%Windir%\Sysnative")
|
||||
set "Path=%SysPath%;%Windir%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\"
|
||||
set "OSPP=SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform"
|
||||
set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
|
||||
wmic path SoftwareLicensingProduct where (Description like '%%KMSCLIENT%%') get Name 2>nul | findstr /i Windows 1>nul && (set SppHook=1) || (set SppHook=0)
|
||||
wmic path SoftwareLicensingProduct where (Description like '%%KMSCLIENT%%') get Name 2>nul | findstr /i Office 1>nul && (set SppHook=1)
|
||||
wmic path OfficeSoftwareProtectionService get Version >nul 2>&1 && (set OsppHook=1) || (set OsppHook=0)
|
||||
if %SppHook% NEQ 0 call :UN_cKMS SoftwareLicensingProduct SoftwareLicensingService SPP
|
||||
if %OsppHook% NEQ 0 call :UN_cKMS OfficeSoftwareProtectionProduct OfficeSoftwareProtectionService OSPP
|
||||
call :UN_cREG >nul 2>&1
|
||||
echo:
|
||||
goto UN_Verify
|
||||
|
||||
:UN_cKMS
|
||||
echo Clearing %3 KMS Cache...
|
||||
set spp=%1
|
||||
set sps=%2
|
||||
for /f "tokens=2 delims==" %%G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%') get ID /VALUE" 2^>nul') do (set app=%%G&call :UN_cAPP)
|
||||
for /f "tokens=2 delims==" %%A in ('"wmic path %sps% get Version /VALUE"') do set ver=%%A
|
||||
wmic path %sps% where version='%ver%' call ClearKeyManagementServiceMachine >nul 2>&1
|
||||
wmic path %sps% where version='%ver%' call ClearKeyManagementServicePort >nul 2>&1
|
||||
wmic path %sps% where version='%ver%' call DisableKeyManagementServiceDnsPublishing 1 >nul 2>&1
|
||||
wmic path %sps% where version='%ver%' call DisableKeyManagementServiceHostCaching 1 >nul 2>&1
|
||||
goto :eof
|
||||
|
||||
:UN_cAPP
|
||||
wmic path %spp% where ID='%app%' call ClearKeyManagementServiceMachine >nul 2>&1
|
||||
wmic path %spp% where ID='%app%' call ClearKeyManagementServicePort >nul 2>&1
|
||||
goto :eof
|
||||
|
||||
:UN_cREG
|
||||
reg delete "HKLM\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f
|
||||
reg delete "HKLM\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f
|
||||
reg delete "HKLM\%SPPk%" /f /v KeyManagementServiceName
|
||||
reg delete "HKLM\%SPPk%" /f /v KeyManagementServicePort
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f
|
||||
reg delete "HKLM\%OSPP%\59a52881-a989-479d-af46-f275c6370663" /f
|
||||
reg delete "HKLM\%OSPP%\0ff1ce15-a989-479d-af46-f275c6370663" /f
|
||||
reg delete "HKLM\%OSPP%" /f /v KeyManagementServiceName
|
||||
reg delete "HKLM\%OSPP%" /f /v KeyManagementServicePort
|
||||
if %OsppHook% NEQ 1 (
|
||||
reg delete "HKLM\%OSPP%" /f
|
||||
reg delete "HKU\S-1-5-20\%OSPP%" /f
|
||||
)
|
||||
goto :eof
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:UN_Verify
|
||||
|
||||
set error_=
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (set error_=1)
|
||||
reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (set error_=1)
|
||||
If exist "%windir%\Online_KMS_Activation_Script\" (set error_=1)
|
||||
if exist "%ProgramData%\Online_KMS_Activation\" (set error_=1)
|
||||
|
||||
reg query "HKCR\DesktopBackground\shell\Activate Windows - Office" >nul 2>&1 && (set error_=1)
|
||||
if exist "%ProgramData%\Online_KMS_Activation.cmd" (set error_=1)
|
||||
|
||||
if defined error_ (
|
||||
echo ______________________________________
|
||||
%ELine%
|
||||
echo Try Again.
|
||||
echo ______________________________________
|
||||
) else (
|
||||
echo _________________________________________________________________
|
||||
echo:
|
||||
%EchoGreen% Online KMS Complete Uninstall is done successfully.
|
||||
echo _________________________________________________________________
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:UN_Done
|
||||
|
||||
echo:
|
||||
if defined Unattended (
|
||||
echo Exiting in 3 seconds...
|
||||
if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3)
|
||||
exit /b
|
||||
)
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,657 +0,0 @@
|
||||
====================================================================================================
|
||||
|
||||
Online KMS Activation script is just a fork of @abbodi1406's KMS_VL_ALL Project.
|
||||
KMS_VL_ALL homepage: https://forums.mydigitallife.net/posts/838808
|
||||
|
||||
This fork was made to avoid having any KMS binary files and system can be activated using
|
||||
some manual commands or transparent batch script files.
|
||||
|
||||
This script is a part of 'Microsoft Activation Scripts' project.
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
====================================================================================================
|
||||
Online KMS Activation:
|
||||
====================================================================================================
|
||||
|
||||
- This KMS script skips the activation of any permanently / KMS38-activated product.
|
||||
- This KMS script can activate both Retail and VL Windows / Server installation.
|
||||
- This KMS script can activate C2R Retail and VL Office, but not 2010/2013 MSI Retail Office.
|
||||
|
||||
----------------------
|
||||
- Activation Renewal
|
||||
----------------------
|
||||
|
||||
- KMS activates Windows / Server / Office for 180 Days. (For Core/ProWMC edition it is 30/45 Days)
|
||||
|
||||
- By design, using the KMS activation method, the system contacts the registered server every 7
|
||||
days, and if contacted successfully it will automatically renew and reset the activation for the
|
||||
the full period of 180 days again, starting from the day of successful contact.
|
||||
If the system cannot contact the server, it will be deactivated after 180 days and it will
|
||||
remain deactivated until contact can be restored.
|
||||
|
||||
- The KMS servers I've added have been working steadily for two to three years, but there can be
|
||||
no guarantee that they will remain online indefinitely. If a registered server goes
|
||||
down, you will need to create a renewal task, or do a manual renewal, for the lifetime of the
|
||||
activation.
|
||||
|
||||
There are 3 ways you can renew the KMS server and as a result, renew the activation.
|
||||
|
||||
1- Activate.cmd
|
||||
|
||||
Run this file whenever the system needs activation. Depending upon the particular (never fully-knowable)
|
||||
circumstances, a successful activation may last for a period of a MINIMUM of 180 days,
|
||||
or a maximum of the full life of the machine it's running on, and you may never need to run it again.
|
||||
|
||||
2- Manual Renewal via Desktop Context Menu
|
||||
|
||||
This method is exactly same as above but here we put the following files in,
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
C:\ProgramData\Online_KMS_Activation\Info.txt
|
||||
|
||||
and create registry entries in,
|
||||
HKCR\DesktopBackground\shell\Activate Windows - Office
|
||||
HKCR\DesktopBackground\shell\Activate Windows - Office\command
|
||||
|
||||
It creates an easy to reach Desktop context menu for the manual activation renewal.
|
||||
|
||||
3- Automatic Renewal via Task Scheduler
|
||||
|
||||
This method put the following files in,
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
C:\ProgramData\Online_KMS_Activation\Info.txt
|
||||
|
||||
And creates a scheduled task to run the script every 7 days.
|
||||
|
||||
The scheduled task runs only if the system is connected to the Internet.
|
||||
With this method, the Activation task can also be created which will run on the system login
|
||||
and after successful activation, this task will delete itself.
|
||||
|
||||
IMPORTANT NOTE - Some sensitive AV's may flag the Automatic Renewal via the Task, and not
|
||||
because of KMS, because for them it's suspicious to run long scripts in the background as Tasks.
|
||||
|
||||
It's recommended to set exclusions in Antivirus for
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
or
|
||||
use the 1st or 2nd option for activation renewal.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
----------------------
|
||||
- Remarks
|
||||
----------------------
|
||||
|
||||
- This Online KMS Activation provides immediate global activation for Windows 8.1 and Windows 10, which
|
||||
means that in the following three scenarios, the system will self-activate when connected to the
|
||||
internet, and also means that users will not need to manually run the activation script again.
|
||||
|
||||
Scenario 1: Subsequent installation or alteration of any 2013, 2016, or 2019 Volume License
|
||||
(VL) Office product.
|
||||
Scenario 2: Windows edition change (with GVLK).
|
||||
Scenario 3: Date change, system hardware change, etc.
|
||||
|
||||
- What is left in the system in the activation process?
|
||||
- Activate.cmd
|
||||
After activation, it leaves only the KMS Server name in the registry, which helps you to get the
|
||||
above-mentioned global activation feature whereby the system auto-renews the activations,
|
||||
so it's a good thing if you leave the server name in the registry.
|
||||
However, you can clear this registered KMS Server name upon activation, and do that, open
|
||||
the script with notepad and set Clear-KMS-Cache to 1 from 0.
|
||||
What is left in the system when Renewal methods are installed, has been mentioned.
|
||||
|
||||
- This script includes the most-stable KMS servers (6+) list. The server selection process is
|
||||
fully automatic. You don't need to worry about the server's availability.
|
||||
|
||||
- If your system date is incorrect (beyond 180 days) and you are offline, the system will be
|
||||
deactivated, but will automatically reactivate when you correct the system date.
|
||||
|
||||
- Why should you choose the Online KMS activation method over offline KMS?
|
||||
The main benefit of Online KMS activation is that it doesn't need any KMS binary file and system
|
||||
can be activated using some manual commands or transparent batch script files.
|
||||
So this is for those who don't like/have difficulties/trust issue in offline KMS because of its
|
||||
binary files and antivirus detections.
|
||||
|
||||
If you prefer offline KMS then checkout an open-source activator,
|
||||
@abbodi1406's KMS_VL_ALL https://forums.mydigitallife.net/posts/838808
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
--------------------------------------
|
||||
- Office C2R Retail to VL conversion
|
||||
--------------------------------------
|
||||
|
||||
This activation script will convert Office C2R Retail to Volume without needing separate tools.
|
||||
|
||||
- Supports: Office 365, Office 2019, Office 2016, Office 2013
|
||||
- Activated Retail products will be skipped from conversion
|
||||
this includes valid Office 365 subscriptions, or perpetual Office (MAK, OEM, MSDN, Retail..)
|
||||
- Current Office licenses will be cleaned up (unless retail-activated Office detected)
|
||||
then, proper Volume licenses will be installed based on the detected Product IDs
|
||||
- Office Mondo suite cover all products, if detected, only its licenses will be installed
|
||||
- Office 365 products will be converted with Mondo licenses by default
|
||||
also, corresponding Office 365 Retail Grace Key will be installed
|
||||
- Office 2016 products will be converted with corresponding Office 2019 licenses
|
||||
- Office Professional suite will be converted with Office 2019 ProPlus licenses
|
||||
- Office HomeBusiness/HomeStudent suites will be converted with Office 2019 Standard licenses
|
||||
- If Office 2019 RTM licenses are not detected, Office 2016 licenses will be used instead
|
||||
- Office 2013 products follow the same logic but handled separately
|
||||
- If main products SKUs are detected, single apps licenses will not be installed to avoid duplication
|
||||
|
||||
- SKUs:
|
||||
O365ProPlus, O365Business, O365SmallBusPrem, O365HomePrem, O365EduCloud
|
||||
ProPlus, Professional, Standard, HomeBusiness, HomeStudent, Visio, Project
|
||||
|
||||
* Apps:
|
||||
Access, Excel, InfoPath, Onenote, Outlook, PowerPoint, Publisher, SkypeForBusiness, Word,
|
||||
Groove (OneDrive for Business)
|
||||
|
||||
- O365ProPlus, O365Business, O365SmallBusPrem, ProPlus cover all apps
|
||||
Professional cover all apps except SkypeForBusiness
|
||||
Standard cover all apps except Access, SkypeForBusiness
|
||||
|
||||
## Notice
|
||||
|
||||
- On Windows 7, Office 2016/2019 licensing service require Universal C Runtime to work correctly
|
||||
- UCRT is available in the latest Monthly Rollup, or the separate update KB3118401
|
||||
- Additionally, Office programs themselves require recent Windows 7 updates to start properly
|
||||
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe Virus Total = 0/66
|
||||
39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe Virus Total = 1/66
|
||||
|
||||
Virus Total Report Date: 12-11-2019
|
||||
|
||||
These files are official Microsoft files and in this script, these are used in
|
||||
cleaning office license in C2R Retail office to VL conversion process.
|
||||
|
||||
The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab
|
||||
You can get the original file here https://s.put.re/WFuXpyWA.zip
|
||||
|
||||
====================================================================================================
|
||||
|
||||
How does it work?
|
||||
Is it safe?
|
||||
|
||||
https://pastebin.com/raw/7Xyaf15Z
|
||||
Mirror:
|
||||
https://textuploader.com/1dg8d/raw
|
||||
|
||||
====================================================================================================
|
||||
Products Compatibility:
|
||||
====================================================================================================
|
||||
|
||||
Supported Products: [Only Volume-capable]
|
||||
|
||||
Windows 8 / 8.1 / 10 (all official editions, except Windows 10 S)
|
||||
Windows 7 (Enterprise /N/E, Professional /N/E, Embedded Standard/POSReady/ThinPC)
|
||||
Windows Server 2008 R2 / 2012 / 2012 R2 / 2016 / 2019
|
||||
Office Volume 2010 / 2013 / 2016 / 2019
|
||||
|
||||
[Activation script will convert Office C2R Retail O365/2013/2016/2019 to Volume]
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Unsupported Products:
|
||||
|
||||
Office Retail [Office MSI Retail 2010/2013]
|
||||
Windows Editions which do not support KMS activation by design:
|
||||
Windows Evaluation Editions
|
||||
Windows 7 (Starter, HomeBasic, HomePremium, Ultimate)
|
||||
Windows 10 (Cloud "S", IoTEnterprise, IoTEnterpriseS, ProfessionalSingleLanguage... etc)
|
||||
Windows Server (Server Foundation, Storage Server, Home Server 2011... etc)
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
These editions are only KMS-activatable for 45 days at max:
|
||||
Windows 10 Home edition variants
|
||||
Windows 8.1 Core edition variants, Pro with Media Center, Pro Student
|
||||
|
||||
These editions are only KMS-activatable for 30 days at max:
|
||||
Windows 8 Core edition variants, Pro with Media Center
|
||||
|
||||
Notes:
|
||||
Supported Windows products do need volume conversion, only the GVLK (KMS key) is needed, which
|
||||
the script will install accordingly.
|
||||
KMS Activation works in all (MBR, GPT, UEFI, BIOS) systems.
|
||||
|
||||
====================================================================================================
|
||||
Switches in the Script:
|
||||
====================================================================================================
|
||||
|
||||
* Applies to MAS Separate Files version
|
||||
|
||||
- For unattended mode, run the scripts with /u parameter.
|
||||
|
||||
Activate.cmd /u
|
||||
Uninstall.cmd /u
|
||||
|
||||
To create Renewal Task in unattended mode,
|
||||
Renewal_Setup.cmd /rt
|
||||
|
||||
To create Renewal and Activation Task in unattended mode,
|
||||
Renewal_Setup.cmd /rat
|
||||
|
||||
To create desktop context menu in unattended mode,
|
||||
Renewal_Setup.cmd /dcm
|
||||
|
||||
To skip Windows activation in renewal script,
|
||||
Renewal_Setup.cmd /rat /swa
|
||||
or
|
||||
Renewal_Setup.cmd /dcm /swa
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
- Activate.cmd
|
||||
|
||||
- To run the script in Debug mode to find out the cause of errors in activation or just details,
|
||||
search "set _Debug=" and change the value from 0 to 1.
|
||||
|
||||
- To replace KMS38 activation with KMS activation, search "set SkipKMS38=" and change the value
|
||||
from 1 to 0.
|
||||
|
||||
- To skip Windows activation, search "set ActWindows=" and change the value from 1 to 0.
|
||||
- To skip Office activation, search "set ActOffice=" and change the value from 1 to 0.
|
||||
- This is not effective if Windows and/or Office installation is already Volume (GVLK installed)
|
||||
- In [Online KMS + HWID] $OEM$ preactivation, Windows KMS activation is turned off
|
||||
by default.
|
||||
|
||||
- To turn OFF auto conversion for Office C2R Retail to Volume, search "set AutoR2V=" and
|
||||
change the value from 1 to 0.
|
||||
|
||||
- To set the script to use only one specific KMS server address, search "set KMS_Server="
|
||||
paste the server address after the = sign.
|
||||
|
||||
- To clear the KMS cache, search "set Clear-KMS-Cache=" and change the value from 0 to 1.
|
||||
- Registered KMS server address (cache) enables the system to automatically renew the license
|
||||
(for next 180 days) every 7 days, as long as the server is online.
|
||||
- This process is the same as how the legal KMS works, so no security program will flag
|
||||
this behavior.
|
||||
- Changing this option here won't have any effect if manual (Desktop Context menu) and/or auto,
|
||||
renewal activation script is installed. [default (0)].
|
||||
- I recommend leaving this option as default (0).
|
||||
|
||||
====================================================================================================
|
||||
Manual Activation Process:
|
||||
====================================================================================================
|
||||
|
||||
- Prerequisite:
|
||||
|
||||
online Public KMS Server List:
|
||||
|
||||
kms.srv.crsoo.com
|
||||
kms.loli.beer
|
||||
kms8.MSGuides.com
|
||||
|
||||
kms9.MSGuides.com
|
||||
kms.zhuxiaole.org
|
||||
kms.lolico.moe
|
||||
kms.moeclub.org
|
||||
|
||||
Generic Volume License Key (GVLK):
|
||||
Thanks to @abbodi1406 for the Key collection.
|
||||
|
||||
GVLK Edition
|
||||
|
||||
Windows 10
|
||||
|
||||
TX9XD-98N7V-6WMQ6-BX7FG-H8Q99 Home
|
||||
3KHY7-WNT83-DGQKR-F7HPR-844BM Home N
|
||||
7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH Home Single Language
|
||||
PVMJN-6DFY6-9CCP6-7BKTT-D3WVR Home China
|
||||
W269N-WFGWX-YVC9B-4J6C9-T83GX Pro
|
||||
MH37W-N47XK-V7XM9-C7227-GCQG9 Pro N
|
||||
6TP4R-GNPTD-KYYHQ-7B7DP-J447Y Pro Education
|
||||
YVWGF-BXNMC-HTQYQ-CPQ99-66QFC Pro Education N
|
||||
NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J Pro Workstation
|
||||
9FNHH-K3HBT-3W4TD-6383H-6XYWF Pro Workstation N
|
||||
NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 Education
|
||||
2WH4N-8QGBV-H22JP-CT43Q-MDWWJ Education N
|
||||
NPPR9-FWDCX-D2C8J-H872K-2YT43 Enterprise
|
||||
DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4 Enterprise N
|
||||
YYVX9-NTFWV-6MDM3-9PT4T-4M68B Enterprise G
|
||||
44RPN-FTY23-9VTTB-MP9BX-T84FV Enterprise G N
|
||||
WNMTR-4C88C-JK8YV-HQ7T2-76DF9 Enterprise 2015 LTSB
|
||||
2F77B-TNFGY-69QQF-B8YKP-D69TJ Enterprise 2015 LTSB N
|
||||
DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ Enterprise 2016 LTSB
|
||||
QFFDN-GRT3P-VKWWX-X7T3R-8B639 Enterprise 2016 LTSB N
|
||||
M7XTQ-FN8P6-TTKYV-9D4CC-J462D Enterprise LTSC 2019
|
||||
92NFX-8DJQP-P6BBQ-THF9C-7CG2H Enterprise LTSC 2019 N
|
||||
CPWHC-NT2C7-VYW78-DHDB2-PG3GK Enterprise for Virtual Desktops
|
||||
7NBT4-WGBQX-MP4H7-QXFF8-YP3KX Remote Server
|
||||
NBTWJ-3DR69-3C4V8-C26MC-GQ9M6 Lean
|
||||
|
||||
Windows 8.1
|
||||
|
||||
M9Q9P-WNJJT-6PXPY-DWX8H-6XWKK Core
|
||||
7B9N3-D94CG-YTVHR-QBPX3-RJP64 Core N
|
||||
BB6NG-PQ82V-VRDPW-8XVD2-V8P66 Core Single Language
|
||||
NCTT7-2RGK8-WMHRF-RY7YQ-JTXG3 Core China
|
||||
XYTND-K6QKT-K2MRH-66RTM-43JKP Core ARM
|
||||
GCRJD-8NW9H-F2CDX-CCM8D-9D6T9 Pro
|
||||
HMCNV-VVBFX-7HMBH-CTY9B-B4FXY Pro N
|
||||
789NJ-TQK6T-6XTH8-J39CJ-J8D3P Pro with Media Center
|
||||
MHF9N-XY6XB-WVXMC-BTDCT-MKKG7 Enterprise
|
||||
TT4HM-HN7YT-62K67-RGRQJ-JFFXW Enterprise N
|
||||
NMMPB-38DD4-R2823-62W8D-VXKJB Embedded Industry Pro
|
||||
FNFKF-PWTVT-9RC8H-32HB2-JB34X Embedded Industry Enterprise
|
||||
VHXM3-NR6FT-RY6RT-CK882-KW2CJ Embedded Industry Automotive
|
||||
3PY8R-QHNP9-W7XQD-G6DPH-3J2C9 with Bing
|
||||
Q6HTR-N24GM-PMJFP-69CD8-2GXKR with Bing N
|
||||
KF37N-VDV38-GRRTV-XH8X6-6F3BB with Bing Single Language
|
||||
R962J-37N87-9VVK2-WJ74P-XTMHR with Bing China
|
||||
MX3RK-9HNGX-K3QKC-6PJ3F-W8D7B Pro for Students
|
||||
TNFGH-2R6PB-8XM3K-QYHX2-J4296 Pro for Students N
|
||||
|
||||
Windows 8
|
||||
|
||||
BN3D2-R7TKB-3YPBD-8DRP2-27GG4 Core
|
||||
8N2M2-HWPGY-7PGT9-HGDD8-GVGGY Core N
|
||||
2WN2H-YGCQR-KFX6K-CD6TF-84YXQ Core Single Language
|
||||
4K36P-JN4VD-GDC6V-KDT89-DYFKP Core China
|
||||
DXHJF-N9KQX-MFPVR-GHGQK-Y7RKV Core ARM
|
||||
NG4HW-VH26C-733KW-K6F98-J8CK4 Pro
|
||||
XCVCF-2NXM9-723PB-MHCB7-2RYQQ Pro N
|
||||
GNBB8-YVD74-QJHX6-27H4K-8QHDG Pro with Media Center
|
||||
32JNW-9KQ84-P47T8-D8GGY-CWCK7 Enterprise
|
||||
JMNMF-RHW7P-DMY6X-RF3DR-X2BQT Enterprise N
|
||||
RYXVT-BNQG7-VD29F-DBMRY-HT73M Embedded Industry Pro
|
||||
NKB3R-R2F8T-3XCDP-7Q2KW-XWYQ2 Embedded Industry Enterprise
|
||||
|
||||
Windows 7
|
||||
|
||||
FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4 Professional
|
||||
MRPKT-YTG23-K7D7T-X2JMM-QY7MG Professional N
|
||||
W82YF-2Q76Y-63HXB-FGJG9-GF7QX Professional E
|
||||
33PXH-7Y6KF-2VJC9-XBBR8-HVTHH Enterprise
|
||||
YDRBP-3D83W-TY26F-D46B2-XCKRJ Enterprise N
|
||||
C29WB-22CC8-VJ326-GHFJW-H9DH4 Enterprise E
|
||||
YBYF6-BHCR3-JPKRB-CDW7B-F9BK4 Embedded POSReady 7
|
||||
XGY72-BRBBT-FF8MH-2GG8H-W7KCW Embedded Standard
|
||||
73KQT-CD9G6-K7TQG-66MRP-CQ22C Embedded ThinPC
|
||||
|
||||
Windows Server 2019
|
||||
|
||||
N69G4-B89J2-4G8F4-WWYCC-J464C Standard
|
||||
WMDGN-G9PQG-XVVXX-R3X43-63DFG Datacenter
|
||||
WVDHN-86M7X-466P6-VHXV7-YY726 Essentials
|
||||
FDNH6-VW9RW-BXPJ7-4XTYG-239TB Azure Core
|
||||
N2KJX-J94YW-TQVFB-DG9YT-724CC Standard ACor
|
||||
6NMRW-2C8FM-D24W7-TQWMY-CWH2D Datacenter ACor
|
||||
GRFBW-QNDC4-6QBHG-CCK3B-2PR88 ServerARM64
|
||||
|
||||
Windows Server 2016
|
||||
|
||||
WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY Standard
|
||||
CB7KF-BWN84-R7R2Y-793K2-8XDDG Datacenter
|
||||
JCKRF-N37P4-C2D82-9YXRT-4M63B Essentials
|
||||
QN4C6-GBJD2-FB422-GHWJK-GJG2R Cloud Storage
|
||||
VP34G-4NPPG-79JTQ-864T4-R3MQX Azure Core
|
||||
PTXN8-JFHJM-4WC78-MPCBR-9W4KR Standard ACor
|
||||
2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG Datacenter ACor
|
||||
K9FYF-G6NCK-73M32-XMVPY-F9DRR ServerARM64
|
||||
|
||||
Windows Server 2012 R2
|
||||
|
||||
D2N9P-3P6X9-2R39C-7RTCD-MDVJX Standard
|
||||
W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9 Datacenter
|
||||
KNC87-3J2TX-XB4WP-VCPJV-M4FWM Essentials
|
||||
3NPTF-33KPT-GGBPR-YX76B-39KDD Cloud Storage
|
||||
|
||||
Windows Server 2012
|
||||
|
||||
XC9B7-NBPP2-83J2H-RHMBY-92BT4 Standard
|
||||
48HP8-DN98B-MYWDG-T2DCC-8W83P Datacenter
|
||||
HM7DN-YVMH3-46JC3-XYTG7-CYQJJ MultiPoint Standard
|
||||
XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G MultiPoint Premium
|
||||
|
||||
Windows Server 2008 R2
|
||||
|
||||
6TPJF-RBVHG-WBW2R-86QPH-6RTM4 Web
|
||||
TT8MH-CG224-D3D7Q-498W2-9QCTX HPC
|
||||
YC6KT-GKW9T-YTKYR-T4X34-R7VHC Standard
|
||||
74YFP-3QFB3-KQT8W-PMXWJ-7M648 Datacenter
|
||||
489J6-VHDMP-X63PK-3K798-CPX3Y Enterprise
|
||||
GT63C-RJFQ3-4GMB6-BRFB9-CB83V Itanium
|
||||
736RG-XDKJK-V34PF-BHK87-J6X3K MultiPoint Server
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
----------------------------------------------
|
||||
Windows /Server (All VL Supported Versions)
|
||||
----------------------------------------------
|
||||
|
||||
- Connect to the internet.
|
||||
- Open CMD as Admin, and enter the following listed commands in the sequence in which they are given.
|
||||
- Enter Generic Volume License Key (GVLK) (Replace %key% with the key from above list) with
|
||||
the following command:
|
||||
|
||||
slmgr.vbs /ipk %key%
|
||||
|
||||
- Register the KMS Server, (Replace %server% with one of the above-listed servers)
|
||||
(If activation is unsuccessful then try a different server) with the following command:
|
||||
|
||||
slmgr.vbs /skms %server%
|
||||
|
||||
- Activate Windows with the following command:
|
||||
|
||||
slmgr.vbs /ato
|
||||
|
||||
- Check Activation Status with the following command:
|
||||
|
||||
slmgr.vbs /dli
|
||||
|
||||
- Check Activation Expiry Date with the following command:
|
||||
|
||||
slmgr.vbs /xpr
|
||||
|
||||
- Clear the name of the KMS server (Optional) (It'll prevent activation auto-renewal) with the following command:
|
||||
|
||||
slmgr.vbs /ckms
|
||||
|
||||
- Done.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Office VL Activation (Office 2010, 2013, 2016, 2019) -
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
- Connect to the internet.
|
||||
- Open CMD as Admin, and enter the following listed commands in the sequence in which they are given.
|
||||
- If Office is installed as VL (Volume License) then there is no need to enter its key.
|
||||
- If Office is installed as Retail, then you need to convert it to VL, by using C2R-R2V by @abbodi1406
|
||||
https://forums.mydigitallife.net/posts/1150042
|
||||
|
||||
- Change to the directory where Office is installed.
|
||||
If your system is 32-bit Office on 32-bit Windows or 64-bit Office on 64-bit Windows use the following:
|
||||
|
||||
For Office 2016 or 2019 enter the command:
|
||||
|
||||
cd "C:\Program Files\Microsoft Office\Office16"
|
||||
|
||||
For Office 2013 enter the command:
|
||||
|
||||
cd "C:\Program Files\Microsoft Office\Office15"
|
||||
|
||||
For Office 2010 enter the command:
|
||||
|
||||
cd "C:\Program Files\Microsoft Office\Office14"
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
If your system is 32-bit Office on 64-bit Windows, use the following:
|
||||
|
||||
For Office 2016 or 2019 enter the command:
|
||||
|
||||
cd "C:\Program Files (x86)\Microsoft Office\Office16"
|
||||
|
||||
For Office 2013 enter the command:
|
||||
|
||||
cd "C:\Program Files (x86)\Microsoft Office\Office15"
|
||||
|
||||
For Office 2010 enter the command:
|
||||
|
||||
cd "C:\Program Files (x86)\Microsoft Office\Office14"
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
- Once all of that is done correctly, you must register the KMS Server, (In the following,
|
||||
replace %server% with one of the above-listed servers.) (If activation is unsuccessful
|
||||
then try a different server.) with the following command:
|
||||
|
||||
cscript ospp.vbs /sethst:%server%
|
||||
|
||||
- Activate Office with the following command:
|
||||
|
||||
cscript ospp.vbs /act
|
||||
|
||||
- Check Activation Status with the following command:
|
||||
|
||||
cscript ospp.vbs /dstatus
|
||||
|
||||
- Clear the name of the KMS server, (Optional) (It'll prevent activation auto-renewal)
|
||||
with the appropriate following commands:
|
||||
|
||||
To clear the KMS Server name for Office in Win 7, or Office 2010 on Win 8 or Win 10,
|
||||
enter each of the following commands in the sequence which is given:
|
||||
|
||||
set "OSPP=HKLM\SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform"
|
||||
reg delete "%OSPP%" /f /v KeyManagementServiceName 2>nul
|
||||
reg delete "%OSPP%" /f /v KeyManagementServicePort 2>nul
|
||||
reg delete "%OSPP%\59a52881-a989-479d-af46-f275c6370663" /f 2>nul
|
||||
reg delete "%OSPP%\0ff1ce15-a989-479d-af46-f275c6370663" /f 2>nul
|
||||
|
||||
To clear the KMS server name for Office (except Office 2010) on Win 8 or Win 10, run the following command:
|
||||
|
||||
set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
|
||||
reg delete "HKLM\%SPPk%" /f /v KeyManagementServiceName 2>nul
|
||||
reg delete "HKLM\%SPPk%" /f /v KeyManagementServicePort 2>nul
|
||||
reg delete "HKLM\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f 2>nul
|
||||
reg delete "HKEY_USERS\S-1-5-20\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f 2>nul
|
||||
|
||||
- Done.
|
||||
|
||||
====================================================================================================
|
||||
Troubleshoot activation issues:
|
||||
====================================================================================================
|
||||
|
||||
- Make sure the Internet is connected.
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
Open CMD as Admin, and enter the following command: (For Windows 10\8\8.1)
|
||||
|
||||
Dism /online /Cleanup-Image /RestoreHealth
|
||||
|
||||
- After its done, reboot the system and open CMD as Admin and enter the following command:
|
||||
|
||||
sfc.exe /scannow
|
||||
|
||||
- After it's done, reboot the system and run the activation script, and if unsuccessful,
|
||||
open CMD as administrator again, and enter the following command:
|
||||
|
||||
slmgr.vbs /rearm
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
You may try to rebuild licensing Tokens.dat as suggested in https://support.microsoft.com/en-us/help/2736303
|
||||
(this will require to repair Office afterwards.)
|
||||
|
||||
- Reboot the system and run the activation script, and if unsuccessful,
|
||||
Try KMS_VL_ALL by @abbodi1406 https://forums.mydigitallife.net/posts/838808/
|
||||
If still unsuccessful, it may be time to start over from the very beginning
|
||||
and do a clean install of windows :D
|
||||
|
||||
-------------------------------
|
||||
|
||||
- If you have issues with Office activation, or got undesired or duplicate licenses (e.g. Office 2016 and 2019):
|
||||
Download Office Scrubber pack from https://forums.mydigitallife.net/posts/1466365/
|
||||
To get rid of any conflicted licenses, run Uninstall_Licenses.cmd, then you must start any
|
||||
Office program to repair the licensing. You may also try Uninstall_Keys.cmd for similar manner.
|
||||
|
||||
If you wish to remove Office and leftovers completely and start clean:
|
||||
Uninstall Office normally from Control Panel / Programs and Feature then run Full_Scrub.cmd
|
||||
afterwards, install new Office.
|
||||
|
||||
- Can't activate Windows 7 with KMS: [Error 0xC004F035]
|
||||
Some OEM licensed computers cannot be activated with KMS on WINDOWS 7.
|
||||
Quote from the MS page https://tinyurl.com/yy8wfu5m
|
||||
'Computers obtained through OEM channels that have an ACPI_SLIC table in the (BIOS) are
|
||||
required to have a valid Windows marker in the same ACPI_SLIC table.
|
||||
---Computers that have an ACPI_SLIC table without a valid Windows marker generate an error
|
||||
when a volume edition of Windows 7 is installed.'
|
||||
|
||||
====================================================================================================
|
||||
Credits:
|
||||
====================================================================================================
|
||||
|
||||
@abbodi1406 Activate.cmd (KMS_VL_ALL)
|
||||
https://forums.mydigitallife.net/posts/838808
|
||||
(* With the great help from @RPO, Forked it to work with Multi KMS Servers,
|
||||
Renewal task, Desktop context menu, $OEM$, etc for Online KMS)
|
||||
|
||||
Clear-KMS-Cache.cmd
|
||||
https://forums.mydigitallife.net/posts/1511883
|
||||
(*Applied it as it is)
|
||||
|
||||
Check-Activation-Status-wmic.cmd
|
||||
https://forums.mydigitallife.net/posts/838808
|
||||
(*Applied it as it is)
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Online Public KMS Servers:
|
||||
|
||||
kms.srv.crsoo.com
|
||||
kms.loli.beer
|
||||
kms8.MSGuides.com
|
||||
|
||||
kms9.MSGuides.com
|
||||
kms.zhuxiaole.org
|
||||
kms.lolico.moe
|
||||
kms.moeclub.org
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Special Thanks to @RPO
|
||||
|
||||
For providing great support in making and improvements of this script,
|
||||
To name a few,
|
||||
|
||||
Internet test with Powershell (No ping)
|
||||
KMS server 1688 port test with Powershell
|
||||
Multi KMS server integration
|
||||
Scheduled task to renew the activation
|
||||
|
||||
And for solving countless problems in this batch script.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Kind Help:-
|
||||
|
||||
Thanks for having my back and answering all of my queries. (In no particular order)
|
||||
|
||||
@AveYo aka @BAU, @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
|
||||
@BorrowedWifi For providing support in fixing English grammar errors in the Read Me.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
This script is a part of 'Microsoft Activation Scripts' project.
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
====================================================================================================
|
@ -1,12 +0,0 @@
|
||||
----------------------------------------------------------------------------------------------
|
||||
Activation Type Supported Product Activation Period
|
||||
----------------------------------------------------------------------------------------------
|
||||
|
||||
Digital License - Windows 10 - Permanent
|
||||
KMS38 - Windows 10 / Server - Until the year 2038
|
||||
Online KMS - Windows / Server / Office - For 180 Days, renewal task needs to be
|
||||
created for lifetime auto activation.
|
||||
|
||||
----------------------------------------------------------------------------------------------
|
||||
|
||||
* For more details, use the ReadMe.txt included in the respective activation folders.
|
@ -1,120 +0,0 @@
|
||||
====================================================================================================
|
||||
Credits:
|
||||
====================================================================================================
|
||||
|
||||
Microsoft Activation Scripts (MAS):
|
||||
|
||||
A collection of scripts for activating Microsoft products using HWID / KMS38 / Online KMS
|
||||
activation methods with a focus on open-source code, less antivirus detection and user-friendliness.
|
||||
|
||||
These scripts are mostly a fork of other honourable developer's tools and scripts.
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
To achieve this I have used the following projects as the base of this activator.
|
||||
I would like to say thanks to the following authors for making such awesome projects.
|
||||
|
||||
====================================
|
||||
HWID and KMS38 Activation:
|
||||
====================================
|
||||
|
||||
@mspaintmsi Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade.
|
||||
and Created various methods for HWID/KMS38 Activation
|
||||
*Anonymous https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887
|
||||
https://github.com/massgravel/MASSGRAVE
|
||||
https://gitlab.com/massgrave/massgrave
|
||||
|
||||
@vyvojar Original slshim (slc.dll)
|
||||
https://github.com/vyvojar/slshim/releases
|
||||
|
||||
====================================
|
||||
|
||||
HWID/KMS38 methods Suggestions and improvements:-
|
||||
|
||||
@sponpa New ideas for the HWID/KM38 Generation
|
||||
https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257
|
||||
|
||||
@leitek8 Improvements for the slc.dll
|
||||
https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005
|
||||
|
||||
====================================
|
||||
Online KMS Activation:
|
||||
====================================
|
||||
|
||||
@abbodi1406 Activate.cmd (KMS_VL_ALL)
|
||||
https://forums.mydigitallife.net/posts/838808
|
||||
(* With the great help from @RPO, Forked it to work with Multi KMS Servers,
|
||||
Renewal task, Desktop context menu, $OEM$, etc for Online KMS)
|
||||
|
||||
Clear-KMS-Cache.cmd
|
||||
https://forums.mydigitallife.net/posts/1511883
|
||||
(*Applied it as it is)
|
||||
|
||||
Check-Activation-Status-wmic.cmd
|
||||
https://forums.mydigitallife.net/posts/838808
|
||||
(*Applied it as it is)
|
||||
|
||||
====================================
|
||||
|
||||
Online Public KMS Servers:
|
||||
|
||||
kms.srv.crsoo.com
|
||||
kms.loli.beer
|
||||
kms8.MSGuides.com
|
||||
|
||||
kms9.MSGuides.com
|
||||
kms.zhuxiaole.org
|
||||
kms.lolico.moe
|
||||
kms.moeclub.org
|
||||
|
||||
====================================
|
||||
Useful scripts and ideas I used :
|
||||
====================================
|
||||
|
||||
@AveYo (@BAU) Compressed2TXT
|
||||
https://github.com/AveYo/Compressed2TXT
|
||||
(For storing the files in text format)
|
||||
|
||||
Reg_takeownership snippet
|
||||
pastebin.com/XTPt0JSC
|
||||
(*Applied in KMS38 Protection)
|
||||
|
||||
@hearywarlot Elevate program as admin with vbs method
|
||||
https://forums.mydigitallife.net/threads/.74332/
|
||||
|
||||
@dbenham Set buffer height independently of window height
|
||||
https://stackoverflow.com/a/13351373
|
||||
|
||||
@Ratiborus Ratiborus Tools
|
||||
http://forum.ru-board.com/topic.cgi?forum=2&topic=5734#1
|
||||
|
||||
@abbodi1406 Continuously providing best solutions for tons of issues.
|
||||
|
||||
abbodi1406's Batch Scripts Repo
|
||||
https://forums.mydigitallife.net/threads/74197/
|
||||
|
||||
@s1ave77 slave77s S-M-R-T JATDevice MkIII
|
||||
https://forums.mydigitallife.net/threads/44717/
|
||||
|
||||
====================================
|
||||
Kind Help:
|
||||
====================================
|
||||
|
||||
Thanks to the following people for answering all of my queries. (In no particular order)
|
||||
|
||||
@AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406
|
||||
|
||||
@BorrowedWifi for providing support in fixing English grammar errors in the Read Me.
|
||||
@Chibi ANUBIS for testing scripts for ARM64 system.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Special thanks to @RPO and @abbodi1406,
|
||||
For providing great support and solving countless issues in this tool.
|
||||
|
||||
====================================================================================================
|
@ -1,6 +0,0 @@
|
||||
[{000214A0-0000-0000-C000-000000000046}]
|
||||
Prop3=19,11
|
||||
[InternetShortcut]
|
||||
IDList=
|
||||
URL=https://pastebin.com/raw/jduBSazJ
|
||||
HotKey=0
|
@ -1,621 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:: =======================================================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: =======================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
title Extract $OEM$ Folder
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "EchoRed=%_psc% write-host -back Black -fore Red"
|
||||
set "EchoGreen=%_psc% write-host -back Black -fore Green"
|
||||
set "ELine=echo: & %EchoRed% ==== ERROR ==== &echo:"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 7600 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 7/8/8.1/10 and their Server equivalent.
|
||||
goto Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
:: Written by @abbodi1406
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode con cols=98 lines=30
|
||||
|
||||
:: Get correct Desktop Location with powershell
|
||||
:: Written by @dcshoecomp (superuser.com)
|
||||
:: https://superuser.com/a/1413170
|
||||
|
||||
for /f "delims=" %%a in ('%_psc% "& {write-host $([Environment]::GetFolderPath('Desktop'))}"') do Set "desktop=%%a"
|
||||
|
||||
if exist "%desktop%\$OEM$\" (
|
||||
echo _____________________________________________________
|
||||
%ELine%
|
||||
echo $OEM$ folder already exists on the Desktop.
|
||||
echo _____________________________________________________
|
||||
goto Done2
|
||||
)
|
||||
|
||||
set "_dir=%desktop%\$OEM$\$$\Setup\Scripts"
|
||||
set _nofile=
|
||||
|
||||
set "_fdir1=Activators\HWID-KMS38_Activation"
|
||||
set "HWID_Activation.cmd=%_fdir1%\HWID_Activation.cmd"
|
||||
set "KMS38_Activation.cmd=%_fdir1%\KMS38_Activation.cmd"
|
||||
set "ClipUp.exe=%_fdir1%\BIN\ClipUp.exe"
|
||||
set "gatherosstate.exe=%_fdir1%\BIN\gatherosstate.exe"
|
||||
set "slc.dll=%_fdir1%\BIN\slc.dll"
|
||||
set "ARM64_gatherosstate.exe=%_fdir1%\BIN\ARM64_gatherosstate.exe"
|
||||
set "ARM64_slc.dll=%_fdir1%\BIN\ARM64_slc.dll"
|
||||
|
||||
set "_fdir2=Activators\Online_KMS_Activation"
|
||||
set "Activate.cmd=%_fdir2%\Activate.cmd"
|
||||
set "Renewal_Setup.cmd=%_fdir2%\Renewal_Setup.cmd"
|
||||
set "cleanosppx64.exe=%_fdir2%\BIN\cleanosppx64.exe"
|
||||
set "cleanosppx86.exe=%_fdir2%\BIN\cleanosppx86.exe"
|
||||
|
||||
cd /d "!_work!"
|
||||
pushd "!_work!"
|
||||
cd ..
|
||||
cd ..
|
||||
|
||||
if not exist "%HWID_Activation.cmd%" set _nofile=1
|
||||
if not exist "%KMS38_Activation.cmd%" set _nofile=1
|
||||
if not exist "%ClipUp.exe%" set _nofile=1
|
||||
if not exist "%gatherosstate.exe%" set _nofile=1
|
||||
if not exist "%slc.dll%" set _nofile=1
|
||||
if not exist "%ARM64_gatherosstate.exe%" set _nofile=1
|
||||
if not exist "%ARM64_slc.dll%" set _nofile=1
|
||||
|
||||
if not exist "%Activate.cmd%" set _nofile=1
|
||||
if not exist "%Renewal_Setup.cmd%" set _nofile=1
|
||||
if not exist "%cleanosppx64.exe%" set _nofile=1
|
||||
if not exist "%cleanosppx86.exe%" set _nofile=1
|
||||
|
||||
if defined _nofile (
|
||||
echo _____________________________________________________
|
||||
%ELine%
|
||||
echo Some files are missing in the 'Activators' folder.
|
||||
echo _____________________________________________________
|
||||
goto Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Menu
|
||||
|
||||
cls
|
||||
echo:
|
||||
echo:
|
||||
echo Extract the $OEM$ Folder on your desktop.
|
||||
echo For more details use Read me.
|
||||
echo _______________________________________________________
|
||||
echo ^| ^|
|
||||
echo ^| ^|
|
||||
echo ^| [1] HWID ^|
|
||||
echo ^| ^|
|
||||
echo ^| [2] KMS38 ^|
|
||||
echo ^| ^|
|
||||
echo ^| [3] HWID, Fallback to KMS38 ^|
|
||||
echo ^| ^|
|
||||
echo ^| [4] Online KMS ^|
|
||||
echo ^| ^|
|
||||
echo ^| [5] HWID ^+ Online KMS ^|
|
||||
echo ^| ^|
|
||||
echo ^| [6] KMS38 ^+ Online KMS ^|
|
||||
echo ^| ^|
|
||||
echo ^| [7] HWID, Fallback to KMS38 ^+ Online KMS ^|
|
||||
echo ^| ^|
|
||||
echo ^| [8] Exit ^|
|
||||
echo ^| ^|
|
||||
echo ^|_______________________________________________________^|
|
||||
echo:
|
||||
choice /C:12345678 /N /M "> Enter Your Choice [1,2,3,4,5,6,7,8] : "
|
||||
|
||||
if errorlevel 8 exit /b
|
||||
if errorlevel 7 goto:$OEM$HWID_FB_KMS38-KMS
|
||||
if errorlevel 6 goto:$OEM$KMS38KMS
|
||||
if errorlevel 5 goto:$OEM$HWIDKMS
|
||||
if errorlevel 4 goto:$OEM$KMS
|
||||
if errorlevel 3 goto:$OEM$HWID_FB_KMS38
|
||||
if errorlevel 2 goto:$OEM$KMS38
|
||||
if errorlevel 1 goto:$OEM$HWID
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$HWID
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
call :HWIDPrep
|
||||
call :export HWIDSetup "%_dir%\SetupComplete.cmd"
|
||||
set error_=
|
||||
call :HWIDPrep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=HWID"
|
||||
goto Done
|
||||
|
||||
:HWIDSetup:
|
||||
@echo off
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
call "%~dp0HWID_Activation.cmd" /u
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:HWIDSetup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$KMS38
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
call :KMS38Prep
|
||||
call :export KMS38Setup "%_dir%\SetupComplete.cmd"
|
||||
set error_=
|
||||
call :KMS38Prep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=KMS38"
|
||||
goto Done
|
||||
|
||||
:KMS38Setup:
|
||||
@echo off
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
call "%~dp0KMS38_Activation.cmd" /u
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:KMS38Setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$HWID_FB_KMS38
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
|
||||
copy /y /b "%HWID_Activation.cmd%" "%_dir%\HWID_Activation.cmd" %nul%
|
||||
call :KMS38Prep
|
||||
call :export HWID_FB_KMS38 "%_dir%\SetupComplete.cmd"
|
||||
|
||||
set error_=
|
||||
If not exist "%_dir%\HWID_Activation.cmd" (set error_=1)
|
||||
call :KMS38Prep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=HWID`, Fallback to KMS38"
|
||||
goto Done
|
||||
|
||||
:HWID_FB_KMS38:
|
||||
@echo off
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
|
||||
:: Check Windows Edition
|
||||
set osedition=
|
||||
for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' and PartialProductKey is not NULL) get LicenseFamily /VALUE" 2^>nul') do if not errorlevel 1 set "osedition=%%a"
|
||||
if not defined osedition for /f "tokens=3 delims=: " %%a in ('DISM /English /Online /Get-CurrentEdition 2^>nul ^| find /i "Current Edition :"') do set "osedition=%%a"
|
||||
|
||||
:: Check Installation type
|
||||
set instype=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType 2^>nul') do if not errorlevel 1 set "instype=%%b"
|
||||
|
||||
set KMS38=
|
||||
if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseS" set KMS38=1
|
||||
if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseSN" set KMS38=1
|
||||
if "%osedition%"=="EnterpriseG" set KMS38=1
|
||||
if "%osedition%"=="EnterpriseGN" set KMS38=1
|
||||
if not "%instype%"=="Client" echo %osedition%| findstr /I /B Server 1>nul && set KMS38=1
|
||||
|
||||
if defined KMS38 (
|
||||
call "%~dp0KMS38_Activation.cmd" /u
|
||||
) else (
|
||||
call "%~dp0HWID_Activation.cmd" /u
|
||||
)
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:HWID_FB_KMS38:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$KMS
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
call :KMSPrep
|
||||
call :export KMSSetup "%_dir%\SetupComplete.cmd"
|
||||
set error_=
|
||||
call :KMSPrep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=Online KMS"
|
||||
goto Done
|
||||
|
||||
:KMSSetup:
|
||||
@echo off
|
||||
|
||||
============================================================================
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS Renewal And Activation Task
|
||||
set Renewal_And_Activation_Task=1
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS activation desktop context menu
|
||||
set Desktop_context_menu=1
|
||||
|
||||
============================================================================
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat
|
||||
if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:KMSSetup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$HWIDKMS
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
call :HWIDPrep
|
||||
call :KMSPrep
|
||||
|
||||
call :export HWIDKMSSetup "%_dir%\SetupComplete.cmd"
|
||||
|
||||
set error_=
|
||||
call :HWIDPrep2
|
||||
call :KMSPrep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=HWID `+ Online KMS"
|
||||
goto Done
|
||||
|
||||
:HWIDKMSSetup:
|
||||
@echo off
|
||||
|
||||
============================================================================
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS Renewal And Activation Task
|
||||
set Renewal_And_Activation_Task=1
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS activation desktop context menu
|
||||
set Desktop_context_menu=1
|
||||
|
||||
============================================================================
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
call "%~dp0HWID_Activation.cmd" /u
|
||||
if defined HWIDAct set SkipWinAct=/swa
|
||||
|
||||
if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat %SkipWinAct%
|
||||
if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm %SkipWinAct%
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:HWIDKMSSetup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$KMS38KMS
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
call :KMS38Prep
|
||||
call :KMSPrep
|
||||
call :export KMS38KMSSetup "%_dir%\SetupComplete.cmd"
|
||||
set error_=
|
||||
call :KMS38Prep2
|
||||
call :KMSPrep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=KMS38 `+ Online KMS"
|
||||
goto Done
|
||||
|
||||
:KMS38KMSSetup:
|
||||
@echo off
|
||||
|
||||
============================================================================
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS Renewal And Activation Task
|
||||
set Renewal_And_Activation_Task=1
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS activation desktop context menu
|
||||
set Desktop_context_menu=1
|
||||
|
||||
============================================================================
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
call "%~dp0KMS38_Activation.cmd" /u
|
||||
|
||||
if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat
|
||||
if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:KMS38KMSSetup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:$OEM$HWID_FB_KMS38-KMS
|
||||
|
||||
cls
|
||||
call :Prep
|
||||
|
||||
copy /y /b "%HWID_Activation.cmd%" "%_dir%\HWID_Activation.cmd" %nul%
|
||||
call :KMS38Prep
|
||||
call :KMSPrep
|
||||
call :export HWID_FB_KMS38-KMSSetup "%_dir%\SetupComplete.cmd"
|
||||
|
||||
set error_=
|
||||
If not exist "%_dir%\HWID_Activation.cmd" (set error_=1)
|
||||
call :KMS38Prep2
|
||||
call :KMSPrep2
|
||||
|
||||
if defined error_ goto ErrorFound
|
||||
set "_oem=HWID`, Fallback to KMS38 `+ Online KMS"
|
||||
goto Done
|
||||
|
||||
:HWID_FB_KMS38-KMSSetup:
|
||||
@echo off
|
||||
|
||||
============================================================================
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS Renewal And Activation Task
|
||||
set Renewal_And_Activation_Task=1
|
||||
|
||||
:: Change value from 1 to 0 to disable KMS activation desktop context menu
|
||||
set Desktop_context_menu=1
|
||||
|
||||
============================================================================
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || (
|
||||
echo ==== Error ====
|
||||
echo Right click on this file and select 'Run as administrator'
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
|
||||
:: Check Windows Edition
|
||||
set osedition=
|
||||
for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' and PartialProductKey is not NULL) get LicenseFamily /VALUE" 2^>nul') do if not errorlevel 1 set "osedition=%%a"
|
||||
if not defined osedition for /f "tokens=3 delims=: " %%a in ('DISM /English /Online /Get-CurrentEdition 2^>nul ^| find /i "Current Edition :"') do set "osedition=%%a"
|
||||
|
||||
:: Check Installation type
|
||||
set instype=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType 2^>nul') do if not errorlevel 1 set "instype=%%b"
|
||||
|
||||
set KMS38=
|
||||
if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseS" set KMS38=1
|
||||
if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseSN" set KMS38=1
|
||||
if "%osedition%"=="EnterpriseG" set KMS38=1
|
||||
if "%osedition%"=="EnterpriseGN" set KMS38=1
|
||||
if not "%instype%"=="Client" echo %osedition%| findstr /I /B Server 1>nul && set KMS38=1
|
||||
|
||||
if defined KMS38 (
|
||||
call "%~dp0KMS38_Activation.cmd" /u
|
||||
) else (
|
||||
call "%~dp0HWID_Activation.cmd" /u
|
||||
if defined HWIDAct set SkipWinAct=/swa
|
||||
)
|
||||
|
||||
if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat %SkipWinAct%
|
||||
if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm %SkipWinAct%
|
||||
|
||||
cd /d "%SystemRoot%\Setup\"
|
||||
if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\"
|
||||
exit /b
|
||||
:HWID_FB_KMS38-KMSSetup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:ErrorFound
|
||||
|
||||
%ELine%
|
||||
echo $OEM$ Folder was not created successfully...
|
||||
goto :Done2
|
||||
:Done
|
||||
echo ________________________________________________________________________________________________
|
||||
echo:
|
||||
%EchoGreen% %_oem% `$OEM`$ folder is successfully created on the Desktop.
|
||||
echo ________________________________________________________________________________________________
|
||||
:Done2
|
||||
echo:
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Prep
|
||||
|
||||
cd /d "%desktop%"
|
||||
md "%desktop%\$OEM$\$$\Setup\Scripts\"
|
||||
md "%desktop%\$OEM$\$$\Setup\Scripts\BIN"
|
||||
|
||||
cd /d "!_work!"
|
||||
pushd "!_work!"
|
||||
cd ..
|
||||
cd ..
|
||||
|
||||
exit /b
|
||||
|
||||
:HWIDPrep
|
||||
|
||||
copy /y /b "%HWID_Activation.cmd%" "%_dir%\HWID_Activation.cmd" %nul%
|
||||
copy /y /b "%gatherosstate.exe%" "%_dir%\BIN\gatherosstate.exe" %nul%
|
||||
copy /y /b "%slc.dll%" "%_dir%\BIN\slc.dll" %nul%
|
||||
copy /y /b "%ARM64_gatherosstate.exe%" "%_dir%\BIN\ARM64_gatherosstate.exe" %nul%
|
||||
copy /y /b "%ARM64_slc.dll%" "%_dir%\BIN\ARM64_slc.dll" %nul%
|
||||
exit /b
|
||||
|
||||
:KMS38Prep
|
||||
|
||||
copy /y /b "%KMS38_Activation.cmd%" "%_dir%\KMS38_Activation.cmd" %nul%
|
||||
copy /y /b "%ClipUp.exe%" "%_dir%\BIN\ClipUp.exe" %nul%
|
||||
copy /y /b "%gatherosstate.exe%" "%_dir%\BIN\gatherosstate.exe" %nul%
|
||||
copy /y /b "%slc.dll%" "%_dir%\BIN\slc.dll" %nul%
|
||||
copy /y /b "%ARM64_gatherosstate.exe%" "%_dir%\BIN\ARM64_gatherosstate.exe" %nul%
|
||||
copy /y /b "%ARM64_slc.dll%" "%_dir%\BIN\ARM64_slc.dll" %nul%
|
||||
exit /b
|
||||
|
||||
:KMSPrep
|
||||
|
||||
copy /y /b "%Activate.cmd%" "%_dir%\Activate.cmd" %nul%
|
||||
copy /y /b "%Renewal_Setup.cmd%" "%_dir%\Renewal_Setup.cmd" %nul%
|
||||
copy /y /b "%cleanosppx64.exe%" "%_dir%\BIN\cleanosppx64.exe" %nul%
|
||||
copy /y /b "%cleanosppx86.exe%" "%_dir%\BIN\cleanosppx86.exe" %nul%
|
||||
exit /b
|
||||
|
||||
:HWIDPrep2
|
||||
|
||||
If not exist "%_dir%\HWID_Activation.cmd" (set error_=1)
|
||||
If not exist "%_dir%\BIN\gatherosstate.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\slc.dll" (set error_=1)
|
||||
If not exist "%_dir%\BIN\ARM64_gatherosstate.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\ARM64_slc.dll" (set error_=1)
|
||||
If not exist "%_dir%\SetupComplete.cmd" (set error_=1)
|
||||
exit /b
|
||||
|
||||
:KMS38Prep2
|
||||
|
||||
If not exist "%_dir%\KMS38_Activation.cmd" (set error_=1)
|
||||
If not exist "%_dir%\BIN\ClipUp.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\gatherosstate.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\slc.dll" (set error_=1)
|
||||
If not exist "%_dir%\BIN\ARM64_gatherosstate.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\ARM64_slc.dll" (set error_=1)
|
||||
If not exist "%_dir%\SetupComplete.cmd" (set error_=1)
|
||||
exit /b
|
||||
|
||||
:KMSPrep2
|
||||
|
||||
If not exist "%_dir%\Activate.cmd" (set error_=1)
|
||||
If not exist "%_dir%\Renewal_Setup.cmd" (set error_=1)
|
||||
If not exist "%_dir%\BIN\cleanosppx64.exe" (set error_=1)
|
||||
If not exist "%_dir%\BIN\cleanosppx86.exe" (set error_=1)
|
||||
If not exist "%_dir%\SetupComplete.cmd" (set error_=1)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Extract the text from batch script without character and file encoding issue
|
||||
:: Thanks to @abbodi1406
|
||||
|
||||
:export
|
||||
%nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::ASCII);" &exit/b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,123 +0,0 @@
|
||||
====================================================================================================
|
||||
$OEM$ Folders [Windows Pre-Activation]:
|
||||
====================================================================================================
|
||||
|
||||
- To create a Preactivated Windows installation .iso, do the following things:
|
||||
Copy the "$OEM$" folder to the "sources" folder in the Windows installation media (.iso or USB).
|
||||
The directory will appear like this: \sources\$OEM$ in your altered .iso or on your bootable
|
||||
USB drive.
|
||||
Now use this .iso or bootable USB drive to install Windows and it will either already be activated
|
||||
(KMS38) as soon as it boots, or will self-activate at first internet contact.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
HWID:
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- When using Digital License (HWID), no files are stored on the system, and when connected to the
|
||||
internet for the first time, the system will self-activate at that time.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
KMS38:
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- When using KMS38, no files are stored on the system, and Windows becomes activated immediately
|
||||
without further actions or connectivity of any kind being required.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
Online KMS (separately, or in combination with HWID or KMS38):
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- It creates the following 2 Activation/Renewal Methods. You can turn off any of them in
|
||||
setupcomplete.cmd file
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
1- Automatic Renewal via Task Scheduler---
|
||||
|
||||
It creates following files and tasks,
|
||||
|
||||
Files:
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
C:\ProgramData\Online_KMS_Activation\Info.txt
|
||||
|
||||
Scheduled Tasks:
|
||||
\Online_KMS_Activation_Script-Renewal (Weekly)
|
||||
\Online_KMS_Activation_Script-Run_Once (Activation Task)
|
||||
|
||||
The scheduled task runs only if the system is connected to the Internet.
|
||||
Activation Task will run on the system login and after successful activation and registering
|
||||
online KMS server, this task will delete itself. leaving behind only one task to run weekly
|
||||
for the lifetime of the system.
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
2- Manual Renewal via Desktop Context Menu---
|
||||
|
||||
It creates Desktop context Menu for manual activation and renewal.
|
||||
It creates the following files and registry entries.
|
||||
|
||||
Files:
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
C:\ProgramData\Online_KMS_Activation\Info.txt
|
||||
|
||||
Registry entries:
|
||||
HKCR\DesktopBackground\shell\Activate Windows - Office
|
||||
HKCR\DesktopBackground\shell\Activate Windows - Office\command
|
||||
|
||||
It creates an easy to reach the Desktop context menu for the manual activation renewal.
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe Virus Total = 0/66
|
||||
39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe Virus Total = 1/66
|
||||
|
||||
Virus Total Report Date: 12-11-2019
|
||||
|
||||
These files are official Microsoft files and in this script, these are used in
|
||||
cleaning office license in C2R Retail office to VL conversion process.
|
||||
|
||||
The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab
|
||||
You can get the original file here https://s.put.re/WFuXpyWA.zip
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
IMPORTANT NOTE - Some sensitive AV's may flag the Automatic Renewal via the Task, and not
|
||||
because of KMS, because for them it's suspicious to run long scripts in the background as Tasks.
|
||||
|
||||
It's recommended to set exclusions in Antivirus for
|
||||
C:\ProgramData\Online_KMS_Activation\Activate.cmd
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
- When using Online KMS plus HWID Digital License, Online KMS script will be set to skip Windows
|
||||
activation (if the HWID activation was applied but was not successful due to lack of internet
|
||||
at the time of installation of Windows) but will register the KMS for other products, and all
|
||||
later installed Volume License (VL) products (MS Office) will self-activate when going online.
|
||||
|
||||
- When using Online KMS plus KMS38, Online KMS will not skip Windows activation but skip KMS38
|
||||
activation and will register the KMS for other products, and all subsequently-installed Volume
|
||||
License (VL) products (MS Office) will self-activate when going online.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
HWID (Fallback to KMS38):
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
- In this method, KMS38 will be used for the activation in case the Windows version is not
|
||||
supported by HWID. For example, Windows 10 LTSC and Windows server.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
Activation Type Supported Product Activation Period
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Digital License - Windows 10 - Permanent
|
||||
KMS38 - Windows 10 / Server - Until the year 2038
|
||||
Online KMS - Windows / Server / Office - For 180 Days, renewal task needs to be
|
||||
created for lifetime auto-activation.
|
||||
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
* For more details, use the ReadMe.txt included in the respective activation folders.
|
@ -1,412 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:: =======================================================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' project.
|
||||
::
|
||||
:: Homepages-
|
||||
:: NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
:: GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
:: GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
::
|
||||
:: Maintained by @WindowsAddict
|
||||
::
|
||||
:: =======================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
title Protect / Unprotect KMS38 Activation
|
||||
set _elev=
|
||||
if /i "%~1"=="-el" set _elev=1
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
set "_psc=powershell"
|
||||
set "nul=1>nul 2>nul"
|
||||
set "Red="white" "DarkRed""
|
||||
set "Green="white" "DarkGreen""
|
||||
set "Magenta="white" "darkmagenta""
|
||||
set "Gray="white" "darkgray""
|
||||
set "Black="white" "Black""
|
||||
set "ELine=echo: &call :PU_color "==== ERROR ====" %Red% &echo:"
|
||||
set line=__________________________________________________________________________________________________
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%i in (powershell.exe) do if "%%~$path:i"=="" (
|
||||
echo: &echo ==== ERROR ==== &echo:
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 14393 (
|
||||
%ELine%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 10 / Server 1607 [14393] and later builds.
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
:: Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method.
|
||||
:: Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name.
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 && (
|
||||
goto :Passed
|
||||
) || (
|
||||
if defined _elev goto :E_Admin
|
||||
)
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_vbsf=%temp%\admin.vbs"
|
||||
set _PSarg="""%~f0""" -el
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
(
|
||||
echo Set strArg=WScript.Arguments.Named
|
||||
echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^)
|
||||
echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^)
|
||||
echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then
|
||||
echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^)
|
||||
echo End If
|
||||
echo End With
|
||||
echo .Terminate
|
||||
echo End With
|
||||
echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1
|
||||
)>"!_vbsf!"
|
||||
|
||||
(%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el) && (
|
||||
del /f /q "!_vbsf!"
|
||||
exit /b
|
||||
) || (
|
||||
del /f /q "!_vbsf!"
|
||||
%nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && (
|
||||
exit /b
|
||||
) || (
|
||||
goto :E_Admin
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:E_Admin
|
||||
%ELine%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto PU_Done
|
||||
|
||||
:Passed
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode con: cols=98 lines=30
|
||||
|
||||
set slp=SoftwareLicensingProduct
|
||||
set sls=SoftwareLicensingService
|
||||
set wApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
:: Written by @abbodi1406
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
:: Check Windows OS name
|
||||
|
||||
set winos=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
echo [1] Protect KMS38 Activation from being overwritten by 180 days KMS Activators
|
||||
echo:
|
||||
echo [2] Undo changes
|
||||
echo:
|
||||
echo [3] Exit
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
choice /C:123 /N /M "> Enter Your Choice [1,2,3] : "
|
||||
|
||||
if errorlevel 3 exit /b
|
||||
if errorlevel 2 goto Undo
|
||||
if errorlevel 1 goto Protect
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Protect
|
||||
|
||||
cls
|
||||
|
||||
:: Check KMS client setup key
|
||||
|
||||
set _gvlk=
|
||||
wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel 2>nul | findstr /i GVLK 1>nul && (set _gvlk=1)
|
||||
|
||||
if not defined _gvlk (
|
||||
%ELine%
|
||||
echo System is not activated with KMS38. ^(KMS Key is not installed^) Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Check Activation Grace Period
|
||||
|
||||
set gpr=
|
||||
for /f "tokens=2 delims==" %%# in ('"wmic path %slp% where (ApplicationID='%wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get GracePeriodRemaining /VALUE" ') do set "gpr=%%#"
|
||||
|
||||
if "%gpr%" LEQ "259200" (
|
||||
%ELine%
|
||||
echo System is not activated with KMS38. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Check SKU value
|
||||
|
||||
set SKU=
|
||||
for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a)
|
||||
|
||||
if "%osSKU%"=="" (
|
||||
%ELine%
|
||||
echo SKU value was not detected properly. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
set osedition=
|
||||
call :K38_CheckEdition %nul%
|
||||
|
||||
if "%osedition%"=="" (
|
||||
%ELine%
|
||||
echo OS Edition was not detected properly. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Check Activation ID
|
||||
|
||||
set app=
|
||||
for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%' and LicenseFamily='%osedition%' and Description like '%%KMSCLIENT%%') get ID /VALUE" 2^>nul') do set "app=%%a"
|
||||
|
||||
if "%app%"=="" (
|
||||
%ELine%
|
||||
echo Activation ID was not detected properly. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
wmic path %sls% where __CLASS='%sls%' call ClearKeyManagementServiceMachine %nul%
|
||||
wmic path %sls% where __CLASS='%sls%' call ClearKeyManagementServicePort %nul%
|
||||
|
||||
reg query "HKLM\%SPPk%\%wApp%" %nul% && (
|
||||
%nul% call :reg_takeownership "HKLM\%SPPk%\%wApp%" FullControl Allow S-1-5-32-544
|
||||
reg delete "HKLM\%SPPk%\%wApp%" /f %nul%
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul%
|
||||
)
|
||||
|
||||
reg query "HKLM\%SPPk%\%wApp%" %nul% && (
|
||||
%ELine%
|
||||
echo Registry Key was not cleared successfully. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Set specific KMS host to Local Host
|
||||
:: Thanks to @abbodi1406
|
||||
|
||||
set setkms_error=
|
||||
|
||||
wmic path %slp% where ID='%app%' call ClearKeyManagementServiceMachine %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call ClearKeyManagementServicePort %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call SetKeyManagementServiceMachine MachineName="127.0.0.2" %nul% || (set setkms_error=1)
|
||||
wmic path %slp% where ID='%app%' call SetKeyManagementServicePort 1688 %nul% || (set setkms_error=1)
|
||||
|
||||
if defined setkms_error (
|
||||
reg delete "HKLM\%SPPk%\%wApp%" /f %nul%
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul%
|
||||
%ELine%
|
||||
echo Specific KMS host to Local Host was not properly applied. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
%nul% call :reg_takeownership "HKLM\%SPPk%\%wApp%" "SetValue, Delete" Deny S-1-5-32-544
|
||||
|
||||
reg delete "HKLM\%SPPk%\%wApp%" /f %nul%
|
||||
reg query "HKLM\%SPPk%\%wApp%" %nul% || (
|
||||
%ELine%
|
||||
echo Registry Key was not protected properly. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
:: Check Activation Grace Period
|
||||
|
||||
set gpr=
|
||||
for /f "tokens=2 delims==" %%# in ('"wmic path %slp% where (ApplicationID='%wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get GracePeriodRemaining /VALUE" ') do set "gpr=%%#"
|
||||
|
||||
if "%gpr%" LEQ "259200" (
|
||||
%ELine%
|
||||
echo System is not activated with KMS38.
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
cls
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
echo Specific KMS host set to 127.0.0.2 ^(Local Host^) successfully.
|
||||
echo:
|
||||
echo Registry item locked successfully.
|
||||
echo HKLM\%SPPk%\%wApp%
|
||||
echo:
|
||||
call :PU_color "%winos% - KMS38 Activation is now protected." %Green%
|
||||
echo:
|
||||
echo Now you need to activate Office with KMS ^(If required^)
|
||||
echo:
|
||||
echo %line%
|
||||
|
||||
goto PU_Done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Undo
|
||||
|
||||
cls
|
||||
set exist_=
|
||||
reg query "HKLM\%SPPk%\%wApp%" %nul% && (set exist_=1)
|
||||
|
||||
if defined exist_ (
|
||||
%nul% call :reg_takeownership "HKLM\%SPPk%\%wApp%" FullControl Allow S-1-5-32-544
|
||||
reg delete "HKLM\%SPPk%\%wApp%" /f %nul%
|
||||
reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul%
|
||||
)
|
||||
|
||||
reg query "HKLM\%SPPk%\%wApp%" %nul% && (
|
||||
%ELine%
|
||||
echo Registry Key was not cleared successfully. Aborting...
|
||||
goto PU_Done
|
||||
)
|
||||
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
if defined exist_ (
|
||||
echo Registry item deleted successfully.
|
||||
echo HKLM\%SPPk%\%wApp%
|
||||
echo:
|
||||
call :PU_color "KMS38 Activation is now unprotected [set to default]" %Green%
|
||||
) else (
|
||||
call :PU_color "It is already unprotected [set to default]" %Green%
|
||||
)
|
||||
echo:
|
||||
echo %line%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:PU_Done
|
||||
echo:
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:PU_color
|
||||
|
||||
%_psc% write-host '%1' -fore '%2' -back '%3'
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Windows Edition with SKU value for better accuracy
|
||||
|
||||
:K38_CheckEdition
|
||||
|
||||
for %%# in (
|
||||
4-Enterprise
|
||||
7-ServerStandard
|
||||
8-ServerDatacenter
|
||||
27-EnterpriseN
|
||||
48-Professional
|
||||
49-ProfessionalN
|
||||
50-ServerSolution
|
||||
98-CoreN
|
||||
99-CoreCountrySpecific
|
||||
100-CoreSingleLanguage
|
||||
101-Core
|
||||
110-ServerCloudStorage
|
||||
120-ServerARM64
|
||||
121-Education
|
||||
122-EducationN
|
||||
125-EnterpriseS
|
||||
126-EnterpriseSN
|
||||
145-ServerDatacenterACor
|
||||
146-ServerStandardACor
|
||||
161-ProfessionalWorkstation
|
||||
162-ProfessionalWorkstationN
|
||||
164-ProfessionalEducation
|
||||
165-ProfessionalEducationN
|
||||
168-ServerAzureCor
|
||||
171-EnterpriseG
|
||||
172-EnterpriseGN
|
||||
175-ServerRdsh
|
||||
183-CloudE
|
||||
) do for /f "tokens=1,2 delims=-" %%A in ("%%#") do (
|
||||
if %osSKU%==%%A set "osedition=%%B"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Reg_takeownership snippet
|
||||
:: Written by @AveYo aka @BAU
|
||||
:: pastebin.com/XTPt0JSC
|
||||
|
||||
:reg_takeownership
|
||||
set "pargs=$regkey='%~1'; $p='%~2'; $a='%~3'; $u='%~4'; $o='%~5';"
|
||||
%_psc% "%pargs%; $f=[io.file]::ReadAllText('!_batp!') -split ':ps_reg_own\:.*';iex ($f[1]);" & exit/b:ps_reg_own:
|
||||
$dll0='[DllImport("ntdll.dll")]public static extern IntPtr RtlAdjustPrivilege(int a,bool b,bool c,ref bool d);';
|
||||
$nt=Add-Type -Member $dll0 -Name Nt -PassThru; foreach($i in @(9,17,18)){$null=$nt::RtlAdjustPrivilege($i,1,0,[ref]0)}
|
||||
$root=$true; if($o -eq ''){$o=$u}; $rk=$regkey -split '\\',2; $key=$rk[1];
|
||||
switch -regex ($rk[0]){ '[mM]'{$HK='LocalMachine'};'[uU]'{$HK='CurrentUser'};default{$HK='ClassesRoot'}; }
|
||||
$usr=0,0,0; $sec=0,0,0; $rule=0,0,0; $perm='FullControl',$p,$p; $access='Allow',$a,$a; $s=$o,$u,'S-1-5-32-544';
|
||||
for($i=0;$i -le 2;$i++){ $usr[$i]=[System.Security.Principal.SecurityIdentifier]$s[$i];
|
||||
$rule[$i]=[System.Security.AccessControl.RegistryAccessRule]::new($usr[$i], $perm[$i], 3, 0, $access[$i]);
|
||||
$sec[$i]=[System.Security.AccessControl.RegistrySecurity]::new(); }
|
||||
function Reg_TakeOwnership { param($hive, $key, $root=$false);
|
||||
$reg=[Microsoft.Win32.Registry]::$hive.OpenSubKey($key,'ReadWriteSubTree','TakeOwnership'); $sec[2].SetOwner($usr[2]);
|
||||
$reg.SetAccessControl($sec[2]); if($root){ $reg=$reg.OpenSubKey('','ReadWriteSubTree','ChangePermissions');
|
||||
$acl=$reg.GetAccessControl(); $acl.SetAccessRuleProtection($false,$false); $acl.ResetAccessRule($rule[1]);
|
||||
$reg.SetAccessControl($acl); } $sec[0].SetOwner($usr[0]); $reg.SetAccessControl($sec[0]); }
|
||||
Reg_TakeOwnership $HK $key $true; if($root){ $r=[Microsoft.Win32.Registry]::$HK.OpenSubKey($key);
|
||||
foreach($sk in $r.GetSubKeyNames()){try{ Reg_TakeOwnership $HK "$($key+'\\'+$sk)" $false}catch{} }}
|
||||
Get-Acl "$($rk[0]+':\\'+$rk[1])" | fl:ps_reg_own:
|
||||
|
||||
::========================================================================================================================================
|
@ -1,48 +0,0 @@
|
||||
====================================================================================================
|
||||
KMS38 Protection:
|
||||
====================================================================================================
|
||||
|
||||
- If you don't know what KMS38 is, then first check it in the Read Me.
|
||||
|
||||
- By default, a KMS38 Activation is vulnerable to unintended overwriting/replacement and
|
||||
neutralization by a 180-Day KMS Activator (non-KMS38 Activator).
|
||||
However, with a few tricks you can ensure that no alternative KMS Activator can replace KMS38
|
||||
Activation by accident or even on purpose. This script demonstrate how to do/undo that.
|
||||
|
||||
- Protect KMS38:
|
||||
- How does KMS38 Protection work?
|
||||
In the KMS activation method, the Windows Operating System first checks the KMS IP registered
|
||||
as a specific KMS, and if that is not defined then it checks the Global KMS IP.
|
||||
Another fact is that if LocalHost (127.0.0.2) is defined as KMS IP in the Windows 8.1 and 10 OS's
|
||||
then Windows will not accept it as a valid KMS IP.
|
||||
This script simply utilizes the above facts to protect the KMS38 activation from being
|
||||
overwritten by any alternative 'normal' 180-Day KMS Activation.
|
||||
|
||||
Script steps-
|
||||
- Check if Windows is activated with KMS38, if yes,
|
||||
- Set that Windows edition specific KMS IP to LocalHost (127.0.0.2),
|
||||
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\55c92734-d682-4d71-983e-d6ec3f16059f\XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
||||
where X is Windows edition Activation ID.
|
||||
|
||||
- Lock this Registry with Reg_takeownership snippet by @AveYo aka @BAU
|
||||
pastebin.com/XTPt0JSC
|
||||
- Done.
|
||||
|
||||
- Unprotect KMS38:
|
||||
- Just undo above steps,
|
||||
- Give administrator full control of that mentioned registry key.
|
||||
- Delete that registry key.
|
||||
- Done.
|
||||
|
||||
=======================================================================================================
|
||||
|
||||
This script is a part of 'Microsoft Activation Scripts' project.
|
||||
|
||||
Homepages-
|
||||
NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/
|
||||
GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts
|
||||
GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts
|
||||
|
||||
Maintained by @WindowsAddict
|
||||
|
||||
=======================================================================================================
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user