Powershell

如何在 Powershell 靜默/無人值守腳本中更改 Notepad++ 的預設安裝路徑

  • October 17, 2016

當我執行我的 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 的方式相同。
  • 創建子容器InprocServer32Settings
  • 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++”

這應該這樣做。雖然我沒有在我的機器上測試上述內容,但我很有信心這將解決“手動”安裝問題。作為旁注,可能值得作為對開發人員的建議(或者,作為最好的方式,自己編寫!)添加一些靜默安裝配置開關,這樣我們就不必為上述“解決方法”而煩惱. 如果您在設置時遇到一些問題,請告訴我。

引用自:https://serverfault.com/questions/598186