mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-16 11:48:06 +01:00
[installer] Auto-start PowerToys as logged-in user from installer run… (#27793)
* [installer] Auto-start PowerToys as logged-in user from installer running as SYSTEM * spellcheck * Address feedback * spellcheck
This commit is contained in:
186
.github/actions/spell-check/expect.txt
vendored
186
.github/actions/spell-check/expect.txt
vendored
@@ -1,28 +1,15 @@
|
|||||||
aaaa
|
aaaa
|
||||||
AAAAEF
|
|
||||||
AAB
|
|
||||||
AABAD
|
|
||||||
AACB
|
|
||||||
AACD
|
|
||||||
AAD
|
|
||||||
AADF
|
|
||||||
abap
|
|
||||||
abcdefghjkmnpqrstuvxyz
|
abcdefghjkmnpqrstuvxyz
|
||||||
ABE
|
|
||||||
abgr
|
abgr
|
||||||
abi
|
abi
|
||||||
ABlocked
|
ABlocked
|
||||||
ABOUTBOX
|
ABOUTBOX
|
||||||
Abug
|
Abug
|
||||||
ACA
|
|
||||||
accctrl
|
accctrl
|
||||||
Acceleratorkeys
|
Acceleratorkeys
|
||||||
ACCEPTFILES
|
ACCEPTFILES
|
||||||
ACCESSDENIED
|
ACCESSDENIED
|
||||||
accessibilityinsights
|
accessibilityinsights
|
||||||
ACDB
|
|
||||||
ACFC
|
|
||||||
ACFF
|
|
||||||
Acl
|
Acl
|
||||||
aclapi
|
aclapi
|
||||||
AClient
|
AClient
|
||||||
@@ -40,18 +27,7 @@ adml
|
|||||||
admx
|
admx
|
||||||
advapi
|
advapi
|
||||||
advfirewall
|
advfirewall
|
||||||
AEAA
|
|
||||||
AEAD
|
|
||||||
AECC
|
|
||||||
AED
|
|
||||||
AEE
|
|
||||||
AEEB
|
|
||||||
AFAE
|
|
||||||
AFAEFC
|
|
||||||
AFDA
|
|
||||||
AFE
|
|
||||||
AFeature
|
AFeature
|
||||||
AFFE
|
|
||||||
AFFINETRANSFORM
|
AFFINETRANSFORM
|
||||||
AFX
|
AFX
|
||||||
AGGREGATABLE
|
AGGREGATABLE
|
||||||
@@ -77,7 +53,6 @@ ansicolor
|
|||||||
ANull
|
ANull
|
||||||
AOC
|
AOC
|
||||||
aocfnapldcnfbofgmbbllojgocaelgdd
|
aocfnapldcnfbofgmbbllojgocaelgdd
|
||||||
AOT
|
|
||||||
APARTMENTTHREADED
|
APARTMENTTHREADED
|
||||||
APeriod
|
APeriod
|
||||||
apidl
|
apidl
|
||||||
@@ -143,36 +118,13 @@ AValid
|
|||||||
awakeness
|
awakeness
|
||||||
AWAYMODE
|
AWAYMODE
|
||||||
AYUV
|
AYUV
|
||||||
azcli
|
|
||||||
azman
|
azman
|
||||||
azor
|
|
||||||
backtracer
|
backtracer
|
||||||
BAF
|
|
||||||
bak
|
bak
|
||||||
BBE
|
|
||||||
bbwe
|
bbwe
|
||||||
BCA
|
|
||||||
BCB
|
|
||||||
BCCE
|
|
||||||
BCCEA
|
|
||||||
bck
|
bck
|
||||||
BDB
|
|
||||||
BDBAD
|
|
||||||
BDCC
|
|
||||||
BDDF
|
|
||||||
BDFB
|
|
||||||
BEAA
|
|
||||||
BEB
|
|
||||||
BEEAADF
|
|
||||||
BEEC
|
|
||||||
BEFA
|
|
||||||
betadele
|
betadele
|
||||||
betsegaw
|
betsegaw
|
||||||
BFC
|
|
||||||
BFDE
|
|
||||||
BFEB
|
|
||||||
BFF
|
|
||||||
BFFA
|
|
||||||
BGR
|
BGR
|
||||||
bgra
|
bgra
|
||||||
bhid
|
bhid
|
||||||
@@ -227,48 +179,28 @@ BValue
|
|||||||
byapp
|
byapp
|
||||||
BYPOSITION
|
BYPOSITION
|
||||||
bytearray
|
bytearray
|
||||||
CABD
|
|
||||||
CALG
|
CALG
|
||||||
callbackptr
|
callbackptr
|
||||||
calpwstr
|
calpwstr
|
||||||
cameligo
|
|
||||||
Cangjie
|
Cangjie
|
||||||
CANRENAME
|
CANRENAME
|
||||||
CAPTUREBLT
|
CAPTUREBLT
|
||||||
CAPTURECHANGED
|
CAPTURECHANGED
|
||||||
CAtl
|
CAtl
|
||||||
CBA
|
|
||||||
CBB
|
|
||||||
CBF
|
|
||||||
CCCCDE
|
|
||||||
cch
|
cch
|
||||||
CCHDEVICENAME
|
CCHDEVICENAME
|
||||||
CCHFORMNAME
|
CCHFORMNAME
|
||||||
CCom
|
CCom
|
||||||
CContext
|
CContext
|
||||||
CDAC
|
|
||||||
CDBF
|
|
||||||
CDCE
|
|
||||||
CDD
|
|
||||||
CDE
|
|
||||||
cdecl
|
cdecl
|
||||||
CDeclaration
|
CDeclaration
|
||||||
CDEF
|
CDEF
|
||||||
cdpx
|
cdpx
|
||||||
CEAF
|
|
||||||
CEBAC
|
|
||||||
CEBD
|
|
||||||
CECB
|
|
||||||
CElems
|
CElems
|
||||||
CENTERALIGN
|
CENTERALIGN
|
||||||
ceq
|
ceq
|
||||||
certlm
|
certlm
|
||||||
certmgr
|
certmgr
|
||||||
CFAADB
|
|
||||||
CFBBF
|
|
||||||
CFEE
|
|
||||||
CFFEE
|
|
||||||
CFFF
|
|
||||||
cguid
|
cguid
|
||||||
CHANGECBCHAIN
|
CHANGECBCHAIN
|
||||||
changecursor
|
changecursor
|
||||||
@@ -346,7 +278,6 @@ comsupp
|
|||||||
comsuppw
|
comsuppw
|
||||||
comsuppwd
|
comsuppwd
|
||||||
comutil
|
comutil
|
||||||
concrt
|
|
||||||
CONFIGW
|
CONFIGW
|
||||||
CONFLICTINGMODIFIERKEY
|
CONFLICTINGMODIFIERKEY
|
||||||
CONFLICTINGMODIFIERSHORTCUT
|
CONFLICTINGMODIFIERSHORTCUT
|
||||||
@@ -414,10 +345,8 @@ CYSCREEN
|
|||||||
CYSMICON
|
CYSMICON
|
||||||
CYVIRTUALSCREEN
|
CYVIRTUALSCREEN
|
||||||
cziplib
|
cziplib
|
||||||
DAA
|
|
||||||
Dac
|
Dac
|
||||||
dacl
|
dacl
|
||||||
DAF
|
|
||||||
damienleroy
|
damienleroy
|
||||||
DARKPURPLE
|
DARKPURPLE
|
||||||
DARKTEAL
|
DARKTEAL
|
||||||
@@ -429,30 +358,18 @@ dataversion
|
|||||||
DATAW
|
DATAW
|
||||||
davidegiacometti
|
davidegiacometti
|
||||||
Dayof
|
Dayof
|
||||||
DBAE
|
|
||||||
DBB
|
|
||||||
DBBDA
|
|
||||||
DBDE
|
|
||||||
Dbg
|
Dbg
|
||||||
Dbghelp
|
Dbghelp
|
||||||
DBLCLKS
|
DBLCLKS
|
||||||
DBLEPSILON
|
DBLEPSILON
|
||||||
DCAB
|
|
||||||
DCapture
|
DCapture
|
||||||
DCBA
|
DCBA
|
||||||
DCBC
|
|
||||||
DCCB
|
|
||||||
DCEFCB
|
|
||||||
DCF
|
|
||||||
DCOM
|
DCOM
|
||||||
dcommon
|
dcommon
|
||||||
dcomp
|
dcomp
|
||||||
dcompi
|
|
||||||
DComposition
|
DComposition
|
||||||
dcr
|
dcr
|
||||||
dcs
|
dcs
|
||||||
DDCDD
|
|
||||||
DDCE
|
|
||||||
DDEIf
|
DDEIf
|
||||||
DDevice
|
DDevice
|
||||||
ddf
|
ddf
|
||||||
@@ -463,7 +380,6 @@ debugbreak
|
|||||||
DECLAR
|
DECLAR
|
||||||
declspec
|
declspec
|
||||||
decryptor
|
decryptor
|
||||||
DED
|
|
||||||
Dedup
|
Dedup
|
||||||
DEFAULTBOOTSTRAPPERINSTALLFOLDER
|
DEFAULTBOOTSTRAPPERINSTALLFOLDER
|
||||||
DEFAULTCOLOR
|
DEFAULTCOLOR
|
||||||
@@ -485,7 +401,6 @@ DENORMAL
|
|||||||
Deondre
|
Deondre
|
||||||
depersist
|
depersist
|
||||||
deprioritized
|
deprioritized
|
||||||
depsfileslistspath
|
|
||||||
deref
|
deref
|
||||||
DESKTOPABSOLUTEEDITING
|
DESKTOPABSOLUTEEDITING
|
||||||
DESKTOPABSOLUTEPARSING
|
DESKTOPABSOLUTEPARSING
|
||||||
@@ -500,9 +415,6 @@ DEVMODEW
|
|||||||
DEVMON
|
DEVMON
|
||||||
devpkey
|
devpkey
|
||||||
DEVSOURCE
|
DEVSOURCE
|
||||||
DFAB
|
|
||||||
DFB
|
|
||||||
DFBEA
|
|
||||||
DIIRFLAG
|
DIIRFLAG
|
||||||
dimm
|
dimm
|
||||||
directshow
|
directshow
|
||||||
@@ -549,13 +461,11 @@ dvr
|
|||||||
DVSD
|
DVSD
|
||||||
DVSL
|
DVSL
|
||||||
DVTARGETDEVICE
|
DVTARGETDEVICE
|
||||||
DWINRT
|
|
||||||
dwl
|
dwl
|
||||||
dwm
|
dwm
|
||||||
dwmapi
|
dwmapi
|
||||||
DWMCOLORIZATIONCOLORCHANGED
|
DWMCOLORIZATIONCOLORCHANGED
|
||||||
DWMCOMPOSITIONCHANGED
|
DWMCOMPOSITIONCHANGED
|
||||||
dwmcorei
|
|
||||||
DWMNCRENDERINGCHANGED
|
DWMNCRENDERINGCHANGED
|
||||||
Dwmp
|
Dwmp
|
||||||
DWMSENDICONICLIVEPREVIEWBITMAP
|
DWMSENDICONICLIVEPREVIEWBITMAP
|
||||||
@@ -571,41 +481,13 @@ dxgi
|
|||||||
dxgidebug
|
dxgidebug
|
||||||
dxgiformat
|
dxgiformat
|
||||||
dxguid
|
dxguid
|
||||||
EAAFE
|
|
||||||
EABF
|
|
||||||
EAC
|
|
||||||
EADC
|
|
||||||
EAF
|
|
||||||
EBCF
|
|
||||||
EBD
|
|
||||||
EBE
|
|
||||||
ecl
|
|
||||||
ecount
|
ecount
|
||||||
EData
|
EData
|
||||||
EDB
|
|
||||||
EDCCC
|
|
||||||
EDFAE
|
|
||||||
Edid
|
Edid
|
||||||
edis
|
|
||||||
EDITKEYBOARD
|
EDITKEYBOARD
|
||||||
editkeyboardwindow
|
editkeyboardwindow
|
||||||
EDITSHORTCUTS
|
EDITSHORTCUTS
|
||||||
editshortcutswindow
|
editshortcutswindow
|
||||||
edshift
|
|
||||||
EEA
|
|
||||||
EEB
|
|
||||||
EEBBE
|
|
||||||
EEBD
|
|
||||||
EED
|
|
||||||
EEDA
|
|
||||||
EEEE
|
|
||||||
EEF
|
|
||||||
EEFA
|
|
||||||
EFB
|
|
||||||
EFC
|
|
||||||
EFDD
|
|
||||||
EFE
|
|
||||||
EFFEFC
|
|
||||||
EFile
|
EFile
|
||||||
eip
|
eip
|
||||||
ekus
|
ekus
|
||||||
@@ -634,7 +516,6 @@ ERRORTITLE
|
|||||||
ESettings
|
ESettings
|
||||||
esize
|
esize
|
||||||
esrp
|
esrp
|
||||||
estructuredtext
|
|
||||||
etl
|
etl
|
||||||
etstat
|
etstat
|
||||||
etw
|
etw
|
||||||
@@ -672,45 +553,14 @@ EXTENDEDKEY
|
|||||||
EXTENDEDVERBS
|
EXTENDEDVERBS
|
||||||
EXTRINSICPROPERTIES
|
EXTRINSICPROPERTIES
|
||||||
eyetracker
|
eyetracker
|
||||||
FABC
|
|
||||||
FAEDDA
|
|
||||||
FAF
|
|
||||||
FAFD
|
|
||||||
fancymouse
|
fancymouse
|
||||||
fancyzone
|
fancyzone
|
||||||
FANCYZONESDRAWLAYOUTTEST
|
FANCYZONESDRAWLAYOUTTEST
|
||||||
FANCYZONESEDITOR
|
FANCYZONESEDITOR
|
||||||
Farbraum
|
Farbraum
|
||||||
FARPROC
|
FARPROC
|
||||||
FBB
|
|
||||||
FBC
|
|
||||||
FBDE
|
|
||||||
FBF
|
|
||||||
FCAE
|
|
||||||
FCB
|
|
||||||
FCCFF
|
|
||||||
FCD
|
|
||||||
FCDB
|
|
||||||
FCDD
|
|
||||||
FCE
|
|
||||||
FDB
|
|
||||||
FDBF
|
|
||||||
FDC
|
|
||||||
FDCD
|
|
||||||
FDE
|
|
||||||
FDEF
|
|
||||||
FDF
|
|
||||||
fdw
|
fdw
|
||||||
FECF
|
|
||||||
FEDF
|
|
||||||
FEEF
|
|
||||||
feimage
|
feimage
|
||||||
FFB
|
|
||||||
FFBCF
|
|
||||||
FFBE
|
|
||||||
FFDDD
|
|
||||||
FFEB
|
|
||||||
FFEBEF
|
|
||||||
fff
|
fff
|
||||||
fileapi
|
fileapi
|
||||||
FILEEXPLORER
|
FILEEXPLORER
|
||||||
@@ -787,14 +637,12 @@ GPOCA
|
|||||||
gpp
|
gpp
|
||||||
GPT
|
GPT
|
||||||
gpu
|
gpu
|
||||||
graphql
|
|
||||||
GSM
|
GSM
|
||||||
gtm
|
gtm
|
||||||
gui
|
gui
|
||||||
guiddata
|
guiddata
|
||||||
guiddef
|
guiddef
|
||||||
guidgenerator
|
guidgenerator
|
||||||
GUIDv
|
|
||||||
GUITHREADINFO
|
GUITHREADINFO
|
||||||
GValue
|
GValue
|
||||||
gwl
|
gwl
|
||||||
@@ -1022,7 +870,6 @@ JPN
|
|||||||
jpnime
|
jpnime
|
||||||
Jsons
|
Jsons
|
||||||
jsonval
|
jsonval
|
||||||
julia
|
|
||||||
junja
|
junja
|
||||||
jxr
|
jxr
|
||||||
jyuwono
|
jyuwono
|
||||||
@@ -1047,11 +894,9 @@ keynum
|
|||||||
keyremaps
|
keyremaps
|
||||||
Keytool
|
Keytool
|
||||||
keyup
|
keyup
|
||||||
Kfiles
|
|
||||||
KILLFOCUS
|
KILLFOCUS
|
||||||
killrunner
|
killrunner
|
||||||
Knownfolders
|
Knownfolders
|
||||||
kotlin
|
|
||||||
KSPROPERTY
|
KSPROPERTY
|
||||||
Kybd
|
Kybd
|
||||||
LAlt
|
LAlt
|
||||||
@@ -1083,7 +928,6 @@ LError
|
|||||||
Lessthan
|
Lessthan
|
||||||
LEVELID
|
LEVELID
|
||||||
LExit
|
LExit
|
||||||
lexon
|
|
||||||
lhs
|
lhs
|
||||||
lhwnd
|
lhwnd
|
||||||
LIBID
|
LIBID
|
||||||
@@ -1283,7 +1127,6 @@ msc
|
|||||||
msclr
|
msclr
|
||||||
mscorlib
|
mscorlib
|
||||||
msdata
|
msdata
|
||||||
msdax
|
|
||||||
msedge
|
msedge
|
||||||
MSGFLT
|
MSGFLT
|
||||||
MSIFASTINSTALL
|
MSIFASTINSTALL
|
||||||
@@ -1300,7 +1143,6 @@ msrc
|
|||||||
msstore
|
msstore
|
||||||
mst
|
mst
|
||||||
msvc
|
msvc
|
||||||
msvcp
|
|
||||||
MTND
|
MTND
|
||||||
Mul
|
Mul
|
||||||
MULTIPLEUSE
|
MULTIPLEUSE
|
||||||
@@ -1310,7 +1152,6 @@ mwb
|
|||||||
MWBEx
|
MWBEx
|
||||||
myfile
|
myfile
|
||||||
MYICON
|
MYICON
|
||||||
mysql
|
|
||||||
NAMECHANGE
|
NAMECHANGE
|
||||||
nameof
|
nameof
|
||||||
namespaceanddescendants
|
namespaceanddescendants
|
||||||
@@ -1360,7 +1201,6 @@ NIF
|
|||||||
nint
|
nint
|
||||||
NLD
|
NLD
|
||||||
NLog
|
NLog
|
||||||
nls
|
|
||||||
NLSTEXT
|
NLSTEXT
|
||||||
NNN
|
NNN
|
||||||
NOACTIVATE
|
NOACTIVATE
|
||||||
@@ -1490,7 +1330,6 @@ PARENTRELATIVEPARSING
|
|||||||
PArgb
|
PArgb
|
||||||
parray
|
parray
|
||||||
PARTIALCONFIRMATIONDIALOGTITLE
|
PARTIALCONFIRMATIONDIALOGTITLE
|
||||||
pascaligo
|
|
||||||
pasteplain
|
pasteplain
|
||||||
PATCOPY
|
PATCOPY
|
||||||
pathcch
|
pathcch
|
||||||
@@ -1532,7 +1371,6 @@ pfn
|
|||||||
pfo
|
pfo
|
||||||
pft
|
pft
|
||||||
pgp
|
pgp
|
||||||
pgsql
|
|
||||||
pguid
|
pguid
|
||||||
PHANDLE
|
PHANDLE
|
||||||
phbm
|
phbm
|
||||||
@@ -1560,12 +1398,10 @@ Pnp
|
|||||||
Popups
|
Popups
|
||||||
POPUPWINDOW
|
POPUPWINDOW
|
||||||
posix
|
posix
|
||||||
postiats
|
|
||||||
poweraccent
|
poweraccent
|
||||||
powerlauncher
|
powerlauncher
|
||||||
POWEROCR
|
POWEROCR
|
||||||
powerpreview
|
powerpreview
|
||||||
powerquery
|
|
||||||
powerrename
|
powerrename
|
||||||
POWERRENAMECONTEXTMENU
|
POWERRENAMECONTEXTMENU
|
||||||
powerrenameinput
|
powerrenameinput
|
||||||
@@ -1607,9 +1443,9 @@ printmanagement
|
|||||||
prm
|
prm
|
||||||
proactively
|
proactively
|
||||||
PROCESSKEY
|
PROCESSKEY
|
||||||
|
processthreadsapi
|
||||||
PRODEXT
|
PRODEXT
|
||||||
PRODUCTVERSION
|
PRODUCTVERSION
|
||||||
productwxspath
|
|
||||||
Progman
|
Progman
|
||||||
programdata
|
programdata
|
||||||
PROGRAMFILES
|
PROGRAMFILES
|
||||||
@@ -1686,7 +1522,6 @@ RECTL
|
|||||||
rectp
|
rectp
|
||||||
rects
|
rects
|
||||||
redirectedfrom
|
redirectedfrom
|
||||||
redis
|
|
||||||
Redist
|
Redist
|
||||||
redistributable
|
redistributable
|
||||||
reencode
|
reencode
|
||||||
@@ -1719,7 +1554,6 @@ REMAPSUCCESSFUL
|
|||||||
REMAPUNSUCCESSFUL
|
REMAPUNSUCCESSFUL
|
||||||
Remotable
|
Remotable
|
||||||
remoteip
|
remoteip
|
||||||
Removedir
|
|
||||||
Removelnk
|
Removelnk
|
||||||
renamable
|
renamable
|
||||||
RENAMEONCOLLISION
|
RENAMEONCOLLISION
|
||||||
@@ -1786,7 +1620,6 @@ rungameid
|
|||||||
RUNLEVEL
|
RUNLEVEL
|
||||||
runsettings
|
runsettings
|
||||||
runtimeclass
|
runtimeclass
|
||||||
runtimedepsjsonpath
|
|
||||||
runtimeobject
|
runtimeobject
|
||||||
runtimepack
|
runtimepack
|
||||||
runtimes
|
runtimes
|
||||||
@@ -1894,6 +1727,7 @@ SHOWNOACTIVATE
|
|||||||
SHOWNORMAL
|
SHOWNORMAL
|
||||||
SHOWWINDOW
|
SHOWWINDOW
|
||||||
shtypes
|
shtypes
|
||||||
|
sia
|
||||||
SIATTRIBFLAGS
|
SIATTRIBFLAGS
|
||||||
SICHINT
|
SICHINT
|
||||||
sid
|
sid
|
||||||
@@ -2028,7 +1862,6 @@ SYSMENU
|
|||||||
SYSTEMAPPS
|
SYSTEMAPPS
|
||||||
systemroot
|
systemroot
|
||||||
SYSTEMTIME
|
SYSTEMTIME
|
||||||
systemverilog
|
|
||||||
sysvol
|
sysvol
|
||||||
Tadele
|
Tadele
|
||||||
talynone
|
talynone
|
||||||
@@ -2048,7 +1881,6 @@ taskkill
|
|||||||
tasklist
|
tasklist
|
||||||
taskschd
|
taskschd
|
||||||
tchar
|
tchar
|
||||||
tcl
|
|
||||||
Tcollab
|
Tcollab
|
||||||
tcp
|
tcp
|
||||||
tcs
|
tcs
|
||||||
@@ -2071,7 +1903,6 @@ textblock
|
|||||||
TEXTEXTRACTOR
|
TEXTEXTRACTOR
|
||||||
TEXTINCLUDE
|
TEXTINCLUDE
|
||||||
tgz
|
tgz
|
||||||
themeresources
|
|
||||||
THH
|
THH
|
||||||
THICKFRAME
|
THICKFRAME
|
||||||
THISCOMPONENT
|
THISCOMPONENT
|
||||||
@@ -2122,9 +1953,7 @@ TYPESHORTCUT
|
|||||||
UAC
|
UAC
|
||||||
UAL
|
UAL
|
||||||
uap
|
uap
|
||||||
uby
|
|
||||||
udit
|
udit
|
||||||
Udk
|
|
||||||
Udp
|
Udp
|
||||||
uefi
|
uefi
|
||||||
UHash
|
UHash
|
||||||
@@ -2169,6 +1998,7 @@ USEDEFAULT
|
|||||||
USEFILEATTRIBUTES
|
USEFILEATTRIBUTES
|
||||||
USERDATA
|
USERDATA
|
||||||
USERDOMAIN
|
USERDOMAIN
|
||||||
|
Userenv
|
||||||
userprofile
|
userprofile
|
||||||
USESHOWWINDOW
|
USESHOWWINDOW
|
||||||
USESTDHANDLES
|
USESTDHANDLES
|
||||||
@@ -2186,16 +2016,12 @@ valuegenerator
|
|||||||
Vanara
|
Vanara
|
||||||
variantassignment
|
variantassignment
|
||||||
vcamp
|
vcamp
|
||||||
vccorlib
|
|
||||||
vcdl
|
vcdl
|
||||||
vcgtq
|
vcgtq
|
||||||
VCINSTALLDIR
|
VCINSTALLDIR
|
||||||
vcm
|
vcm
|
||||||
vcomp
|
|
||||||
Vcpkg
|
Vcpkg
|
||||||
vcproj
|
|
||||||
VCRT
|
VCRT
|
||||||
vcruntime
|
|
||||||
vcvars
|
vcvars
|
||||||
VDesktop
|
VDesktop
|
||||||
vdi
|
vdi
|
||||||
@@ -2308,7 +2134,7 @@ WINL
|
|||||||
winlogon
|
winlogon
|
||||||
winmd
|
winmd
|
||||||
winmm
|
winmm
|
||||||
WINNT
|
winnt
|
||||||
winres
|
winres
|
||||||
winrt
|
winrt
|
||||||
winsdk
|
winsdk
|
||||||
@@ -2353,7 +2179,6 @@ workspaces
|
|||||||
wox
|
wox
|
||||||
wparam
|
wparam
|
||||||
wpf
|
wpf
|
||||||
wpfdepsjsonpath
|
|
||||||
wpftmp
|
wpftmp
|
||||||
wpr
|
wpr
|
||||||
wprp
|
wprp
|
||||||
@@ -2380,7 +2205,6 @@ WTS
|
|||||||
wtsapi
|
wtsapi
|
||||||
WTSAT
|
WTSAT
|
||||||
Wubi
|
Wubi
|
||||||
wuceffectsi
|
|
||||||
WVC
|
WVC
|
||||||
Wwan
|
Wwan
|
||||||
Wwanpp
|
Wwanpp
|
||||||
@@ -2392,7 +2216,6 @@ XBUTTON
|
|||||||
XBUTTONDBLCLK
|
XBUTTONDBLCLK
|
||||||
XBUTTONDOWN
|
XBUTTONDOWN
|
||||||
XBUTTONUP
|
XBUTTONUP
|
||||||
xcopy
|
|
||||||
XDocument
|
XDocument
|
||||||
XDOWN
|
XDOWN
|
||||||
XElement
|
XElement
|
||||||
@@ -2417,7 +2240,6 @@ yinwang
|
|||||||
yinyue
|
yinyue
|
||||||
YOffset
|
YOffset
|
||||||
YPels
|
YPels
|
||||||
ypescript
|
|
||||||
YResolution
|
YResolution
|
||||||
YStr
|
YStr
|
||||||
YUY
|
YUY
|
||||||
|
|||||||
@@ -133,6 +133,7 @@
|
|||||||
<InstallExecuteSequence>
|
<InstallExecuteSequence>
|
||||||
<Custom Action="DetectPrevInstallPath" After="AppSearch" />
|
<Custom Action="DetectPrevInstallPath" After="AppSearch" />
|
||||||
<Custom Action="SetRegisterPowerToysSchTaskParam" Before="RegisterPowerToysSchTask" />
|
<Custom Action="SetRegisterPowerToysSchTaskParam" Before="RegisterPowerToysSchTask" />
|
||||||
|
<Custom Action="SetLaunchPowerToysParam" Before="LaunchPowerToys" />
|
||||||
<Custom Action="SetApplyModulesRegistryChangeSetsParam" Before="ApplyModulesRegistryChangeSets" />
|
<Custom Action="SetApplyModulesRegistryChangeSetsParam" Before="ApplyModulesRegistryChangeSets" />
|
||||||
<Custom Action="SetUnApplyModulesRegistryChangeSetsParam" Before="UnApplyModulesRegistryChangeSets" />
|
<Custom Action="SetUnApplyModulesRegistryChangeSetsParam" Before="UnApplyModulesRegistryChangeSets" />
|
||||||
<Custom Action="RegisterPowerToysSchTask" After="InstallFiles">
|
<Custom Action="RegisterPowerToysSchTask" After="InstallFiles">
|
||||||
@@ -171,17 +172,22 @@
|
|||||||
</Custom>-->
|
</Custom>-->
|
||||||
<Custom Action="TerminateProcesses" Before="InstallValidate" />
|
<Custom Action="TerminateProcesses" Before="InstallValidate" />
|
||||||
|
|
||||||
<Custom Action="LaunchPowerToys" After="InstallFinalize">NOT Installed</Custom>
|
<Custom Action="LaunchPowerToys" Before="InstallFinalize">NOT Installed</Custom>
|
||||||
|
|
||||||
</InstallExecuteSequence>
|
</InstallExecuteSequence>
|
||||||
|
|
||||||
|
<CustomAction Id="SetLaunchPowerToysParam"
|
||||||
|
Property="LaunchPowerToys"
|
||||||
|
Value="[INSTALLFOLDER]" />
|
||||||
|
|
||||||
<CustomAction
|
<CustomAction
|
||||||
Id="LaunchPowerToys"
|
Id="LaunchPowerToys"
|
||||||
Execute="immediate"
|
Return="ignore"
|
||||||
Impersonate="yes"
|
Impersonate="yes"
|
||||||
Return="asyncNoWait"
|
Execute="deferred"
|
||||||
FileKey="PowerToys.exe"
|
BinaryKey="PTCustomActions"
|
||||||
ExeCommand="--dont-elevate" />
|
DllEntry="LaunchPowerToysCA"
|
||||||
|
/>
|
||||||
|
|
||||||
<CustomAction
|
<CustomAction
|
||||||
Id="TerminateProcesses"
|
Id="TerminateProcesses"
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
#include "RcResource.h"
|
#include "RcResource.h"
|
||||||
#include <ProjectTelemetry.h>
|
#include <ProjectTelemetry.h>
|
||||||
|
|
||||||
#include <spdlog/sinks/base_sink.h>
|
#include <spdlog/sinks/base_sink.h>
|
||||||
|
|
||||||
#include "../../src/common/logger/logger.h"
|
#include "../../src/common/logger/logger.h"
|
||||||
@@ -16,6 +15,11 @@
|
|||||||
#include <winrt/Windows.Foundation.h>
|
#include <winrt/Windows.Foundation.h>
|
||||||
#include <winrt/Windows.Management.Deployment.h>
|
#include <winrt/Windows.Management.Deployment.h>
|
||||||
|
|
||||||
|
#include <wtsapi32.h>
|
||||||
|
#include <processthreadsapi.h>
|
||||||
|
#include <UserEnv.h>
|
||||||
|
#include <winnt.h>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
HINSTANCE DLL_HANDLE = nullptr;
|
HINSTANCE DLL_HANDLE = nullptr;
|
||||||
@@ -50,6 +54,160 @@ LExit:
|
|||||||
return hr;
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOL IsLocalSystem()
|
||||||
|
{
|
||||||
|
HANDLE hToken;
|
||||||
|
UCHAR bTokenUser[sizeof(TOKEN_USER) + 8 + 4 * SID_MAX_SUB_AUTHORITIES];
|
||||||
|
PTOKEN_USER pTokenUser = (PTOKEN_USER)bTokenUser;
|
||||||
|
ULONG cbTokenUser;
|
||||||
|
SID_IDENTIFIER_AUTHORITY siaNT = SECURITY_NT_AUTHORITY;
|
||||||
|
PSID pSystemSid;
|
||||||
|
BOOL bSystem;
|
||||||
|
|
||||||
|
// open process token
|
||||||
|
if (!OpenProcessToken(GetCurrentProcess(),
|
||||||
|
TOKEN_QUERY,
|
||||||
|
&hToken))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
// retrieve user SID
|
||||||
|
if (!GetTokenInformation(hToken, TokenUser, pTokenUser,
|
||||||
|
sizeof(bTokenUser), &cbTokenUser))
|
||||||
|
{
|
||||||
|
CloseHandle(hToken);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
CloseHandle(hToken);
|
||||||
|
|
||||||
|
// allocate LocalSystem well-known SID
|
||||||
|
if (!AllocateAndInitializeSid(&siaNT, 1, SECURITY_LOCAL_SYSTEM_RID,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, &pSystemSid))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
// compare the user SID from the token with the LocalSystem SID
|
||||||
|
bSystem = EqualSid(pTokenUser->User.Sid, pSystemSid);
|
||||||
|
|
||||||
|
FreeSid(pSystemSid);
|
||||||
|
|
||||||
|
return bSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
UINT __stdcall LaunchPowerToysCA(MSIHANDLE hInstall)
|
||||||
|
{
|
||||||
|
HRESULT hr = S_OK;
|
||||||
|
UINT er = ERROR_SUCCESS;
|
||||||
|
std::wstring installationFolder, path, args;
|
||||||
|
std::wstring commandLine;
|
||||||
|
|
||||||
|
hr = WcaInitialize(hInstall, "LaunchPowerToys");
|
||||||
|
ExitOnFailure(hr, "Failed to initialize");
|
||||||
|
hr = getInstallFolder(hInstall, installationFolder);
|
||||||
|
ExitOnFailure(hr, "Failed to get installFolder.");
|
||||||
|
|
||||||
|
path = installationFolder;
|
||||||
|
path += L"\\PowerToys.exe";
|
||||||
|
|
||||||
|
args = L"--dont-elevate";
|
||||||
|
|
||||||
|
commandLine = L"\"" + path + L"\" ";
|
||||||
|
commandLine += args;
|
||||||
|
|
||||||
|
BOOL isSystemUser = IsLocalSystem();
|
||||||
|
|
||||||
|
if (isSystemUser) {
|
||||||
|
|
||||||
|
HANDLE hUserToken = NULL;
|
||||||
|
DWORD dwSessionId;
|
||||||
|
ProcessIdToSessionId(GetCurrentProcessId(), &dwSessionId);
|
||||||
|
auto rv = WTSQueryUserToken(dwSessionId, &hUserToken);
|
||||||
|
|
||||||
|
if (rv == 0)
|
||||||
|
{
|
||||||
|
ExitOnFailure(hr, "Failed to query user token");
|
||||||
|
}
|
||||||
|
|
||||||
|
HANDLE hUserTokenDup;
|
||||||
|
if (DuplicateTokenEx(hUserToken, TOKEN_ALL_ACCESS, NULL, SECURITY_IMPERSONATION_LEVEL::SecurityImpersonation, TOKEN_TYPE::TokenPrimary, &hUserTokenDup) == 0)
|
||||||
|
{
|
||||||
|
CloseHandle(hUserToken);
|
||||||
|
CloseHandle(hUserTokenDup);
|
||||||
|
ExitOnFailure(hr, "Failed to duplicate user token");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ImpersonateLoggedOnUser(hUserTokenDup))
|
||||||
|
{
|
||||||
|
STARTUPINFO startupInfo{ .cb = sizeof(STARTUPINFO), .wShowWindow = SW_SHOWNORMAL };
|
||||||
|
PROCESS_INFORMATION processInformation;
|
||||||
|
|
||||||
|
PVOID lpEnvironment = NULL;
|
||||||
|
CreateEnvironmentBlock(&lpEnvironment, hUserTokenDup, FALSE);
|
||||||
|
|
||||||
|
CreateProcessAsUser(
|
||||||
|
hUserTokenDup,
|
||||||
|
NULL,
|
||||||
|
commandLine.data(),
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
FALSE,
|
||||||
|
CREATE_DEFAULT_ERROR_MODE | CREATE_UNICODE_ENVIRONMENT,
|
||||||
|
lpEnvironment,
|
||||||
|
NULL,
|
||||||
|
&startupInfo,
|
||||||
|
&processInformation);
|
||||||
|
|
||||||
|
if (!CloseHandle(processInformation.hProcess))
|
||||||
|
{
|
||||||
|
er = ERROR_INSTALL_FAILURE;
|
||||||
|
}
|
||||||
|
if (!CloseHandle(processInformation.hThread))
|
||||||
|
{
|
||||||
|
er = ERROR_INSTALL_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
RevertToSelf();
|
||||||
|
CloseHandle(hUserToken);
|
||||||
|
CloseHandle(hUserTokenDup);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ExitOnFailure(hr, "Failed to duplicate user token");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
STARTUPINFO startupInfo{ .cb = sizeof(STARTUPINFO), .wShowWindow = SW_SHOWNORMAL };
|
||||||
|
|
||||||
|
PROCESS_INFORMATION processInformation;
|
||||||
|
|
||||||
|
// Start the resizer
|
||||||
|
CreateProcess(
|
||||||
|
NULL,
|
||||||
|
commandLine.data(),
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
TRUE,
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
&startupInfo,
|
||||||
|
&processInformation);
|
||||||
|
|
||||||
|
if (!CloseHandle(processInformation.hProcess))
|
||||||
|
{
|
||||||
|
ExitOnFailure(hr, "Failed to close process handle");
|
||||||
|
}
|
||||||
|
if (!CloseHandle(processInformation.hThread))
|
||||||
|
{
|
||||||
|
ExitOnFailure(hr, "Failed to close thread handle");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LExit:
|
||||||
|
er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE;
|
||||||
|
return WcaFinalize(er);
|
||||||
|
}
|
||||||
|
|
||||||
UINT __stdcall CheckGPOCA(MSIHANDLE hInstall)
|
UINT __stdcall CheckGPOCA(MSIHANDLE hInstall)
|
||||||
{
|
{
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
LIBRARY "PowerToysSetupCustomActions"
|
LIBRARY "PowerToysSetupCustomActions"
|
||||||
|
|
||||||
EXPORTS
|
EXPORTS
|
||||||
|
LaunchPowerToysCA
|
||||||
CheckGPOCA
|
CheckGPOCA
|
||||||
ApplyModulesRegistryChangeSetsCA
|
ApplyModulesRegistryChangeSetsCA
|
||||||
CreateScheduledTaskCA
|
CreateScheduledTaskCA
|
||||||
|
|||||||
@@ -88,7 +88,7 @@
|
|||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>WindowsApp.lib;Newdev.lib;Crypt32.lib;msi.lib;wcautil.lib;Psapi.lib;Pathcch.lib;comsupp.lib;taskschd.lib;Secur32.lib;msi.lib;dutil.lib;wcautil.lib;Version.lib;Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>Userenv.lib;Wtsapi32.lib;WindowsApp.lib;Newdev.lib;Crypt32.lib;msi.lib;wcautil.lib;Psapi.lib;Pathcch.lib;comsupp.lib;taskschd.lib;Secur32.lib;msi.lib;dutil.lib;wcautil.lib;Version.lib;Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<ModuleDefinitionFile>CustomAction.def</ModuleDefinitionFile>
|
<ModuleDefinitionFile>CustomAction.def</ModuleDefinitionFile>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
|
|||||||
Reference in New Issue
Block a user