System.Management
Snippet, codice e quant'altro relativo alla gestione mediante questo namespace.
<tip>
Per utilizzare remote desktop accedendo alla sessione console è sufficiente fare:
mstsc c:\serverx.rdp -console
dove serverx.rdp è il file di configurazione di remote desktop.
più info:http://support.microsoft.com/kb/278845
</tip>
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
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
Powershell (noto fino a qualche tempo fa con il nome di Monad) è una shell che permette di utilizzare scripting con managed code.Ma che cos'è PowerShell?"Windows PowerShell is a new task-based command line shell and intuitive scripting language for system administration that provides comprehensive control and automation for Windows administrators."L'intento dei creatori, come si legge nella documentazione, è quello di aprire le porte ad un nuovo modo di amministrare la piattaforma windows, utilizzando un linguaggio nuovo, basato su una logica ad oggetti ma rimanendo sempre un linguaggio di scripting.A differenza delle altre shells (tipo il cmd.exe), powershell non esegue un...
Con l'aggiornamento al Service Pack 1
di Windows 2003 Server è stata introdotta una modifica nel provider WMI: per le operazioni remote
su alcune classi è necessario utilizzare una enctrypted connection,
specificando quindi la proprietà AuthenticationLevel (in caso
contrario si riscontrerà un errore del tipo "Access Denied").
Non è una notizia proprio fresca fresca, me ne rendo conto... ma ci sono
incappato solo oggi :(
powered by IMHO 1.3