スクリプトを使用して、Windowsオペレーティングシステム(.lnk)でショートカットを作成します。LinuxのPowerShellでWindowsショートカットを作成できない
Windows環境では、PowerShellを選択してスクリプトを作成し、.lnkファイルを作成しました。
$shell = New-Object -ComObject WScript.Shell
$desktop = [System.Environment]::GetFolderPath('Desktop')
$shortcut = $shell.CreateShortcut("$desktop\clickme.lnk")
$shortcut.TargetPath = "C:\Users\scc\Desktop\linkfolder"
$shortcut.IconLocation = "shell32.dll,004"
$shortcut.Save()
私のオンライン実行環境はLinuxです。
幸運なことに、私は2016年にPowerShellをマルチプラットフォームで移植したことに気付きました。はい、Linuxをサポートすることができます。私はそれを見つけ、ダウンロードしてインストールしました。 Linuxでは、PowerShellコマンドウィンドウで基本的なコマンドを実行できます。
実行時エラーが発生しました。私はコードの最初の行を実行すると :
$shell = New-Object -ComObject WScript.Shell
をエラーメッセージは次のとおりです。
New-Object : Unable to load DLL 'api-ms-win-core-com-l1-1-0.dll': The specified module or one of its dependencies could not be found. (Exception from HRESULT: 0x8007007E) At line:1 char:10 + $shell = New-Object -ComObject WScript.Shell + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [New-Object], DllNotFoundException + FullyQualifiedErrorId : System.DllNotFoundException,Microsoft.PowerShell.Commands.NewObjectCommand
プロンプトによれば、WScriptの関連モジュールの不足と思われます。 DLLファイルがありません。
LinuxでJavaプログラムを実行して、Windows形式のショートカットを作成する必要があります。 (ネットワークディスクに格納され、btrfsのファイルシステムで、これらのファイルサービスをSMB \ AFP \ NFS \ FTPに提供できます)
新しいソリューションのアイデアやアイデアがあれば、この需要は奇妙に見えます教えてください、または私と話してください。
私は大胆な考えを持っています.SMBプロトコルを使用して.lnkファイルを作成できますか?
を、PowerShellののLinuxの実装は、WScript.Shellオブジェクトをエミュレートするためのサポートが含まれていないことと思われます。これは驚くべきことです。代わりに[Wine](https://www.winehq.org)を試してみてください。ショートカットは普通のファイルなので、フォーマットをリバースエンジニアリングして独自の実装を書くことが可能でなければなりません。既存のサードパーティのソリューションが存在する場合もあります。 –