- WSH yana ba ku damar ƙirƙirar gajerun hanyoyin .lnk da .url daga VBScript, VBA, VB6, VFP da PowerShell tare da WScript.Shell abu.
- A cikin jigilar IT, mahallin (mai amfani vs SYSTEM) yana yanke shawarar ko za a yi amfani da tebur na jama'a ko na mai amfani.
- Tare da MSIX/PSF, AppExecutionAlias yana guje wa hanyoyin da aka tsara kuma yana sauƙaƙe samun dama ga ci gaba.
- Gumaka, gardama, maɓallan zafi, da salon taga ana sarrafa su ta hanyar gajerun kaddarorin.
Ƙirƙirar gajerun hanyoyi ba kawai jin daɗi ba ne: hanya ce ta sarrafa ayyuka da haɓaka haɓakar ku na yau da kullun. Windows. Windows script Mai watsa shiri (WSH) Yana ba da hanya mai sauƙi da ƙarfi don samar da hanyoyin haɗin kai zuwa aikace-aikace, takardu, da adiresoshin yanar gizo daga harsunan rubutun da yawa.
A cikin wannan jagorar mai amfani mun kawo hanyoyin da aka tabbatar da su VBScript, PowerShell, Kayayyakin Kayayyakin Kayayyakin, Kayayyakin Kayayyakin Kayayyakin Kaya da al'amuran zamani tare da fakiti MSIX da PSFManufar ita ce ba ku damar zaɓar hanyar da ta fi dacewa da yanayin ku (mai amfani na ƙarshe, IT, Intune/SCCM, ko fakitin), da aiwatar da shi tare da amincewa.
Menene Mai watsa shiri na Rubutun Windows kuma me yasa zaku iya kulawa
Mai watsa shiri na Rubutun Windows shine kayan aikin da ke ba ku damar gudanar da aiki VBScript da JScript na asali akan Windows, ban da fallasa samfurin abu na COM don sarrafa ayyukan tsarin. Abun WScript.Shell Yana da maɓalli don ƙirƙirar gajerun hanyoyin tebur, Fara gajerun hanyoyin menu ko manyan fayiloli na musamman.
WSH ya kasance wani ɓangare na Windows tun nau'ikan iri kamar Windows 98 da 2000, kuma ana iya ƙarawa zuwa tsofaffin bugu kamar Windows NT 4.0 ta amfani da abubuwan zaɓi na zaɓi. A cikin tsarin zamani yana zuwa hadewa kuma a aikace, ya isa a sami executables wscript.exe da cscript.exe don ƙaddamar da rubutun.
Bukatu da mafi kyawun ayyuka kafin farawa
Kafin farawa, yana da kyau a sake bitar wasu mahimman bayanai. Tabbatar cewa akwai WSH kuma babu manufofin toshe aiwatar da rubutun. A cikin mahallin kamfani, GPOs da saitunan riga-kafi na iya shafar VBScript ko PowerShell.
Ka guje wa rikitar da tebur ɗinka tare da gajerun hanyoyi. Ƙirƙirar hanyoyin shiga kawai lokacin da suka ƙara ƙima kuma idan kun rarraba su a tsakiya, ayyana ma'auni bayyananne (misali, manyan fayilolin aiki ko apps kamfanoni masu mahimmanci).
Idan rubutun yana gudana kamar SYSTEM ko a mahallin na'ura (Intune/SCCM), yi tunani a hankali game da inda ka rubuta .lnk: kana iya amfani da tebur na jama'a (C: \ Users \ Public \ Desktop) maimakon tebur na mai amfani na yanzu.
Duba hanyar manufa, izini da masu canjin yanayiKuskure na yau da kullun shine nuna hanyoyi tare da canza nau'ikan (Faylolin Shirin WindowsApps) ko amfani da UNC ba tare da samun dama daga asusun da ke tafiyar da rubutun ba.
Fayiloli na musamman da yadda ake warware hanyoyinsu
WSH yana warware sunayen babban fayil na musamman zuwa ainihin hanyarsu ta amfani da su WshShell.Folders na MusammanDaga cikin mafi amfani akwai Desktop, StartMenu, Programs, Startup, ko Favorites, da kuma bambance-bambancen su ga duk masu amfani (AllUsersDesktop, AllUsersStartMenu, da sauransu). Wannan yana ba ku damar zama mai zaman kansa na harshe da ainihin tsarin bayanin martaba.
Idan kuna aiki tare da Classic Visual Basic ko kuna son samun hanyoyi daga API, zaku iya amfani da su SHGetSpecial FolderLocation/SHGetPathFromIDList don jera hanyoyi kamar Desktop, Shirye-shiryen Kwanan nan, ko Takardu. Yana da amfani idan kun haɗa cikin aikace-aikace waɗanda ba su dogara kai tsaye da abin WScript ba.
Tsarin asali: Ƙirƙirar Gajerun hanyoyi tare da WScript.Shell
Gudun yana da sauƙi: ƙirƙiri misalin COM, haifar da gajeriyar hanya, cika kaddarorin, kuma adanawa. Ana maimaita wannan ƙirar a cikin VBScript, VBA, VB6, VFP da PowerShell tare da ƙananan bambance-bambancen syntactic.
' 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 VBA/VB6 Tsarin yayi daidai, kawai tsarin rubutu da kuma inda kuka karɓi lambar ya canza. Kuna iya ƙirƙirar gajeriyar hanya akan tebur, sanya bayanin, gunki, hotkey da kuma salon taga:
' 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
con Kayayyakin FoxPro Hakanan zaka iya amfani da abin WScript.Shell. Manufar iri ɗaya ce: gano wurin Desktop, ƙirƙirar .lnk, da saita kaddarorin kamar WindowStyle, IconLocation, TargetPath ko haɗin maɓalli.
* 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
A kowane hali, ainihin iri ɗaya ne: CreateShortcut, TargetPath, AjiyeDaga can, keɓance gardama, gunki, jagorar aiki, da salon taga kamar yadda ake buƙata.
Hujja, salon taga, gumaka da gajerun hanyoyi
Lokacin samun dama dole ne ya ƙaddamar da ƙa'idar tare da sigogi, kawai cika .Hujja. Domin tsari taya a cikin takamaiman babban fayil, amfani .Aikin Jagora tare da madaidaiciyar hanya.
Don kallon, ayyana .IconLocation yana nuna .ico ko albarkatu a cikin .exe/.dll (zaka iya saka maƙasudin bayan waƙafi). Ana sarrafa halin buɗewa tare da .WindowStyle: 3 maximized, 7 minimized, 4 al'ada.
Idan kuna son haɗin maɓalli, yi amfani .Hotkey tare da tsarin ALT+CTRL+(misali, ALT+CTRL+N). Wannan aikin yana hanzarta buɗewa, amma Ba shi da kyau a sanya yawa da yawa don kada a tsoma baki tare da gajerun hanyoyin tsarin.
URL (.url) gajerun hanyoyi
Baya ga aikace-aikacen .lnks, WSH na iya ƙirƙirar gajerun hanyoyin .url waɗanda ke buɗe tsoho mai bincike. Hanyar TargetPath tana nuna adireshin gidan yanar gizon kuma idan kuna buƙatar gunkin ku, zaku iya gyara fayil ɗin .url daga baya don ƙara IconFile da 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
Wannan hanya ta dace don hanyoyin haɗi zuwa SharePoint, intanet ko aikace-aikacen yanar gizo cewa kana so ka bar aiki a kan tebur mai amfani.
PowerShell don IT: Intune, SCCM, da Babban-Aikin Aiki
PowerShell ya haɗa samun dama ga samfurin COM iri ɗaya kamar WSH, don haka zaku iya ƙirƙirar dama da rarraba shi gabaɗaya. Abinda aka saba shine gano madaidaicin tebur (mai amfani ko na jama'a), samar da manyan fayiloli masu zuwa kuma, idan ya cancanta, fil hanyoyi a cikin Saurin shiga.
# 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
A cikin aiwatarwa tare da IntuneWannan tsarin yana ba ku damar ƙirƙirar babban fayil akan tebur ɗinku kuma ku wuce damar zuwa Edge tare da sigogi kamar URL na SharePoint. Idan ana aiki azaman SYSTEM, Desktop ɗin da aka yi niyya zai zama na jama'a, bayyane ga duk bayanan martaba.
En SCCMIdan kun fi son tura .lnk da aka riga aka yi, ƙaramin umarni na iya zama mai sauƙi kamar kwafa shi zuwa tebur na jama'a: Kwafi-abun uwar garken \ hanyar \ access.lnk C: \ Masu amfani \ Jama'a \ DesktopIdan bai bayyana ba, duba waɗannan abubuwan:
- Yanayin aiwatarwa: Tabbatar cewa shirin yana gudana tare da isassun izini kuma akan mai amfani/tsarin da ake sa ran.
- Samun dama ga albarkatun da aka raba: Dole ne asusun da ke gudana ya iya karanta hanyar UNC.
- Hanyoyi tare da sarari: Rufe -Hanyar da -Manufa a cikin ƙididdiga.
- Ciwon kai: A cikin mahalli 32/64-bit gauraye, yana tabbatar da cewa babu turawa maras so.
Sanya zuwa Saurin Samun Sauri tare da Shell.Application
Baya ga tebur, kuna iya haɗa manyan fayiloli zuwa Saurin shigowa tare da Shell.Application COM abu. Wannan yana da amfani lokacin da kuka ƙirƙiri hanyar ɗaure kuma kuna son samun dama gare shi a cikin 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")
}
Idan kuna sarrafa ƙungiyoyi kuma kuna son masu amfani da sauri gano gajerun hanyoyin su, Wannan ƙaramin aikin yana haifar da bambanci a zamanin su zuwa rana.
MSIX da PSF: Ƙirƙirar samun dama ba tare da dogaro da hanyoyin da aka tsara ba
Lokacin da kuka haɗa aikace-aikace da MSIX, hanyar shigarwa ta ƙunshi nau'in (misali, C: \ File Files \ WindowsApps \ MyApp_1.0.0.0_x86__…). Yana canzawa tare da kowane sabuntawa, don haka yana da mummunan ra'ayi don saita .lnk tare da wannan hanyar. Magani: AppExecutionAliasTa hanyar ayyana laƙabi a cikin bayyanuwa, zaku iya ƙaddamar da app ɗin tare da % localappdata% Microsoft WindowsApps myapp.exe ba tare da an haɗa shi da sigar ba.
Don yin wannan, ƙara wuraren suna a cikin bayyanuwa (uap3 da tebur) kuma ƙirƙirar tsawo windows.appExecutionAlias nuni ga kunshin ta executable. Ka tuna a haɗa sunayen a cikin Wuraren Sunaye na Ignorable don haka bayanin ya gane su.
Bayan haka, zaku iya canza wurin shigarwar aikace-aikacen zuwa PSFLauncher32.exe/PSFLauncher64.exe (dangane da gine-gine) da kuma ba da izinin ƙirƙirar damar yin amfani da rubutun farawa da aka ayyana a cikin config.json ta amfani da PSF. Rubutun yana gudana sau ɗaya a farkon farawa.
{
"applications": [
{
"id": "App",
"executable": "MiApp\\MiApp.exe",
"workingDirectory": "MiApp\\",
"startScript": {
"scriptPath": "createshortcut.ps1",
"runInVirtualEnvironment": false,
"waitForScriptToFinish": true,
"showWindow": false,
"runOnce": true
}
}
]
}
PowerShell createshortcut.ps1 Kuna iya kwafin fayil ɗin .lnk da aka shirya daga fakitin zuwa tebur ɗin mai amfani sannan kuma kawo gunki zuwa wurin aiki. LocalCache\\Yawo wanda ya kasance barga tsakanin sigogin.
# 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
Tare da wannan hanyar kuna tabbatar da cewa samun dama yana aiki bayan sabuntawa, ba tare da taɓa .lnk a kowace sigar ba. Idan hanyar tana nuni zuwa ga laƙabi (misali, % localappdata% Microsoft WindowsApps myapp.exe), hanyar zata ci gaba da aiki.
Kuskuren kulawa da ingantattun shawarwari
Kafin samar da .lnk yana da kyau a tabbatar da cewa Tafarkin Target yana wanzu (sai dai idan kuna amfani da masu canji kamar % windir% ko laƙabi). A cikin VBA/VB6, zaku iya faɗakarwa idan mai aiwatarwa ya ɓace ko soke aikin; a cikin PowerShell, yi amfani da Hanyar Gwaji don bincika idan ana samun damar hanyar.
Idan alamar hanyar ita ce a .ico cibiyar sadarwa, dabara mai amfani ita ce kwafa shi zuwa babban fayil na temp ko APPDATA, sannan a bitar shi daga can. Wannan shine yadda kuke guje wa fashe gumaka idan albarkatun cibiyar sadarwa ba su samuwa.
Lokacin gyara gajerun hanyoyin .url, idan kuna buƙatar gunkin ku, sake buɗe fayil ɗin azaman rubutu kuma ƙara IconFile da IconIndex a karshen. Wannan yana ba ku cikakken iko akan bayyanarsa ba tare da dogara ga mai bincike ba.
Lokacin da kuka ƙare COM, abubuwa kyauta tare da SakiComObject a cikin PowerShell, ko sanya Babu wani abu a cikin VB/VBA. Karamin daki-daki ne, amma yana taimakawa guje wa rataye albarkatu a cikin tsauraran hukuncin kisa.
Matsalolin gazawa na yau da kullun da yadda ake warware su
Idan turawa ta SCCM ta ƙare da lambar 0 amma samun dama bai bayyana ba, da farko bincika manufa mai amfani da teburIdan kuna gudana azaman SYSTEM kuma buga % USERPROFILE% Desktop a cikin bayanan ma'amala, ba za ku ga komai ba. Yi amfani da C: \ Users \ Public \ Desktop don bayyana shi ga kowa da kowa.
A cikin Intune, lokacin da kuka ƙirƙiri faɗakarwar Edge tare da muhawara (misali, URL tare da wuraren da aka ɓoye), tabbatar da hakan. Alamun zance suna da kyau in -ShortcutArguments kuma rubutun ya zo daidai. Wuri ɗaya daga wurin iya karya kaddarar .lnk.
Don manyan fayilolin gajerun hanyoyin haɗin gwiwa (misali, "Gajerun hanyoyin SharePoint"), fara ƙirƙirar babban fayil akan tebur daidai, kuma idan kuna son haskaka shi a cikin Explorer, anga zuwa Saurin Shiga kamar yadda muka gani tare da Shell.Application.
Idan kun rarraba .lnk da aka riga aka gina a cikin kunshin MSIX da ake sabuntawa, kar a nuna shi zuwa ga sigar hanyar da ke cikin WindowsApps. Yi amfani da AppExecutionAlias kuma kwafi gunkin daga cikin babban fayil ɗin da aka buga.
Dabaru masu amfani tare da masu canji da hanyoyi
Don rubuta rubutun hannu, dogara da Canje-canjen Muhalli:% windir%, %systemroot%, %ProgramFiles% da makamantansu. A cikin WSH zaka iya fadada su da ExpandEnvironment Strings, kuma a cikin PowerShell zaka iya komawa zuwa gare su ta $env:VARIABLE.
Lokacin gina hanyoyi masu ƙarfi, bincika idan babban fayil ɗin aiki yana ƙare a \ don guje wa kwafin sanduna ko karya TargetPath lokacin haɗuwa. Karamin layin tsaro ne kauce wa kuskure kuskure a samarwa.
Don gajerun hanyoyi waɗanda ke buƙatar sigogi masu rikitarwa, la'akari da rubuta ƙaramin rubutun .cmd ko .ps1 da samun maɓallin gajeriyar hanya zuwa gare shi. Wannan shine yadda kuke sauƙaƙa .lnk kuma kuna da mafi kyawun iko akan faɗa da odar gardama.
Idan kuna buƙatar maɓallan zafi, gwada tanadin haɗuwa tare da muhimman haruffa kuma a guji yin karo da gajerun hanyoyin gama gari. A cikin mahalli tare da ƙa'idodi da yawa, rubuta gajerun hanyoyin don mai amfani zai iya yi amfani ba tare da gwaji da kuskure ba.
Kuna da kewayon zaɓuɓɓuka don ƙirƙirar gajerun hanyoyi a cikin Windows a amintacciyar hanya da sassauƙa. WSH shine tushen gama gari, kuma a saman wannan, zaku iya zaɓar Layer: rubutun al'ada, fakitin PowerShell na zamani, ko MSIX tare da PSF lokacin da kuke neman hanyoyin maimaitawa a sikelin. Makullin shine zaɓi madaidaiciyar hanya, tabbatar da mahallin aiwatarwa, da guje wa kullewa cikin ƙananan hanyoyi, sigar sigar.
Marubuci mai sha'awa game da duniyar bytes da fasaha gabaɗaya. Ina son raba ilimina ta hanyar rubutu, kuma abin da zan yi ke nan a cikin wannan shafi, in nuna muku duk abubuwan da suka fi ban sha'awa game da na'urori, software, hardware, yanayin fasaha, da ƙari. Burina shine in taimaka muku kewaya duniyar dijital ta hanya mai sauƙi da nishaɗi.