2012-11-05 3 views
5

로그인 할 때 네트워크 위치에 대한 바로 가기를 만드는 PowerShell 스크립트가 있습니다. 불행히도 오래된 저해상도 아이콘을 사용하고 있습니다. 그것은 큰 의미는 없지만 이후 버전의 Windows에서 업데이트 된 아이콘을 사용하고 싶습니다. 당신이 볼 수 있듯이, 그것은 현재 SHELL32.DLL 라이브러리에 아이콘 # 275을 사용하고올바른 "네트워크 장소"아이콘을 선택하는 방법은 무엇입니까?

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

:

여기에 바로 가기를 생성하는 기능의 관련 부분입니다. Windows 7에서 "적절한"아이콘은 imageres.dll의 아이콘 # 143입니다. Explorer 네임 스페이스의 Special 폴더에 대한 참조를 얻는 것처럼 OS에서 아이콘 세부 정보를 가져 오는 방법이 있습니까?

+0

imageres.dll의 아이콘 # 143에 대한 확인을하지 않습니다 너? – JPBlanc

+0

스크립트가 Windows XP 컴퓨터에서 실행되는 경우 빌드마다 인덱스가 다르므로 잘못된 아이콘을 표시합니다. – bshacklett

+0

왜 링크를 만들기 전에 운영 시스템 이름을 테스트하고 선택 번호를 변경 하시겠습니까? –

답변

6

네트워크 환경이 알면 208d2c60-3aea-1069-a2d7-08002b30309d

, 당신은 결과 즉 것 HKEY_CLASSES_ROOT\CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}\DefaultIcon

에서 기본 레지스트리 값을 읽을 수 있습니다 CLSID가 있습니다 %SystemRoot%\system32\imageres.dll,-25

관련 문제