5

ログイン時にネットワークの場所へのショートカットを作成するPowerShellスクリプトがあります。残念ながら、古い低解像度のアイコンを使用しています。決して大したことではありませんが、更新されたアイコンを後のバージョンのWindowsで使用したいと思います。

ショートカットを作成する関数の関連部分は次のとおりです。

# Create the shortcut file

$shortcut = (New-Object -ComObject WScript.Shell).Createshortcut("$shortcutFolder\target.lnk")

$shortcut.TargetPath = $targetPath
if (
$shortcut.IconLocation = "%SystemRoot%\system32\SHELL32.DLL, 275"
$shortcut.Description = $targetPath
$shortcut.WorkingDirectory = $targetPath
$shortcut.Save()

# Set attributes on the files & folders
$desktopIni | Set-ItemProperty -Name Attributes -Value ([IO.FileAttributes]::System -bxor [IO.FileAttributes]::Hidden)
$shortcutFolder | Set-ItemProperty -Name Attributes -Value ([IO.FileAttributes]::ReadOnly)

ご覧のとおり、現在SHELL32.DLLライブラリのアイコン#275を使用しています。Windows 7では、「適切な」アイコンはimageres.dllのアイコン#143になります。Explorer名前空間のSpecialフォルダーへの参照を取得するなど、OSからアイコンの詳細を取得する方法はありますか?

4

1 に答える 1

6

私のネットワークプレイスにはCLSIDがあります208d2c60-3aea-1069-a2d7-08002b30309d

これを知っていると、デフォルトのレジストリ値を次の場所で読み取ることができます。HKEY_CLASSES_ROOT\CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}\DefaultIcon

結果は次のようになります。%SystemRoot%\system32\imageres.dll,-25

于 2012-12-12T12:55:51.483 に答える