.NET

Windows 2008 RC - Core

Quando si installa windows 2008 è possibile scegliere l'opzione "Core" che, a parte una nuda schermata cmd, non propone altro. Qualche immagine, per chi non avesse ancora installato la RC0, è disponibile a questo indirizzo: http://4sysops.com/archives/windows-server-longhorn-server-core-essentials/   Technorati Tag: windows 2008 rc0 , windows 2008 core , sysadmin

posted @ lunedì 22 ottobre 2007 21:13 | Feedback (0)

Algoritmi e strutture dati

Cercando informazioni sull'algoritmo di Dijkstra ho trovato questa implementazione in C# 2.0 delle strutture dati ad opera di Scott Mitchell, uno dei fondatori di 4guysfromrolla.com.Più in basso è disponibile l'implementazione dell'era pre-generics   powered by IMHO 1.3

posted @ venerdì 18 agosto 2006 15:26 | Feedback (2)

File System e date

Una nota poco simpatica, ma da tenere ben presente, per tutti coloro che lavorano con i file e che utilizzano i loro attributi: il dato FileInfo.LastWriteTime non è completamente affidabile.".. the last write time is not fully updated until all handles that are used for writing are closed. This is the most likely reason that the customer saw the last write time reported incorrectly ... "Maggiori info:http://blogs.msdn.com/bclteam/archive/2006/07/25/674253.aspx powered by IMHO 1.3

posted @ giovedì 17 agosto 2006 15:24 | Feedback (3)

Microsoft Solution for Windows-based Hosting v4.0

E' stata rilasciata la nuova versione (4.0) del Microsoft Solution for WBH. Contiene una serie di tools, best practices ed esempi di codice.Tra le altre cose nei samples è presente un webservice per la gestione di IIS.Scarica > powered by IMHO 1.3

posted @ giovedì 17 agosto 2006 14:33 | Feedback (3)

[WMI] Permessi NTFS con C#

Esistono numerosi tool (tra i quali secondo me il migliore è xcacls, qui nella versione scripting) che permettono di lavorare con i permessi NTFS. Un'altra strada possibile è quella di utilizzare WMI per accedere a questo tipo di informazioni.Il piccolo script qui sotto mostra l'utilizzo della classe Win32_LogicalFileSecuritySetting per scoprire quali sono gli utenti e i permessi associati ad una determinata cartella (o file):         public void MostraACL(string Path)        {                                    using (ManagementObject mob = new ManagementObject("root\\CIMV2", "Win32_LogicalFileSecuritySetting.Path='" + Path + "'", null))            {                //eseguo il metodo GetDescriptor per ottenere gli elementi                object[] obs = new object[] { 0 };                ManagementBaseObject mbase = (ManagementBaseObject)mob.InvokeMethod("GetSecurityDescriptor", null, null);                //controllo che esistano dei valori                if (((uint)(mbase.Properties["ReturnValue"].Value)).Equals(0))                {                    ManagementBaseObject desc = (ManagementBaseObject)(mbase.Properties["Descriptor"].Value);                    ManagementBaseObject[] ACL = ((ManagementBaseObject[])(desc.Properties["Dacl"].Value));                    //vediamo quali sono i permessi della cartella..                    foreach (ManagementBaseObject mba in ACL)                    {                        //Dominio, Utente e SID                        ManagementBaseObject IUSR = ((ManagementBaseObject)(mba["Trustee"]));                        Console.WriteLine("==================================");                        /* Mostro Dominio\Utente : Sid */                        Console.WriteLine("{0}\\{1} : {2}", IUSR.Properties["Domain"].Value, IUSR.Properties["Name"].Value, IUSR.Properties["SIDString"].Value);                        /* Mostro i permessi */                        uint m = (uint)mba["AccessMask"];                        Console.WriteLine(":" + Enum.Format(typeof(Mask), m, "G"));                        /* Mostro la tipologia di permesso*/                        int a = int.Parse(mba["AceFlags"].ToString());                        Console.WriteLine(":" + Enum.Format(typeof(AceFlags), a, "G"));                        Console.WriteLine("==================================");                    }                    Console.Read();                }            }        } Maggiori informazioni sulle classi Win32_LogicalFileSecuritySetting > powered by IMHO 1.3

posted @ venerdì 11 agosto 2006 14:58 | Feedback (20)

My.Computer

Ho sempre preferito nettamente C# (sintassi e leggibilità tra le altre cose) ma ammetto che quando vedo: My .Computer.FileSystem.CopyDirectory("c:\inetpub\iissamples", "c:\samples") Provo un forte impulso a usare Visual Basic ... (my.computer.filesystem su msdn) powered by IMHO 1.3

posted @ domenica 23 luglio 2006 16:54 | Feedback (8)

Flickr.NET

Un wrapper (rigorosamente .NET ) per poter utilizzare Flickr... A questo indirizzo > Per adesso non l'ho provato... ma mi sembra interessante ....   powered by IMHO 1.3

posted @ lunedì 5 giugno 2006 14:51 | Feedback (1)

Determinare i permessi di un assembly

Con Permcalc.exe è possibile determinare i permessi di cui necessita un assembly (ad esempio nel caso voglia effettuare un deploy su un ambiente in medium trust): "Starting from the entry point of the application, the tool traces all code paths through all application assemblies and the shared and system libraries called from the application. The tool maintains a simulated call stack that contains all the assemblies involved in the code path trace. On every code path trace, the tool checks for the presence of declarative demands, link demands, and declarative stack walk modifiers [..]" Per maggiori info powered by IMHO 1.3

posted @ venerdì 20 gennaio 2006 19:07 | Feedback (1)

Creare Virtual Directory su IIS

E' possibile creare Virtual Directory sia utilizzando ADSI che WMI anche se entrambe le soluzioni richiedono più di 5 righe di codice .Usando EnterpriseServices invece è possibile ... using System.EnterpriseServices.Internal;[..]//creazione della virtual DirectoryIISVirtualRoot vr = new IISVirtualRoot();string sError = "";vr.Create("IIS://localhost/W3SVC/1/ROOT",@"c:\inetpub\myvdir","MyVDir",out sError);//cancellazione della virtual Directoryvr.Delete("IIS://localhost/W3SVC/1/ROOT",@"c:\inetpub\myvdir","MyVDir",out sError);   powered by IMHO 1.2

posted @ venerdì 21 ottobre 2005 14:50 | Feedback (1)