# encoding: ascii # api: powershell # title: Start-AppVTestMode # description: This Script allows testing of newly sequenced App-V apps without having to specify the file:// URL in the OSD, or distributing via the App-V infrastructure or SCCM. It scans a directory and loads all XML manifests for app-v packages in that directory, overriding the default distribution URLs. # version: 4.5 # type: script # author: jgrote # license: CC0 # function: Show-MessageBox # x-poshcode-id: 2089 # x-archived: 2013-05-10T08:50:19 # x-published: 2013-08-18T22:44:00 # # Replace the $Repository variable in the script with the path to your app-v apps. The OSD files must be present. # #This script is designed to set a test server to use a specific directory for App-V Apps, to enable testing #Without having to publish to an external repository. #REQUIREMENTS: Windows 2008 ##FUNCTIONS # DESCRIPTION: Displays the attention message box & checks to see if the user clicks the ok button. function Show-MessageBox ($title, $msg) { [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null [Windows.Forms.MessageBox]::Show($msg, $title, [Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Warning, [System.Windows.Forms.MessageBoxDefaultButton]::Button1, [System.Windows.Forms.MessageBoxOptions]::DefaultDesktopOnly) | Out-Null } function Show-InformationBox ([string]$Title,[string]$Message) { [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null [Windows.Forms.MessageBox]::Show($Message, $Title, [Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Information, [System.Windows.Forms.MessageBoxDefaultButton]::Button1, [System.Windows.Forms.MessageBoxOptions]::DefaultDesktopOnly) | Out-Null } ##VARIABLES #App-V Test Repository $Repository = "\\server\share\AppVRepository\2-TestPackages" #App-V Client Registry Path $AppVRegRoot = "HKLM:\SOFTWARE\Microsoft\SoftGrid\4.5\Client" # Different App-V Client Registry for x64 systems if ((Get-WMIObject win32_operatingsystem).OSArchitecture -match "64-bit") { $AppVRegRoot = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\SoftGrid\4.5\Client" } ##SCRIPT #Start Transaction $transEnterAppVTestMode = start-transaction #Enter AppV Registry Path set-location $AppVRegRoot #Get Original App-V Settings $ASROriginalSetting = (get-itemproperty Configuration).ApplicationSourceRoot $AIFSOriginalSetting = (get-itemproperty Configuration).AllowIndependentFileStreaming #Set AppV Variables set-itemproperty Configuration -name "ApplicationSourceRoot" -value $repository set-itemproperty Configuration -name "IconSourceRoot" -value $repository #Delete all App-V Applications sftmime DELETE obj:app /global #Get App Manifest Files from Repository and import them set-location C: pwd set-location $repository pwd $i=1 get-childitem $repository | where {$_.Name -match "manifest.xml"} | foreach { echo $_.Name sftmime ADD PACKAGE:TestApp$i /manifest $_.Name /global $i++ } #Display Dialog box that the test mode is active Show-InformationBox "App-V Testing Mode is active" "Apps will be sourced from $Repository. NOTE: File Associations (launching programs by double-clicking their files like .docx) will not be testable due to SCCM vAppLauncher bug Click OK to return to normal mode" #Set AppV Variable back to original setting and close script. set-location $AppVRegRoot pwd set-itemproperty Configuration -name "ApplicationSourceRoot" -value "" set-itemproperty Configuration -name "IconSourceRoot" -value "" #Delete all App-V Applications sftmime DELETE obj:app /global