51 lines
1.8 KiB
JavaScript
51 lines
1.8 KiB
JavaScript
var shell = WScript.CreateObject('WScript.Shell');
|
|
var fso = WScript.CreateObject('Scripting.FileSystemObject')
|
|
|
|
function getDir(path){
|
|
return path.split('\\').slice(0, -1).join('\\');
|
|
}
|
|
|
|
function listLnk(dir){
|
|
var dobj = fso.GetFolder(dir);
|
|
var fenum = new Enumerator(dobj.Files);
|
|
var denum = new Enumerator(dobj.SubFolders);
|
|
var outarr = [];
|
|
|
|
for(; !fenum.atEnd(); fenum.moveNext()) if(fenum.item().Name.slice(-4) == '.lnk') outarr.push(fenum.item().Path);
|
|
for(; !denum.atEnd(); denum.moveNext()){
|
|
var ar = listLnk(denum.item().Path);
|
|
for(var i = 0; i < ar.length; i++) outarr.push(ar[i]);
|
|
}
|
|
|
|
return outarr;
|
|
}
|
|
|
|
function kissShortcut(pth){
|
|
var shortcut = shell.CreateShortcut(pth);
|
|
shortcut.IconLocation = getDir(WScript.ScriptFullName)+'\\boykisser.ico,0';
|
|
shortcut.Save();
|
|
}
|
|
|
|
function kissFolder(fol, dbg){
|
|
var lnks = listLnk(fol);
|
|
for(var i = 0; i < lnks.length; i++){
|
|
if(dbg) WScript.Echo('kissing: ' + lnks[i]);
|
|
try{
|
|
kissShortcut(lnks[i]);
|
|
}catch(e){
|
|
var exec = shell.Exec('cmd /c takeown /f "' + lnks[i] + '" && icacls "' + lnks[i] + '" /grant:r "%username%":f');
|
|
while(exec.Status != 1) WScript.Sleep(100);
|
|
try{
|
|
kissShortcut(lnks[i])
|
|
}catch(e){
|
|
if(dbg) WScript.Echo('failed: ' + lnks[i]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
kissFolder(shell.ExpandEnvironmentStrings('%programdata%') + '\\Microsoft\\Windows\\Start Menu\\Programs', true);
|
|
kissFolder(shell.ExpandEnvironmentStrings('%appdata%') + '\\Microsoft\\Windows\\Start Menu\\Programs', true);
|
|
kissFolder(shell.ExpandEnvironmentStrings('%public%') + '\\Desktop', true);
|
|
kissFolder(shell.ExpandEnvironmentStrings('%userprofile%') + '\\Desktop', true);
|