giovedì 25 febbraio 2010

Maledetto Wallpaper DELL …

Ragazzi la DELL fa delle belle macchine, ma non so perche', qualche "genio" dell'aziendaha deciso di inserire il loro un loro bel wallpaper \windows\system32\DELLWALL.BMP (un simpatico BMP da 1.83 MB) che quando ci si connette in RDP fa sentire tutta la sua simpatia rendendo la connessione cosi' lenta che ho visto fior di sistemisti tentare il suicidio.

Infastidito, e non poco, di questa situazione, ho fatto una rapida ricerca ed ho applicato la soluzione seguente:

  1. Avviare regedit
  2. Individuare la chiave HKEY_USERS\.DEFAULT\Control Panel\Desktop
  3. Cancellare il contenuto del valore Wallpaper
  4. Riavviare la macchina


 

domenica 21 febbraio 2010

Upgrade da Microsoft Team Foundation Server 2010 Beta 2 a Microsoft Team Foundation Server 2010 RC

Si sta avvicinando la fatidica data di rilascio di Microsoft Team Foundation Server 2010 (12 Aprile 2010) e, come molti altri professionisti IT, mi sono "confrontato" con l'aggiornamento dell'ambiente dedicato al test di questo prodotto, dalla versione Beta 2 alla versione Release Candidate e, come tanti altri, mi sono posto il problema di come fare a non perdere tutto il lavoro effettuato tra una release e l'altra... ebbene di seguito la procedura step-by-step per l'upgrade da Team Foundation Server 2010 Beta 2 a Team Foundation Server RC.



1. Effettuare il backup dei database


2. Disinstallare TFS 2010 da tutti server della "Farm TFS"


3. Disinstallare il .Net Framework 4.0 beta 2 da tuti i server della farm TFS


4. Selezionare Upgrade e cliccare su Start Wizard



5. Selezionare Databases quindi cliccare su List Available Databases



6. Selezionare la checkbox By checking this box, I confirm that I have a current backup e cliccare su Next



7. Digitare le credenziali dell'account di servizio di TFS, cliccare su Test e, se non ci sono errori, cliccare su Next



8. Selezionare la checkbox Configure Reporting for use with Team Foundation Server e cliccare su Next



9. Cliccare su Next



10. Cliccare su List Available Databases e quindi cliccare su Next



11. Cliccare su Test



12. Cliccare su Next



13. Selezionare la checkbox Use a different account than the Team Foundation Server service account for the report reader account e digitare le credeziali per l'account di accesso a reporting services



14. Cliccare su Test e, se non si verificano errori, cliccare su Next



15. Selezionare la checkbox Configure SharePoint for use with Team Foundation Server e cliccare su Next



16. Selezionare Use an existing server farm for SharePoint



17. Cliccare su Test in corrispondenza dei due siti, quindi, cliccare su Next se non si verificano errori



18. Cliccare su Configure


19. Cliccare su Next



20. Cliccare su Close


21. Cliccare su Close



22. Selezionare le Team Project Collections e cliccare su Start Collection dalla console di Amministratzione di TFS 2010 RC



23. Se le Team Project Collection non si avviano, riavviare il server TFS.




Technorati : , , , , ,

Del.icio.us : , , , , ,

Zooomr : , , , , ,

Flickr : , , , , ,

lunedì 28 dicembre 2009

Invoke or BeginInvoke cannot be called on a control until the window handle has been created.

Questo errore viene tipicamente mostrato quando si tenta di installare Microsoft SQL Server 2008 SP1 su Microsoft Windows 7 o su Microsoft Windows Server 2008 R2.

Varie soluzioni sono presenti su internet ma ne esiste una ufficiale anche sul sito Microsoft: http://support.microsoft.com/kb/975055 che consiste nell'istallazione del Cumulative Update di Microsoft SQL Server 2008 SP 1.

Io ho risolto diversamente (anche perche' il problema mi si e' presentato prima della pubblicazione della soluzione ufficiale):
  1. Estrarre il contenuto del file SQLServer-2008SP1-KB938369-x63-ENU.exe in una cartella temporanea
  2. Avviare il prompt dei comandi come amministratore
  3. Spostarsi sulla cartella in cui sono stati estratti i files
  4. Lanciare l'eseguibile Setup.exe

giovedì 29 ottobre 2009

Cancellazione Virtual Machine "Fantasma" in Hyper-V

Mi e' capitato di ritrovare una VM fantasma nella console di Hyper-V e di non riuscire ad elimarla in maniera ortodssa (Menu' contestuale/elimina) cosi', intestardito ho deciso di percorrere altre vie.

Grazie ad un tool molto utile denominato WMI Code Creator, ho generato il codice seguente:

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\virtualization")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Msvm_ComputerSystem Where EnabledState >= 2",,48)
For Each objItem in colItems
Wscript.Echo "-----------------------------------"
Wscript.Echo "Msvm_ComputerSystem instance"
Wscript.Echo "-----------------------------------"
If isNull(objItem.AssignedNumaNodeList) Then
Wscript.Echo "AssignedNumaNodeList: "
Else
Wscript.Echo "AssignedNumaNodeList: " & Join(objItem.AssignedNumaNodeList, ",")
End If
Wscript.Echo "Caption: " & objItem.Caption
Wscript.Echo "CreationClassName: " & objItem.CreationClassName
If isNull(objItem.Dedicated) Then
Wscript.Echo "Dedicated: "
Else
Wscript.Echo "Dedicated: " & Join(objItem.Dedicated, ",")
End If
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo "ElementName: " & objItem.ElementName
Wscript.Echo "EnabledDefault: " & objItem.EnabledDefault
Wscript.Echo "EnabledState: " & objItem.EnabledState
Wscript.Echo "HealthState: " & objItem.HealthState
If isNull(objItem.IdentifyingDescriptions) Then
Wscript.Echo "IdentifyingDescriptions: "
Else
Wscript.Echo "IdentifyingDescriptions: " & Join(objItem.IdentifyingDescriptions, ",")
End If
Wscript.Echo "InstallDate: " & objItem.InstallDate
Wscript.Echo "Name: " & objItem.Name
Wscript.Echo "NameFormat: " & objItem.NameFormat
Wscript.Echo "OnTimeInMilliseconds: " & objItem.OnTimeInMilliseconds
If isNull(objItem.OperationalStatus) Then
Wscript.Echo "OperationalStatus: "
Else
Wscript.Echo "OperationalStatus: " & Join(objItem.OperationalStatus, ",")
End If
If isNull(objItem.OtherDedicatedDescriptions) Then
Wscript.Echo "OtherDedicatedDescriptions: "
Else
Wscript.Echo "OtherDedicatedDescriptions: " & Join(objItem.OtherDedicatedDescriptions, ",")
End If
Wscript.Echo "OtherEnabledState: " & objItem.OtherEnabledState
If isNull(objItem.OtherIdentifyingInfo) Then
Wscript.Echo "OtherIdentifyingInfo: "
Else
Wscript.Echo "OtherIdentifyingInfo: " & Join(objItem.OtherIdentifyingInfo, ",")
End If
If isNull(objItem.PowerManagementCapabilities) Then
Wscript.Echo "PowerManagementCapabilities: "
Else
Wscript.Echo "PowerManagementCapabilities: " & Join(objItem.PowerManagementCapabilities, ",")
End If
Wscript.Echo "PrimaryOwnerContact: " & objItem.PrimaryOwnerContact
Wscript.Echo "PrimaryOwnerName: " & objItem.PrimaryOwnerName
Wscript.Echo "ProcessID: " & objItem.ProcessID
Wscript.Echo "RequestedState: " & objItem.RequestedState
Wscript.Echo "ResetCapability: " & objItem.ResetCapability
If isNull(objItem.Roles) Then
Wscript.Echo "Roles: "
Else
Wscript.Echo "Roles: " & Join(objItem.Roles, ",")
End If
Wscript.Echo "Status: " & objItem.Status
If isNull(objItem.StatusDescriptions) Then
Wscript.Echo "StatusDescriptions: "
Else
Wscript.Echo "StatusDescriptions: " & Join(objItem.StatusDescriptions, ",")
End If
Wscript.Echo "TimeOfLastConfigurationChange: " & objItem.TimeOfLastConfigurationChange
Wscript.Echo "TimeOfLastStateChange: " & objItem.TimeOfLastStateChange
Next

Lo script genera una lista con tutte le proprieta' delle macchine virtuali che si trovano sull'Hyper-V server in un determinato momento, producendo un Output come questo:

Msvm_ComputerSystem instance
-----------------------------------
AssignedNumaNodeList:
Caption: Virtual Machine
CreationClassName: Msvm_ComputerSystem
Dedicated:
Description: Microsoft Virtual Machine
ElementName: EN_BPB_BPBEXCH
EnabledDefault: 2
EnabledState: 3
HealthState: 5
IdentifyingDescriptions:
InstallDate: 20091007075603.000000-000
Name: 5975D3F3-EE3D-412A-AC92-DFBAB45F58D0
NameFormat:
OnTimeInMilliseconds: 0
OperationalStatus: 10
OtherDedicatedDescriptions:
OtherEnabledState:
OtherIdentifyingInfo:
PowerManagementCapabilities:
PrimaryOwnerContact:
PrimaryOwnerName:
ProcessID: 0
RequestedState: 12
ResetCapability: 1
Roles:
Status:
StatusDescriptions:
TimeOfLastConfigurationChange: 20091007085737.000000-000
TimeOfLastStateChange: 20091007091948.000000-000

Supponendo che la macchina fantasma si chiamasse PHANTOM_VM, ricaviamo il nome file di configurazione della macchina dalla proprieta' name: 5975D3F3-EE3D-412A-AC92-DFBAB45F58D0.
A questo punto sara' sufficiente trovare il file lnk collegato al file di configurazione della macchina fantasma e procedere alla sua cancellazione. Nel mio caso il file si trovava in C:\Users\All Users\Microsoft\Windows\Hyper-V\Virtual Machines\

martedì 13 ottobre 2009

Esecuzione locale script disattivata

Oggi mi e' capitato, a seguito dello spostamento di una Virtual Machine da un Server con Hyper-V 2008 R2 ad un altro praticamente identico, di dover riattivare la VM.
Come da prassi ho cliccato sulla notify icon in basso a destra sulla taskbar di Windows ma, invece di comparire la solita finestra di dialogo con la scelta del tipo di attivazione, mi compare questo simpatico messaggio:
"Impossibile eseguire l'Attivazione di Windows. L'esecuzione locale di script e' stata disattivata su questo computer. Cio' puo' essere stato fatto a scopo preventivo contro i virus o come misura di sicurezza. Una volta attivata l'esecuzione locale dello script, riavvare l'attivazione"

Dopo qualche ora di ricerche (vane) sulla KB di Microsoft, mi imbatto nella seguente soluzione:

1. Avviare Regedit
2. Impostare "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0\1400" a 0
3. Impostare "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0\1400" a 0
4. Chiudere il Registry Editor
5. Rilanciare il processo di attivazione di Microsoft Windows

Il valore 1400 corrisponde alla policy di Attivazione Scripting Locale

martedì 28 luglio 2009

apnet_perf.dll e l'errore Event id 1008

Questa mattina mentre controllavo una procedura notturna che lavora su Microsoft Active Directory, ho notato qualcosa che non andava: tale procedura era stranamente ancora in esecuzione e procedeva con estrema e sospetta lentezza. Cosi' dopo la consultazione dei vari log (Event Viewer di Windows e quelli generati dall'applicazione) mi sono reso conto che il problema era altrove: l'unico altro elemnto in gioco, oltre alla macchina su cui viene giornalmente eseguita l'applicazione, e' il Domain Controller di riferimento. Mi connetto al Domain Controller e vedo il registro applicazione di Windows completamente rosso e saturo dell'errore:

Tipo evento: Errore
Origine evento: Perflib
Categoria evento: Nessuno

ID evento: 1008
Data: 17/07/2008
Ora: 13.29.04
Utente: N/D
Computer: XXXXXXXX

Descrizione:
La procedura Open per il servizio "ASP.NET" nella DLL
"C:\WINNT\Microsoft.NET\Framework\v2.0.50727\aspnet_perf.dll" non è riuscita.
I dati delle prestazioni per questo servizio non sono disponibili.

Il codice di stato restituito è DWORD 0.
Dati:
0000: 05 40 00 80 .@.€

Fortuna :) il messaggio dell'errore e' abbastanza eloquente: ci sono problemi con i performance counters di aspnet.

Prima di cominciare consulto comunque la rete per verificare la presenza di eventuali note sulla KB di Microsoft o su post o forum tecnici, non si sa mai qualcuno puo' aver avuto il mio stesso problema e magari l'ha pure risolto ... ed infatti dopo una brevissima ricerca su google trovo il post
http://www.archivum.info/microsoft.public.it.winserver/2008-07/msg00748.html che, guarda caso, descrive esattamente il mio problema.

Fondamentalmente la soluzione sta nel disabilitare i performance counters di aspnet in quanto trattasi di un'issue nota a Microsoft e su cui, nel momento in cui scrivo, non hanno ancora rilasciato patch (per dovere di cornaca devo dire che il sistema affetto dall'errore e' un Windows 2000 SP4, quindi un sistema operativo ormai in disuso e fuori manutenzione). Di seguito i passaggi da me intrapresi per la risoluzione del problema:
  1. dal prompt dei comandi mi sono portato nella cartella v2.0* del .Net Framework
  2. ho lanciato il comando aspnet_regiis -ua
  3. ho riavviato la macchina
Il problema non si e' piu' ripresentato. :)


venerdì 17 luglio 2009

WISP CitrixRedirectionNewMenu ed il messaggio "Failed to find xml file"

Durante l'installazione e la configurazione di Citrix Web Interface for SharePoint, mi e' capitato di riscontrare la segnalazione:

unable to find xml file 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\features\CitrixRedirectionNewMenu\feature.xml'

Googla e rigoogla, non ottengo alcuna informazione utile alla risuluzione del mio probelma... dopo aver effettuato tutti i controlli di rito (ACL Windows e MOSS) sono sempre piu' perplesso ma, sicuro che si trattasse di un problema di permessi dell'utente con cui cercavo di attivare la feature CitrixRedirectionNewMenu (SharePoint Farm Administrator Account), rieseguo il comando con un utente diverso dal precedente (Amministratore della macchina e Site Collection Administrator del sito su cui cerco di attivare la Feature). Anche se i due utenti hanno praticamente gli stessi privilegi, anzi il secondo account, non e' amministratore della Farm di SharePoint, con quest'ultimo riesco ad attivare la feature senza la segnalazione del fastidiosissimo errore di cui sopra...

Riporto, per chiarezza, i privilegi dell'account con cui sono riuscito ad attivare la feature:
Amministratore della macchina
Domain Admin
Site Collection Administrator

Il comando con cui attivare la feature:
CitrixContentRedirectionNewMenu -url http://myserver