domenica 6 luglio 2008
E così anche per me è arrivato il momento di di abbandonare il blog di UGIdotNET.
Ovviamente non perchè ci fosse qualche problema, ma più che altro per una forma di correttezza dal momento che il carattere dei miei post da tempo è di carattere sistemistico più che sviluppativo. Ho quindi accettato l'invito su Sysadmin con cui collaboro ormai da tempo di unirmi al loro Blog.
Visto che entrambe le community usano lo stesso motore di testo ho optato per la migrazione e per il momento ho messo un redirect sull'homepage i post invece li ho lasciati accessibili almeno per il momento.
Lasciatemi dire che l'esperienza con UGidotNET è stata positiva sotto tutti i punti di vista, mi ha fatto venir voglia di aprire un blog, di approfondire le tecnologie che usavo ma soprattutto di conoscere gente preparatissima e piacevole.
Continuerò a seguire questa community e sicuramente qualche post sviluppativo mi scapperà sul nuovo blog, perchè anche se le esigenze lavorative impongono determinate strade, la passione per la programmazione e per .NET in particolare comunque rimane.
Un saluto a tutti.
Ermanno
lunedì 30 giugno 2008
Se all'apertura di FileMon compare l'errore "Your account does not have the debug Programs privilege, which is required to run Filemon" è possibile risolvere il problema modificando una Group Policy Locale per far si che l'utente corrente abbia il privilegio di eseguire il Debug delle applicazioni.
In Windows XP Professional è possibile utilizzare la seguente procedura:
- Selezionare Start -> Esegui e digitare secpol.msc
- Selezionare Criteri locali -> Assegnazione diritti utenti
- Selezionare Debug di programmi
- Selezionare Azione -> Proprietà
- Selezionare Aggiungi utente o gruppo e aggiungere l'utente corrente
- Riavviare il computer.
mercoledì 25 giugno 2008
Piano piano mi sto spostando sempre più verso la sfera sistemistica anche se Exchange è un prodotto che uso dalla versione 2000. Exchnage 2007 è comunque stato completamente riprogettato e l'esame oltre a verificare la preparazione riguardo a installazione, configurazione, monitoraggio e ripristino punta anche molto su quelle che sono le novità del prodotto. Quindi occorre comprendere bene i ruoli e conoscere i comandi utilizzati nella shell perchè in questo esame viene data molta più enfasi alla riga di comando che all'interfaccia grafica. Non è comunque così strano dal momento che in Exchange 2007 PowerShell gioca un ruolo fondamentale.
giovedì 19 giugno 2008
Su Sysadmin.it è stato pubblicato il mio articolo Supporto delle applicazioni legacy tramite Virtual PC 2007 in cui ho cercato di sviscerare tutti gli aspetti di questo tipo di problematica IT raccogliendo due anni di esperienze sul campo.
Se vi va o vi capita di leggerlo datemi un parere.
[Update]
Nel caso rilevaste problemi nell'accedere all'articolo, lo stesso è displonibile anche al seguente link:
http://xoomer.alice.it/ermannogoletto/Articles/IT/SupportoAppLegacyVPC2007/
lunedì 16 giugno 2008
Ci sono vari metodi di farlo ad esempio usare SQL-DMO (SQL Server 2000) o meglio ancora SMO (SQL Server 2005). Ma questi due metodi prevedono di installare sui client le relative dll.
Un altro modo invece è quello di usare MC-SQLR ovvero il SQL Server Resolution Protocol e quindi di inviare un pacchetto
CLNT_BCAST_EX e analizzare i pacchetti di risposta di risposta server SVR_RESP.
Qui trovate un esempio Locate SQL Server instances on the local network, l'autore aveva analizzato il traffico di rete per capire come funzionava il protocollo ora con la pubblicazione delle specifiche dei protocolli Microsoft non è più necessario: MC-SQLR]: SQL Server Resolution Protocol Specification.
lunedì 9 giugno 2008
Con l'installazione base di WSS 3.0 (e di WSUS) viene installato il Windows Internal Database, per limitare la RAM utilizzata da questa instanza di SQL Server è possibile utilizzare SQLCmd.
Di seguito viene riportata la procedura per visualizzare e impostare la RAM utilizzata:
- Installazione del Microsoft SQL Server Native Client
- Installazione del Microsoft SQL Server 2005 Command Line Query Utility
- Aprire il prompt dei comandi.
- Connettersi all’istanza di SQL Server 2005 Embedded Edition Service digitando:
“%ProgramFiles%\Microsoft SQL Server\90\Tools\binn\sqlcmd” -S \\.\pipe\mssql$microsoft##ssee\sql\query -E
- Visualizzare le impostazioni della RAM digitando:
USE master
GO
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_configure 'max server memory (MB)'
GO
EXEC sp_configure 'show advanced options', 0
GO
- Modificare le impostazioni della RAM digitando:
USE master
GO
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_configure 'max server memory (MB)', MaxServerMemory
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_configure 'show advanced options', 0
GO
- Disconnettersi all’istanza di SQL Server 2005 Embedded Edition Service digitando:
EXIT
Problemi analoghi si possono avere con ISA 2004 o ISA 2006 e MSDE.
Per ulteriori informazioni si veda You may experience high memory usage on a computer that is running ISA Server 2004 or ISA Server 2006 and that logs messages to an MSDE database.
venerdì 30 maggio 2008
Per impostazione predefinita in Windows Server 2003 è abilitata la Protezione avanzata di Internet Explorer ciò causa il seguente errore se provate ad avviare eseguibili, setup etc da una share di rete anche se sulla stessa avete tutti diritti necessari:
Impossibile accedere alla periferica, al percorso o al file specificato. E' probabile che non si disponga delle autorizzazioni necessarie.
Le possibili sluzioni sono:
- Aggiungere il o i server su cui risiedono le share nell'eleco dei siti Intranet Locale.
- Se l'utente appartiene ad un grupoo amministrativo disabilitare la Protezione avanzata di Internet Explorer per gruppi Amministrativi.
- Disinstallare la Protezione avanzata di Internet Explorer
E' possibile disinstallare la Protezione avanzata di Internet Explorer o modificarle le impostazioni tramite:
Panello di controllo -> Installazioni applicazioni -> Installazioni componenti di Windows -> Protezione avanzata di Internet Explorer
Per ulteriori informazioni si veda Diversa esplorazione con il browser in seguito all'impostazione della protezione avanzata di Internet Explorer e in particolare:
"La protezione avanzata di Internet Explorer impone delle limitazioni anche all'accesso a script, file eseguibili e altri file potenzialmente non sicuri su un percorso UNC, a meno che tale percorso non sia stato aggiunto esplicitamente all'area Intranet locale. Ad esempio, se si desidera accedere a \\server\share\setup.exe, sarà necessario aggiungere \\server all'area Intranet locale. "
giovedì 29 maggio 2008
Una delle impostazioni che possibile fare su un'istanza di SQL Server è quella del percorso di default in cui memorizzare file dati e logs di un nuovo database. Ho fatto diverse ricerca, ma non trovato un modo semplice per ricavare tramite T-SQL tali informazioni.
A quanto sembra se si modificano tali percorsi questi vengono memorizzati nelle chiavi di registry:
- HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer\DefaultData
- HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer\DefaultLog
In caso contrario i path è quello specificato durante l'installazione per i File di dati quindi si può pensare di ricavarli dai path dei file mdf e ldf del database master.
Di seguito uno script T-SQL per ricavare il path di default per i file di dati:
USE master
declare @DefaultData nvarchar(512)
--Lettura chiave di registry HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer\DefaultData
EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData',
@DefaultData OUTPUT, 'no_output'
--Se la chiave di registry non esiste si utilizza il path del file mdf del database master
IF (@DefaultData IS NULL)
BEGIN
SELECT @DefaultData = SUBSTRING(physical_name, 0, CHARINDEX(N'master.mdf', physical_name))
FROM sys.database_files
WHERE name='master'
END
--Rimozione eventuale slash finale
IF ((@DefaultData IS NOT NULL) AND (CHARINDEX(N'\', @DefaultData, len(@DefaultData)) > 0))
BEGIN
SELECT @DefaultData = STUFF (@DefaultData,len(@DefaultData),1,N'')
END
SELECT @DefaultData
Mentre questo è lo script per ricavare il path di default per i file di log:
USE master
declare @DefaultLog nvarchar(512)
--Lettura chiave di registry HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer\DefaultLog
EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog',
@DefaultLog OUTPUT, 'no_output'
--Se la chiave di registry non esiste si utilizza il path
--del file mdf del database master
IF (@DefaultLog IS NULL)
BEGIN
SELECT @DefaultLog = SUBSTRING(physical_name, 0, CHARINDEX(N'mastlog.ldf', physical_name))
FROM sys.database_files
WHERE name='mastlog'
END
--Rimozione eventuale slash finale
IF ((@DefaultLog IS NOT NULL) AND (CHARINDEX(N'\', @DefaultLog, len(@DefaultLog)) > 0))
BEGIN
SELECT @DefaultLog = STUFF (@DefaultLog,len(@DefaultLog),1,N'')
END
SELECT @DefaultLog
Se poi occorre usare questi script in un programma .NET il mio consiglio è quello di non inserire lo script nel codice, ma di creare dei file con estensione sql in questo modo Visual Studio visualizzerà lo script evidenziando le parole chiave esattamente come in Management Studio. Quindi aggiungere il file come risorsa in questo modo VS 2005 e sucessivi creeranno una comoda prorietà stringa in My.Resources che conterrà il testo del file. In VS 2003 è possibile impostare il file come Embedded e tramite un po' di codice leggere il contenuto del file:
Dim text As String = String.Empty
Dim resource As System.IO.Stream = _
System.Reflection.Assembly.GetExecutingAssembly.GetManifestResourceStream( _
"NameSpace.FileName")
Dim reader As New System.IO.StreamReader(resource)
text = reader.ReadToEnd()
reader.Close() : reader = Nothing
resource.Close() : resource = Nothing
martedì 27 maggio 2008
Oggi mi capitato di avere problemi visitando un sito, su PC che utilizzavano ISA 2006 come gateway veniva visualizzato il seguente errore:
Error Code: 500 Internal Server Error. The parameter is incorrect. (87)
Se invece ISA Server veniva impostato come proxy l'errore era:
Technical Information (for support personnel)
Error Code: 502 Proxy Error. The parameter is incorrect. (87)
IP Address: aa.bb.cc.dd
Source: web filter
Il problema è legato alla funzionalità Http Compression di ISA Server infatti disabilitandola il problema scompare.
Questo messaggio poteva comparire anche con ISA 2004 a riguardo di vedano:
In questo caso però credo il problema riguardi il sito o il provider che lo ospita e la sua compatibiltà nel soddisfare le richieste http compresse.
Per ovviare oltre ovviamente alla soluzione drastica di diabilitare la funzionalità richiesta contenuti Http compressi, è possibile configurare un'eccezione sull'indirizzo IP fonito nel messaggio di errore visualizzato quando ISA è impostato come proxy.
mercoledì 21 maggio 2008