Powershell
如何在 Powershell 靜默/無人值守腳本中更改 Notepad++ 的預設安裝路徑
當我執行我的 PowerShell 腳本時,我無法弄清楚將
C:\Program Files\
Notepad++ 的預設安裝路徑更改為我希望它安裝到的驅動器的參數。我正在嘗試進行靜默安裝,但無法手動更改。有誰知道我可以添加哪些參數來將程序安裝到
E:
驅動器?下面是我的程式碼以及我在 PowerShell 中嘗試的內容。我一直在搞亂
-ArgumentList
參數,以確定是否可以將其指向E:
驅動器,但到目前為止還沒有運氣。我也在 Windows Server 2012 上執行它。function install-Notepadpp() { $install="*PATH*\npp.6.6.2.Installer.exe" Start-Process -FilePath $install -ArgumentList '/InstallDirectoryPath:"E:\"','/S' -Wait -Verb RunAs Write-Host "Notepad++ has been installed." -ForegroundColor Green } ##### This is Windows calling the function to install the script install-Notepadpp
你真的需要安裝嗎?您在開發站點上有獨立的軟體包,您可以將其複製到任何您想要的地方。至於“酷”的上下文菜單外掛,它們很簡單,可以手動添加。
以下是完成此操作所需採取的步驟的簡要說明:
- 讓您的 Powershell 將獨立包的內容複製到所需的文件夾。
- 使用 Powershell 生成新的 GUID
$$ guid $$::NewGUID()
- 將 GUID 寫到變數中(以便您以後可以引用它)。
- 在 HKEY_CLASSES_ROOT\CLSID\ 下添加 GUID 條目,方法與添加其餘 GUID 的方式相同。
- 創建子容器InprocServer32和Settings
- 在InprocServer32中,將*(預設)*值設置為所需的 Notepad++ 安裝路徑,直接指向 NppShell_06.dll(例如 C:\Program Files\Notepad++\NppShell_06.dll)
- 添加ThreadingModel REG_SZ 條目並將其值設置為Apartment
- 在Settings子容器中,相應地設置值 - 有關有效值的列表,請參考安裝了 Notepad++ 的機器。最“有趣”的是“路徑”和“標題”
- 將您之前生成的 GUID 條目添加到 HKEY_CLASSES_ROOT*\shellex\ContextMenuHandlers\ 下*(預設)* 值下的子容器“ANotepad++”
這應該這樣做。雖然我沒有在我的機器上測試上述內容,但我很有信心這將解決“手動”安裝問題。作為旁注,可能值得作為對開發人員的建議(或者,作為最好的方式,自己編寫!)添加一些靜默安裝配置開關,這樣我們就不必為上述“解決方法”而煩惱. 如果您在設置時遇到一些問題,請告訴我。