Dala izinqamuleli zangokwezifiso nge-Windows Script Host

Isibuyekezo sokugcina: 29/09/2025
Author: Isaka
  • I-WSH ikuvumela ukuthi udale izinqamuleli ze-.lnk kanye ne-.url kusuka ku-VBScript, VBA, VB6, VFP kanye I-PowerShell ngento ye-WScript.Shell.
  • Ekusetshenzisweni kwe-IT, umongo (umsebenzisi uma uqhathaniswa ne-SYSTEM) unquma ukuthi uzosebenzisa ideskithophu yomphakathi noma yomsebenzisi.
  • Nge-MSIX/PSF, i-AppExecutionAlias ​​igwema izindlela ezinguqulo futhi isiza ukufinyelela okuqhubekayo.
  • Izithonjana, ama-agumenti, ama-hotkey, nezitayela zewindi zilawulwa yizinto ezinqamulelayo.

Izinqamuleli ku-Windows nge-WSH

Ukudala izinqamuleli akuyona nje into elula: kuyindlela yokwenza imisebenzi ngokuzenzakalelayo futhi uthuthukise ukukhiqiza kwakho kwansuku zonke. Windows. Windows Iskripthi Umsingathi (WSH) Inikeza indlela elula nenamandla yokwenza izixhumanisi zezinhlelo zokusebenza, imibhalo, namakheli ewebhu kusuka ezilimini eziningi zokubhala.

Kulo mhlahlandlela osebenzayo sihlanganisa amasu afakazelwe nge VBScript, PowerShell, Visual Basic, Visual FoxPro kanye nezimo zesimanje ezinamaphakheji I-MSIX ne-PSFUmgomo uwukwenza ukwazi ukukhetha indlela evumelana kangcono nendawo okuyo (umsebenzisi wokugcina, i-IT, i-Intune/SCCM, noma ehlanganisiwe), futhi ukuyisebenzise ngokuzethemba.

Iyini i-Windows Script Host futhi kungani ungase uyikhathalele

I-Windows Script Host ingqalasizinda ekuvumela ukuthi usebenzise I-VBScript ne-JScript ngokwendabuko ku-Windows, ngaphezu kokudalula imodeli yento ye-COM ukwenza imisebenzi yesistimu ngokuzenzakalelayo. Into ye-WScript.Shell Kuwucezu oluyinhloko lokudala izinqamuleli zedeskithophu, izinqamuleli zemenyu yokuqala noma amafolda akhethekile.

I-WSH ibiyingxenye ye-Windows kusukela izinguqulo ezifana Windows 98 no-2000, futhi ingangezwa ezinhlelweni ezindala njenge-Windows NT 4.0 kusetshenziswa izingxenye ozikhethela zona. Ezinhlelweni zesimanje ifika ididiyelwe futhi ekusebenzeni, kwanele ukuba nezinto ezisebenzisekayo wscript.exe kanye ne-cscript.exe ukuze uqalise izikripthi.

Izibonelo zemibhalo yezinqamuleli

Izidingo kanye nemikhuba engcono kakhulu ngaphambi kokuqala

Ngaphambi kokuthi uqale, kuwumqondo omuhle ukubukeza amaphuzu athile ayisisekelo. Qinisekisa ukuthi i-WSH iyatholakala futhi azikho izinqubomgomo ezivimba ukusebenza kombhalo. Ezindaweni zezinkampani, ama-GPO nezilungiselelo zokulwa namagciwane zingathinta i-VBScript noma i-PowerShell.

Gwema ukuminyanisa ideskithophu yakho ngezinqamuleli. Dala ukufinyelela kuphela lapho wengeza inani futhi uma uwasabalalisa phakathi nendawo, chaza umbandela ocacile (isb., amafolda omsebenzi noma Izinhlelo zokusebenza inkampani ebalulekile).

Uma iskripthi sisebenza njenge SYSTEM noma umongo womshini (Intune/SCCM), cabanga ngokucophelela mayelana nokuthi ubhala kuphi i-.lnk: ungase ufune ukusebenzisa ideskithophu yomphakathi (C:\\Abasebenzisi\\Public\\Desktop) esikhundleni sedeskithophu yomsebenzisi wamanje.

Bheka i- indlela okuyiwa kuyo, izimvume nokuguquguquka kwemveloIphutha elivamile ukukhomba izindlela ezinezinguqulo ezishintshayo (Amafayela Ohlelo\\WindowsApps) noma ukusebenzisa i-UNC ngaphandle kokufinyelela ku-akhawunti esebenzisa iskripthi.

Amafolda akhethekile nendlela yokuxazulula izindlela zawo

I-WSH ixazulula amagama efolda akhethekile endleleni yawo yangempela isebenzisa WshShell.SpecialFoldersPhakathi kwezinto eziwusizo kakhulu iDesktop, i-StartMenu, Izinhlelo, Ukuqalisa, noma Izintandokazi, kanye nezinhlobonhlobo zazo zabo bonke abasebenzisi (AllUsersDesktop, AllUsersStartMenu, njll.). Lokhu kukuvumela ukuthi uzimele yolimi kanye nesakhiwo esiqondile sephrofayili.

Uma usebenza nge-Visual Basic yakudala noma ufuna ukuthola imizila ku-API, ungasebenzisa SHGetSpecialFolderLocation/SHGetPathFromIDList ukuze ufake kuhlu izindlela ezifana nedeskithophu, Izinhlelo Zakamuva, noma Amadokhumenti. Kuwusizo uma uhlanganisa ezinhlelweni zokusebenza ezingancikile ngokuqondile entweni ye-WScript.

Iphethini Eyisisekelo: Ukudala Izinqamuleli nge-WScript.Shell

Ukugeleza kulula: dala isibonelo se-COM, khiqiza isinqamuleli, gcwalisa izakhiwo, bese ulondoloza. Le phethini iphindaphindiwe ku-VBScript, VBA, VB6, VFP kanye ne-PowerShell ngokuhlukahluka okuncane kokwenziwa kwe-syntactical.

' VBScript: acceso directo a una aplicación
Dim sh, lnk
Set sh = CreateObject("WScript.Shell")
Dim escritorio: escritorio = sh.SpecialFolders("Desktop")
Set lnk = sh.CreateShortcut(escritorio & "\\MiApp.lnk")
lnk.TargetPath = "%windir%\\notepad.exe"
lnk.IconLocation = "%windir%\\system32\\shell32.dll,0"
lnk.Arguments = ""
lnk.WorkingDirectory = "%windir%"
lnk.WindowStyle = 4 ' Normal (3 maximizada, 7 minimizada)
lnk.Save

En I-VBA/VB6 Iphethini iyalingana, i-syntax kuphela nalapho usingatha khona ikhodi iyashintsha. Ungakha isinqamuleli kudeskithophu, unikeze incazelo, isithonjana, hotkey nesitayela sewindi:

' VBA/VB6: crear acceso con icono y hotkey
Dim sh As Object, sc As Object
Set sh = CreateObject("WScript.Shell")
Dim destino As String: destino = sh.SpecialFolders("Desktop") & "\\BlocDeNotas.lnk"
Set sc = sh.CreateShortcut(destino)
With sc
  .TargetPath = "%windir%\\system32\\notepad.exe"
  .WorkingDirectory = "%windir%\\system32"
  .IconLocation = "%windir%\\system32\\shell32.dll,2"
  .Description = "Abrir el Bloc de notas"
  .Hotkey = "ALT+CTRL+N"
  .WindowStyle = 4
  .Save
End With

cunt I-FoxPro ebonakalayo Ungasebenzisa futhi into ye-WScript.Shell. Umbono uyafana: thola Ideskithophu, dala okuthi .lnk, bese usetha izici ezifana WindowStyle, IconLocation, TargetPath noma inhlanganisela yokhiye.

* Visual FoxPro: crear acceso directo de ejemplo
LOCAL sh, desk, sc
sh = CREATEOBJECT("WScript.Shell")
desk = sh.SpecialFolders("Desktop")
sc = sh.CreateShortcut(desk + "\\EjemploWSH.lnk")
sc.TargetPath = "%windir%\\notepad.exe"
sc.IconLocation = "C:\\Path\\a\\miicono.ico"
sc.Hotkey = "ALT+CTRL+F"
sc.WindowStyle = 3 && 3=max 7=min 4=normal
sc.Save

Kuzo zonke izimo, umnyombo uyafana: Dala Isinqamuleli, Indlela Eqondiwe, LondolozaUkusuka lapho, yenza ngokwezifiso izimpikiswano, isithonjana, uhla lwemibhalo olusebenzayo, nesitayela sewindi njengoba kudingeka.

  Ungawasakaza kanjani amavidiyo kunethiwekhi nge-VLC kalula

Izimpikiswano, isitayela sewindi, izithonjana nezinqamuleli

Uma ukufinyelela kufanele kuqalise uhlelo lokusebenza ngamapharamitha, vele ugcwalise .Izingxabano. Okwenqubo ibhuthini kufolda ethile, sebenzisa .WorkingDirectory ngomzila olungile.

Ukuze ubukeke, chaza .IconLocation ekhomba i-.ico noma insiza ku-.exe/.dll (ungacacisa inkomba ngemva kokhefana). Ukuziphatha kokuvula kulawulwa nge .WindowStyle: 3 nkulu, 7 incishisiwe, 4 evamile.

Uma ufuna inhlanganisela yokhiye, sebenzisa .I-Hotkey ngephethini ye-ALT+CTRL+Letter (isibonelo, ALT+CTRL+N). Lesi sabelo sisheshisa ukuvulwa, kodwa Akukhuthazwa ukwabela abaningi kakhulu ukuze ungaphazamisi izinqamuleli zesistimu.

Izinqamuleli ze-URL (.url).

Ngokungeziwe kuhlelo lokusebenza .lnks, i-WSH ingakha izinqamuleli ze-.url ezivula isiphequluli esizenzakalelayo. I-TargetPath ikhomba ekhelini lewebhu futhi uma udinga isithonjana sakho, ungahlela ifayela le-.url kamuva ukuze wengeze i-IconFile ne-IconIndex.

' VBScript: acceso directo a una URL
Dim sh, urlShortcut
Set sh = CreateObject("WScript.Shell")
Dim desk: desk = sh.SpecialFolders("Desktop")
Set urlShortcut = sh.CreateShortcut(desk & "\\SitioCorporativo.url")
urlShortcut.TargetPath = "https://www.ejemplo.com"
urlShortcut.Save
' (Opcional) reabrir el .url como texto y añadir:
' IconFile=C:\\Rutas\\icono.ico
' IconIndex=0

Le ndlela ilungele izixhumanisi I-SharePoint, izinhlelo zokusebenza ze-inthanethi noma zewebhu ofuna ukukushiya kuwusizo kudeskithophu yomsebenzisi.

I-PowerShell ye-IT: I-Intune, i-SCCM, kanye Nokuthunyelwa Kwesikali Esikhulu

I-PowerShell ihlanganisa ukufinyelela kumodeli ye-COM efanayo ne-WSH, ukuze ukwazi ukudala ukufinyelela futhi usabalalise ngobuningi. Into evamile ukuthola ideskithophu efanele (umsebenzisi noma osesidlangalaleni), khiqiza amafolda okuyiwa kuwo futhi, uma kunesidingo, phinifa imizila Ekufinyeleleni Okusheshayo.

# PowerShell: utilidades y creación del acceso
param(
  [Parameter(Mandatory=$true)] [string]$ShortcutTargetPath,
  [Parameter(Mandatory=$true)] [string]$ShortcutDisplayName,
  [string]$IconFile = $null,
  [string]$ShortcutArguments = $null,
  [string]$WorkingDirectory = $null
)
function Test-RunningAsSystem {
  # Devuelve true si el contexto es SYSTEM (S-1-5-18)
  ((whoami -user) -match "S-1-5-18")
}
function Get-DesktopDir {
  if (Test-RunningAsSystem) {
    Join-Path $env:PUBLIC "Desktop"
  } else {
    [Environment]::GetFolderPath("Desktop")
  }
}
function New-Shortcut {
  param([string]$Target, [string]$Path, [string]$Args, [string]$Work, [string]$Icon)
  $sh = New-Object -ComObject WScript.Shell
  $lnk = $sh.CreateShortcut($Path)
  $lnk.TargetPath = $Target
  if ($Args) { $lnk.Arguments = $Args }
  if ($Work) { $lnk.WorkingDirectory = $Work }
  if ($Icon) { $lnk.IconLocation = $Icon }
  $lnk.WindowStyle = 4
  $lnk.Save()
  [Runtime.InteropServices.Marshal]::ReleaseComObject($sh) | Out-Null
}
$desk = Get-DesktopDir
$targetFolder = Join-Path $desk "SharePoint Shortcuts"
if (-not (Test-Path $targetFolder)) { New-Item -ItemType Directory -Path $targetFolder | Out-Null }
$dest = Join-Path $targetFolder ("{0}.lnk" -f $ShortcutDisplayName)
New-Shortcut -Target $ShortcutTargetPath -Path $dest -Args $ShortcutArguments -Work $WorkingDirectory -Icon $IconFile

Ekusetshenzisweni nge IntuneLe phethini ikuvumela ukuthi udale ifolda kudeskithophu yakho futhi udlule ukufinyelela ku-Edge ngamapharamitha afana ne-SharePoint URL. Uma isebenza njenge-SYSTEM, ideskithophu eqondiwe kuzoba ngeyomphakathi, ibonakala kuwo wonke amaphrofayili.

  Funda ukuthi ungabayekisa kanjani abanye ekulawuleni umshini wakho we-Chromecast

En I-SCCMUma ukhetha ukusebenzisa i-pre-made .lnk, umyalo omncane ungaba lula njengokuwukopisha kudeskithophu yomphakathi: Kopisha-Into \\iseva\\umzila\\access.lnk C:\\Abasebenzisi\\Public\\DesktopUma ingaveli, hlola lawa maphuzu:

  • Umongo wokwenza: Qiniseka ukuthi uhlelo lusebenza ngezimvume ezanele kanye nakumsebenzisi/isistimu elindelekile.
  • Ukufinyelela esisetshenziswa okwabelwana ngaso: I-akhawunti esebenzayo kufanele ikwazi ukufunda indlela ye-UNC.
  • Imizila enezikhala: Vala -Indlela kanye -Indawo ekucashunwe kuyo.
  • Ukuluma: Ezimweni ezixubile ze-32/64-bit, iqinisekisa ukuthi akukho ukuqondisa kabusha okungafuneki.

Phina ukuze Ufinyelele Ngokushesha nge-Shell.Application

Ngokungeziwe kwideskithophu, ungaphina amafolda kuwo Ukufinyelela okusheshayo ngento ye-Shell.Isicelo se-COM. Lokhu kuyasiza uma udala indlela ebophayo futhi ufuna ukuthi ifinyeleleke ku-Explorer.

# PowerShell: anclar carpeta a Acceso rápido
$quick = New-Object -ComObject shell.application
$toPin = Join-Path ([Environment]::GetFolderPath("Desktop")) "SharePoint Shortcuts"
$home = "shell:::{679f85cb-0220-4080-b29b-5540cc05aab6}"
if(-not ($quick.Namespace($home).Items() | Where-Object { $_.Path -eq $toPin })){
  $quick.Namespace($toPin).Self.InvokeVerb("pintohome")
}

Uma uphatha amaqembu futhi ufuna abasebenzisi bathole izinqamuleli zabo ngokushesha, Lesi senzo esincane senza umehluko osukwini lwabo nosuku.

I-MSIX ne-PSF: Dala ukufinyelela ngaphandle kokuthembela ezindleleni ezinenguqulo

Uma upakisha izinhlelo zokusebenza nge I-MSIX, indlela yokufaka ihlanganisa inguqulo (ngokwesibonelo, C:\\Program Files\\WindowsApps\\MyApp_1.0.0.0_x86__…). Iyashintsha ngesibuyekezo ngasinye, ngakho-ke kuwumbono omubi ukusetha i-.lnk ngaleyo ndlela. Isixazululo: I-AppExecutionAliasNgokuchaza isiteketiso ku-manifest, ungakwazi ukuqalisa uhlelo lokusebenza nge-%localappdata%\\Microsoft\\WindowsApps\\myapp.exe ngaphandle kokuboshelwa enguqulweni.

Ukuze wenze lokhu, engeza izikhala zamagama ku-manifest (uap3 nedeskithophu) bese udala isandiso windows.appExecutionAlias ekhomba kokusebenzisekayo kwephakheji. Khumbula ukufaka amagama kokuthi IgnorableNamespaces ukuze i-manifest iwabone.

Ngemva kwalokho, ungashintsha indawo yokungena yesicelo ibe I-PSFLauncher32.exe/PSFLauncher64.exe (kuya ngesakhiwo) futhi udlulisele ukudalwa kokufinyelela kusikripthi sokuqalisa esichazwe ku-config.json kusetshenziswa i-PSF. Iskripthi sisebenza kanye ekuqaliseni kokuqala.

{
  "applications": [
    {
      "id": "App",
      "executable": "MiApp\\MiApp.exe",
      "workingDirectory": "MiApp\\",
      "startScript": {
        "scriptPath": "createshortcut.ps1",
        "runInVirtualEnvironment": false,
        "waitForScriptToFinish": true,
        "showWindow": false,
        "runOnce": true
      }
    }
  ]
}

I-PowerShell createshortcut.ps1 Ungakopisha ifayela le-.lnk elenziwe ngomumo ukusuka kuphakheji uye kudeskithophu yomsebenzisi futhi ulethe isithonjana endaweni yokusebenza. I-LocalCache\\ Iyazulazula ehlala izinzile phakathi kwezinguqulo.

# createshortcut.ps1 (dentro del paquete)
Copy-Item "Mi App.lnk" "$env:USERPROFILE\\Desktop\\Mi App.lnk" -Force
Copy-Item "miapp.ico" "$env:APPDATA\\miapp.ico" -Force

Ngale ndlela uqinisekisa ukuthi ukufinyelela kuyasebenza ngemva kokubuyekezwa, ngaphandle kokuthinta i-.lnk kunguqulo ngayinye. Uma indlela ikhomba ku-alias (isibonelo, %localappdata%\\Microsoft\\WindowsApps\\myapp.exe), indlela isazosebenza.

Ukuphatha iphutha nokuqinisekisa okunconyiwe

Ngaphambi kokukhiqiza i-.lnk kuyancomeka ukuthi uqinisekise ukuthi i I-TargetPath ikhona (ngaphandle uma usebenzisa okuguquguqukayo okufana ne-% windir% noma iziteketiso). Ku-VBA/VB6, ungaxwayisa uma okusebenzisekayo kulahleka noma khansela ukusebenza; ku-PowerShell, sebenzisa i-Test-Path ukuze uhlole ukuthi indlela iyafinyeleleka yini.

  Ungayisebenzisa kanjani i-FaceTime ku-Windows PC yakho

Uma indlela yesithonjana ingu-a .ico inethiwekhi, iqhinga eliwusizo iwukukopisha kutempele lomsebenzisi noma kufolda ye-APPDATA, bese ubhekisela kuyo kusukela lapho. Ngale ndlela ugwema izithonjana eziphukile uma insiza yenethiwekhi ingatholakali.

Lapho uhlela izinqamuleli ze-.url, uma udinga isithonjana sakho, vula kabusha ifayela njengombhalo bese wengeza I-IconFile kanye ne-IconIndex ekugcineni. Lokhu kukunikeza ukulawula okuphelele kokubukeka kwayo ngaphandle kokuncika esipheqululini.

Uma unqamula i-COM, khulula izinto nge ReleaseComObject ku-PowerShell, noma unikeze Akukho lutho ku-VB/VBA. Kuyimininingwane emincane, kodwa kusiza ukugwema ukulenga izinsiza ekubulaweni okujulile.

Amacala okuhluleka ajwayelekile kanye nendlela yokuwaxazulula

Uma ukuthunyelwa kwe-SCCM kugcina ngekhodi 0 kodwa ukufinyelela kungaveli, qala uhlole umsebenzisi oqondisiwe wedeskithophuUma ubusebenza njengo-SYSTEM bese uthayipha %USERPROFILE%\Desktop kuphrofayela esebenzisanayo, ngeke ubone lutho. Sebenzisa i-C:\Users\Public\Desktop ukuze uyenze ibonakale kuwo wonke umuntu.

Ku-Intune, lapho ukhiqiza imiyalo ye-Edge ngezimpikiswano (isibonelo, i-URL enezikhala ezibethelwe), qinisekisa lokho. izimpawu zokucaphuna zilungile ku -ShortcutIzimpikiswano kanye nombhalo ufika uphelele. Indawo eyodwa engekho angaphula isiphetho se-.lnk.

Kumafolda ezinqamuleli ezinkampani (isb., "Izinqamuleli zeSharePoint"), qala ngokudala ifolda kudeskithophu efanele, futhi uma ufuna ukuyigqamisa ku-Explorer, bambelela ekufinyeleleni okusheshayo njengoba sibonile ngeShell.Isicelo.

Uma usabalalisa i-.lnk eseyakhiwe kakade kuphakheji ye-MSIX ebuyekezwayo, ungayikhombi endleleni yenguqulo ngaphakathi kwe-WindowsApps. Sebenzisa i-AppExecutionAlias bese ukopisha isithonjana kufolda yenguqulo.

Amaqhinga awusizo aneziguquko nezindlela

Ukuze ubhale imibhalo ephathekayo, thembela kuyo Imvelo Eguquguqukayo: % windir%, %systemroot%, %ProgramFiles% nokunye okufanayo. Ku-WSH ungawakhulisa nge ExpandEnvironmentStrings, futhi ku-PowerShell ungabhekisela kuzo nge-$env:VARIABLE.

Uma wakha imizila eguquguqukayo, hlola ukuthi ngabe i- ifolda esebenzayo igcina ngokuthi \ ukuze ugweme ukuphindaphinda amabha noma ukuphula i-TargetPath uma uhlanganisa. Kuyi- guardrail encane leyo gwema amaphutha acashile ekukhiqizeni.

Ukuze uthole izinqamuleli ezidinga amapharamitha ayinkimbinkimbi, cabanga ukubhala umbhalo omncane othi .cmd noma .ps1 futhi ube nendawo enqamulelayo kuwo. Le yindlela owenza ngayo ibe lula i-.lnk futhi uyakwazi ukulawula kangcono ukucaphuna nokuhleleka kwengxabano.

Uma udinga okhiye abashisayo, zama ukubhukha izinhlanganisela nge izincwadi ezibalulekile futhi ugweme ukungqubuzana nezinqamuleli ezivamile. Ezimweni ezinezinhlelo zokusebenza eziningi, bhala phansi izinqamuleli ukuze umsebenzisi akwazi sebenzisa ngokunenzuzo ngaphandle kokuzama nephutha.

Unohlu lwezinketho zokwenza izinqamuleli ku-Windows ngendlela ethembekile nevumelana nezimo. I-WSH iyisisekelo esivamile, futhi ngaphezu kwalokho, ungakhetha isendlalelo: imibhalo yakudala, i-PowerShell yesimanje, noma ukupakishwa kwe-MSIX nge-PSF uma ufuna izinqubo eziphindaphindwayo esikalini. Ukhiye uwukukhetha indlela efanele, uqinisekise umongo wokwenza, futhi ugweme ukuvaleleka ezindleleni ezintekenteke, ezinenguqulo.