2012-11-05 11 views
5

Oturum açma sırasında ağ konumlarına kısayollar oluşturan bir PowerShell betiğim var. Ne yazık ki, eski bir düşük çözünürlüklü simge kullanıyor. Herhangi bir yolla büyük bir anlaşma değil, ancak Windows'un sonraki sürümlerinde güncellenmiş simgeleri kullanmak istiyorum. Gördüğünüz gibi, şu anda SHELL32.DLL kütüphanesinde Simge # 275 kullanıyorDoğru "ağ yeri" simgesi nasıl seçilir?

# 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) 

:

İşte kısayol oluşturur fonksiyonunun ilgili kısmı bu. Windows 7'de, "uygun" simgesi imageres.dll dosyasında Icon # 143 olacaktır. Explorer ad alanında bir Özel klasöre başvuru almak gibi işletim sisteminin ikon detaylarını almanın bir yolu var mı?

+0

imageres.dll Simge # 143 için ok değil sen ? – JPBlanc

+0

Komut dosyası bir Windows XP makinesinde çalışıyorsa, dizinler yapıların arasında farklılık gösterdiğinden, yanlış simgeyi yukarı çekecektir. – bshacklett

+0

Neden bağlantı sistemi oluşturmadan önce işletim sistemi adını test edip seçimi değiştirmek için numarayı değiştirmeyin? –

cevap

6

Ağ Bağlantılarım Bunu bilerek 208d2c60-3aea-1069-a2d7-08002b30309d

, sonuç yani olacaktır HKEY_CLASSES_ROOT\CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}\DefaultIcon

varsayılan kayıt defteri değerini okuyabilir CLSID vardır %SystemRoot%\system32\imageres.dll,-25