none
CUSTOMIZZARE APP IN METRO MENU WINDOWS 8 TRAMITE GPO RRS feed

  • Domanda

  • Buongiorno a tutti,

    su una nuova infrastruttura winsrv2012 std ho creato dei mandatory roaming rpofile per tutti gli utenti che si loggano a dominio. Tramite le preferencies policy riesco a gestire bene shortcut sul desktop, drive map modifiche a chiavi di registro e chi più ne ha ne metta...

    Con questo metodo riesco a gestire controllare e monitorare fino alla singola applicazione che l'utente si trova sul desktp, ovviamente avendo un profilo mandatorio (profilo in sola lettura) alla disconnessione se l'utente mette qualcosa sul desktop al successivo logon lo perde.

    Detto questo il PROBLEMA è il seguente:

    finchè devo creare link shortcut sul desktop ecc tutto ok ma come faccio a customizzare il menù start in windows 8 tramite GPO ??

    seguendo questo tutorial:

    1.       Please take a machine and pin all the applications you want to. Take an export of: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartPage2.

    2.       Create a new GPO.

    3.       Browse to: User Configuration --> Preferences-->Windows Settings--> Shortcuts

    4.       Under shortcuts àright click and click Newàshortcut

    5.       Set Action field to create.

    6.       Now open the properties of the pinned application on the base machine.

    7.       Now on the GPP set the Name field of the shortcut as C:\Users\%username%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\<Name of the app pinned to start menu on the base machine>

    8.       Now let the Target Type be File System Object which should be selected by default.

    9.       Set Location as <Specify Full Path>

    10.   Copy the Target field data from the pinned applications property à shortcut tab and paste it to the Preferences shortcut’s Target Path.

    11.   Copy the Start in, Shortcut key, Run, Comment from the pinned application’s property.

    12.   Lastly on the pinned application’s properties à Shortcut tab, click on Change icon and copy the icon path to Icon file path in the preferences shortcut. Click Apply and OK.

    13.   Once this is done. Let us take a backup of HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartPage2 from the machine running GPMC and then import the key we exported from the original machine in step 1.

    14.   Select Registry under preference and right click NewàRegistry Item.

    15.   Set Action to Replace.

    16.   Select Hive as HKEY_CURRENT_USER and click on Browse button to select the key.

    17.   Now browse to HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartPage2 and select ProgramsCache. Click apply and then OK.

    18.   Please repeat 14-17 for the below keys.

    - FavoritesResolve

    - Favorites

    - FavoritesChanges

    - FavoritesVersion

    - ProgramsCacheSMP

    Please make sure that these registry keys are applied in the same sequence or this may not work properly. The order should be like this:

    1. ProgramsCache

    2. FavoritesResolve

    3. Favorites

    4. FavoritesChanges

    5. FavoritesVersion

    6. ProgramsCacheSMP

    Please test this and share your feedback.

    NON MI TROVO NEL MIO REGISTRO WINDOWS 8 la chiave HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartPage2

    la creo a mano ? si crea in qualche modo? come devo procedere ? grazie mille

    ML

    venerdì 15 marzo 2013 13:22

Risposte

  • l'unica cosa che ho trovato per fare il pin al menu start o metro di windows 8 è tramite script (questo però è un work around):

    questo fa in maniera automatica quello che si fa cliccando su un icona sul desktop con il tasto destro e facendo "pin to start"

    il link è questo se vuoi dargli un occhio http://gallery.technet.microsoft.com/scriptcenter/How-to-pin-items-to-Start-ee960ad8#content, questo tra l'altro è di microsoft il che mi fa pensare che sia stato blindato il menù start anche per il discorso che alla fine quello che tu t trovi sul menu start sono delle app vere e proprie.

    A parer mio dal punto mio di vista sistemistico non serve a nulla il menù start all'inzio, è più una cosa realizzata per tablet e non integrata bene per la gestione con le gpo, tanto è vero che non esiste un metodo per customizzare il menù start/metro tramite gpo come lo fai creando degli shortcut sul desktop o sbaglio ??

    ML

    lunedì 18 marzo 2013 14:45
  • Con i collegamenti puoi personalizzare solo la schermata "Tutte le App" del menu Start e non proprio la schermata iniziale.

    Lo script VBS che hai trovato può essere comunque adattato per eseguire il pin sul menu start di elementi definiti, basta modificare opportunamente il Main() e poi impostare lo script al logon degli utenti .

    Il Main() potrebbe venir modificato in questo modo:

    Sub Main()
    	Dim elencoFile(2)
        	elencoFile(0) = "C:\app1.exe"
        	elencoFile(1) = "C:\app2.exe"
    	Dim strFullPaths,strFullPath,FilePath,FileName
    	Dim objShell,objFolder,objFolderItem,colVerbs
    	Dim flag,i
    	For i = 0 To  UBound(elencoFile) - 1
    				strFullPath = elencoFile(i)
    				FilePath = GetNameSpace(strFullPath)	'Get the base path of file 
    				FileName = GetFileName(strFullPath)		'Get the file name	
    				flag = 0
    				Set objShell = CreateObject("Shell.Application")  
    				Set objFolder = objShell.Namespace(FilePath)
    				Set objFolderItem = objFolder.ParseName(FileName) 
    				Set colVerbs = objFolderItem.Verbs 
    				Dim objVerb
    				For Each objVerb in colVerbs			'Verify the file can be pinned to start menu
    					If Replace(objVerb.name, "&", "") = "Pin to Start" Then 
    					objVerb.DoIt
    					Flag = 1
    					End If
    				Next
    				If flag = 1 Then 
    					msgbox "Adding the item "&FileName&" to start menu done!"
    				ElseIf flag = 0 Then 
    					msgbox "This type of file "&FileName&" can not be pinned to start menu!"
    				End If 
    			Next 
    End Sub 

    Ovviamente le msgbox andranno eliminate in produzione e sostituite con una pausa (WScript.pause).

    PS: Per i sistemi operativi Windows 8 in Italiano è necessario anche variare questa riga:

    If Replace(objVerb.name, "&", "") = "Aggiungi a Start" Then


    martedì 19 marzo 2013 14:55
    Moderatore
  • Ok, credo di aver capito il problema. E' dovuto al ciclo generale che non ha pause, quindi il comando di pin può non funzionare per tutte le applicazioni (nei test era stato utilizzato regedit che probabilmente impiega un tempo inferiore al pin rispetto ad Office).

    Al posto del blocco IF con le msgbox inserisci il comando:

    WScript.sleep(2000)



    venerdì 22 marzo 2013 09:28
    Moderatore

Tutte le risposte

  • Ciao, considera che il nuovo menu Start carica in automatico eventuali collegamenti a programmi presenti nelle cartelle "tradizionali" C:\ProgramData\Microsoft\Windows\Start Menu e C:\Users\%Username%\AppData\Local\Microsoft\Windows\Menu Start\Programmi (questo per mantenere la retrocompatibilità con applicazioni che non supportano nativamente la nuova interfaccia) quindi potresti creare dei collegamenti tramite policy: http://technet.microsoft.com/it-it/library/cc753580.aspx

    I collegamenti però vengono creati solo nel menu "Tutte le App" e non proprio nella schermata iniziale e si possono riferire solo ad applicazioni desktop.


    venerdì 15 marzo 2013 13:51
    Moderatore
  • puoi postare il link di questo tutorial ?

    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    domenica 17 marzo 2013 13:58
    Moderatore
  • sulla macchina win8 di partenza tu hai pinnato le applicazioni al menu start prima di andare a cercare la chiave startpage2 ?

    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    lunedì 18 marzo 2013 13:16
    Moderatore
  • ciao niente non la crea neanche dopo che ho fatto il pin, ne con administrator local ne con user di dominio 2012, a te funziona ? io sono in ambiente virtuale non vorrei sia questo anche se non credo... ML
    lunedì 18 marzo 2013 14:40
  • l'unica cosa che ho trovato per fare il pin al menu start o metro di windows 8 è tramite script (questo però è un work around):

    questo fa in maniera automatica quello che si fa cliccando su un icona sul desktop con il tasto destro e facendo "pin to start"

    il link è questo se vuoi dargli un occhio http://gallery.technet.microsoft.com/scriptcenter/How-to-pin-items-to-Start-ee960ad8#content, questo tra l'altro è di microsoft il che mi fa pensare che sia stato blindato il menù start anche per il discorso che alla fine quello che tu t trovi sul menu start sono delle app vere e proprie.

    A parer mio dal punto mio di vista sistemistico non serve a nulla il menù start all'inzio, è più una cosa realizzata per tablet e non integrata bene per la gestione con le gpo, tanto è vero che non esiste un metodo per customizzare il menù start/metro tramite gpo come lo fai creando degli shortcut sul desktop o sbaglio ??

    ML

    lunedì 18 marzo 2013 14:45
  • Con i collegamenti puoi personalizzare solo la schermata "Tutte le App" del menu Start e non proprio la schermata iniziale.

    Lo script VBS che hai trovato può essere comunque adattato per eseguire il pin sul menu start di elementi definiti, basta modificare opportunamente il Main() e poi impostare lo script al logon degli utenti .

    Il Main() potrebbe venir modificato in questo modo:

    Sub Main()
    	Dim elencoFile(2)
        	elencoFile(0) = "C:\app1.exe"
        	elencoFile(1) = "C:\app2.exe"
    	Dim strFullPaths,strFullPath,FilePath,FileName
    	Dim objShell,objFolder,objFolderItem,colVerbs
    	Dim flag,i
    	For i = 0 To  UBound(elencoFile) - 1
    				strFullPath = elencoFile(i)
    				FilePath = GetNameSpace(strFullPath)	'Get the base path of file 
    				FileName = GetFileName(strFullPath)		'Get the file name	
    				flag = 0
    				Set objShell = CreateObject("Shell.Application")  
    				Set objFolder = objShell.Namespace(FilePath)
    				Set objFolderItem = objFolder.ParseName(FileName) 
    				Set colVerbs = objFolderItem.Verbs 
    				Dim objVerb
    				For Each objVerb in colVerbs			'Verify the file can be pinned to start menu
    					If Replace(objVerb.name, "&", "") = "Pin to Start" Then 
    					objVerb.DoIt
    					Flag = 1
    					End If
    				Next
    				If flag = 1 Then 
    					msgbox "Adding the item "&FileName&" to start menu done!"
    				ElseIf flag = 0 Then 
    					msgbox "This type of file "&FileName&" can not be pinned to start menu!"
    				End If 
    			Next 
    End Sub 

    Ovviamente le msgbox andranno eliminate in produzione e sostituite con una pausa (WScript.pause).

    PS: Per i sistemi operativi Windows 8 in Italiano è necessario anche variare questa riga:

    If Replace(objVerb.name, "&", "") = "Aggiungi a Start" Then


    martedì 19 marzo 2013 14:55
    Moderatore
  • ciao,

    grazie per la risposta ma hai provato a levare /commentare le messagebox non ti funziona il pin to start Provare per credere su win8.

    ML

    giovedì 21 marzo 2013 15:58
  • E' necessario rimuovere l'intero blocco IF-END IF ovvero:

    If flag = 1 Then 
    msgbox "Adding the item "&FileName&" to start menu done!"
    ElseIf flag = 0 Then 
    msgbox "This type of file "&FileName&" can not be pinned to start menu!"
    End If 
    

    e non solo le msgbox inoltre è necessario eseguire la modifica che ho aggiunto se il sistema operativo è in lingua italiana.

    Lo script è stato testato.


    giovedì 21 marzo 2013 16:45
    Moderatore
  • ciao ho rimosso l'intero blocco if-end-if per levare le msgbox e non funziona su win8, ti giro il link finale per "pinnare" Excel (office2013) che ho usato io:

    Sub Main()
     Dim elencoFile(1)
         elencoFile(0) = "C:\Program Files (x86)\Microsoft Office\Office15\EXCEL.EXE"
         Dim strFullPaths,strFullPath,FilePath,FileName
     Dim objShell,objFolder,objFolderItem,colVerbs
     Dim flag,i
     For i = 0 To  UBound(elencoFile) - 1
        strFullPath = elencoFile(i)
        FilePath = GetNameSpace(strFullPath) 'Get the base path of file
        FileName = GetFileName(strFullPath)  'Get the file name 
        flag = 0
        Set objShell = CreateObject("Shell.Application") 
        Set objFolder = objShell.Namespace(FilePath)
        Set objFolderItem = objFolder.ParseName(FileName)
        Set colVerbs = objFolderItem.Verbs
        Dim objVerb
        For Each objVerb in colVerbs   'Verify the file can be pinned to start menu
         If Replace(objVerb.name, "&", "") = "Aggiungi a Start" Then
         objVerb.DoIt
         Flag = 1
         End If
        Next
        ' If flag = 1 Then
        ' msgbox "Adding the item "&FileName&" to start menu done!"
        ' ElseIf flag = 0 Then
        ' msgbox "This type of file "&FileName&" can not be pinned to start menu!"
        ' End If
       Next
     End Sub
     
    ' #########################################
    ' Get base path of the file
    ' #########################################
    Function GetNameSpace(FullPath)
     Dim Position ' Path separator.
     GetNameSpace = ""
     Position = InStrRev(FullPath, "\", -1, 1)
     If Position <> 0 Then GetNameSpace = Left(FullPath, Position)
    End Function

    ' #########################################
    ' Get file name
    ' #########################################
    Function GetFileName(FullPath)
     Dim Position ' Path separator.
     Dim lngDotPosition    ' Dot position.
     Dim strFile      ' A full file name.
     GetFileName = ""
     Position = InStrRev(FullPath, "\", -1, 1)
     If Position <> 0 Then
      GetFileName = Right(FullPath, Len(FullPath) - Position) 
     End If
    End Function

    Call Main

    venerdì 22 marzo 2013 08:13
  • dimenticavo come t dicevo se non commento le msgbox tutto funziona correttamente, il problema è che in produzione non le posso usare ;-)

    ML

    venerdì 22 marzo 2013 08:15
  • Ok, credo di aver capito il problema. E' dovuto al ciclo generale che non ha pause, quindi il comando di pin può non funzionare per tutte le applicazioni (nei test era stato utilizzato regedit che probabilmente impiega un tempo inferiore al pin rispetto ad Office).

    Al posto del blocco IF con le msgbox inserisci il comando:

    WScript.sleep(2000)



    venerdì 22 marzo 2013 09:28
    Moderatore
  • ora funziona grande Fabrizio quando non funziona qualcosa negli script è quasi sempre relativo alle tempistiche.

    ML

    venerdì 22 marzo 2013 10:48
  • Ciao MSalterego, come da regolamento il contrassegno di risposta va utilizzato solo sul messaggio che ti ha aiutato nella risoluzione del problema, oppure sul messaggio che contiene effettivamente la soluzione. Credo quindi che sia più corretto utilizzare il contrassegno nei messaggi che ti ho proposto come risposta.

    Grazie.

    giovedì 28 marzo 2013 14:02
    Moderatore
  • hai ragione scusa ho sbagliato, ora ho segnato la tua come corretta.

    ML

    martedì 2 aprile 2013 13:37