Mostrando las entradas con la etiqueta C#. Mostrar todas las entradas
Mostrando las entradas con la etiqueta C#. Mostrar todas las entradas

C# - Crear usuario local y agregarlo a un grupo local


using System;
using System.DirectoryServices;

// crear un usuario local y agregarlo a un grupo local

class Crearusuario
{
    static void Main()
    {
        string usuario = "usuario1";
        string grupo = "Administradores";
        string password = "passw0rd";
        string pc = "w153622";
        string PathNT = "WinNT://" + pc + ",computer";
        string PathUsuario = "WinNT://" + pc + "/" + usuario + ",user";
        string PathGrupo = "WinNT://" + pc + "/" + grupo + ",group";
        
        try
        {                
            DirectoryEntry NT = new DirectoryEntry(PathNT);
            DirectoryEntry NuevoUsuario = NT.Children.Add(usuario, "user");
            NuevoUsuario.Invoke("SetPassword", new object[] { password });
            NuevoUsuario.Invoke("Put", new object[] { "Description", "usuario auxiliar" });
            NuevoUsuario.Invoke("Put", new object[] {"UserFlags", 0x00010000}); //NeverExpires
            NuevoUsuario.CommitChanges();
            Console.WriteLine("creado ok");
         }
         catch (Exception e)
         {
            Console.WriteLine("error al crear usuario;" + e.Message);
         }

         try // agregar a grupo
         {
            DirectoryEntry grupoNT = new DirectoryEntry(PathGrupo);
            grupoNT.Invoke("Add", new object[] { PathUsuario });
            grupoNT.CommitChanges();
            Console.WriteLine("agregado a " + grupo + " OK");
         }
         catch (Exception g)
         {
           Console.WriteLine("error al agregar " + usuario + " a " + grupo + ";" + g.Message);
         }
         Console.ReadLine();
     }
} //class Crearusuario



C# - método para escribir logs



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace programa
{
    class ejemploLog
    {

        public void eLog(string pc, string usuario, string mensaje, StreamWriter sw)
        {
            DateTime f = DateTime.Now;
            string fecha = f.ToString("dd/MM/yyyy");
            mensaje = fecha + ";" + pc + ";" + usuario + ";" + mensaje + ";";
            Console.WriteLine(mensaje);
            sw.WriteLine(mensaje);
        }
        static void Main()
        {
            string ArchLog = @"c:\pruebaLog.txt";
            StreamWriter sw = File.AppendText(ArchLog);
            ejemploLog m = new ejemploLog();
            m.eLog("pc1", "jorge", "autorizado a acceder", sw);
            m.eLog("pc2", "jorge1", "No autorizado a acceder", sw);
            m.eLog("pc3", "jorge2", "autorizado a acceder", sw);
            Console.ReadLine();
        } // main
    } // class ejemploLog
} // namespace programa

C# - Abrir un archivo que lea caracteres unicode




using System;
using System.IO;

namespace prueba
 {
   class jorge
     {
       public static void Main()
         {
           string path = "c:\a.txt";
           // abrir archivo
          StreamReader sr = new StreamReader(path, System.Text.Encoding.Default);
          string linea = sr.ReadLine();
          while (linea != null)
            {
              Console.WriteLine("linea: {0}", linea);
              linea = sr.ReadLine();
            }
          Console.ReadLine();
         }
      }
}


Primeros pasos (mios) con .csv en Powershell

bueno, hace muy poco que comencé a estudiar powershell, y me gustó bastante. Es muy robusto, y una vez que se entiende que lo que se ve no es texto, sino objetos, se puede comenzar a utilizar.
Ahora voy a mostar un archivo .csv, y formatearlo para su visualización.

Comienzo a grabar los comandos que tipee con Start-Transcript
Reemplazo datos confidenciales con (####)


C:\>Start-Transcript

**********************
Windows PowerShell Transcript Start
Start time: 20061026185314
Username : (####)
Machine : (####) (Microsoft Windows NT 5.1.2600 Service Pack 2)
**********************


Transcript started, output file is C:\Documents and Settings\(####)\Mis documentos\PowerShell_transcript.20061026185314.txt

PS C:\> Set-Location C:\extrayendo (alias cd)
PS C:\extrayendo> Get-ChildItem (alias dir, ls)

Directory: Microsoft.PowerShell.Core\FileSystem::C:\extrayendo

Mode LastWrite Time Length Name
---- ---------- ---- ----- ----
-a-- 26/10/2006 18:52 154 lista.csv

Format-table para ajustar el tamaño, recuerden que el pipe (|) esta pasando un OBJETO)

PS C:\extrayendo> Import-Csv lista.csv | Format-Table -autosize

nombre apellido edad estadoCivil
------ -------- ---- -----------
Jorge Mestre 24 soltero
Juan Perez 30 casado
Pepe Hongo 50 divorciado
Maria DelMar 18 soltera
Laura Noesta 27 casado

Selecciono propiedades del objeto a mostrar, el format siempre al final

PS C:\extrayendo> Import-Csv lista.csv | select nombre,apellido | Format-Table -autosize

nombre apellido
------ --------
Jorge Mestre
Juan Perez
Pepe Hongo
Maria DelMar
Laura Noesta

Muestro condicionando segun el contenido de una propiedad. Esto es "Donde el objeto (que viene del pipe y lo nombramos $_
le indicamos que queremos solo los apellidos que sean iguales (-eq) a la cadena de texto "Mestre", luego, formateamos para que se vea correctamente.

PS C:\extrayendo> Import-Csv lista.csv | Where-Object{$_.apellido -eq "Mestre"} | Format-Table -autosize

nombre apellido edad estadoCivil
------ -------- ---- -----------
Jorge Mestre 24 soltero


PS C:\extrayendo> Import-Csv lista.csv | Where-Object{$_.apellido -eq "Mestre"} | select nombre,edad | Format-Table -autosize

nombre edad
------ ----
Jorge 24


PS C:\extrayendo> Stop-Transcript
**********************
Windows PowerShell Transcript End
End time: 20061026190300
**********************


Si nunca has trabajado con objetos, se les va a complicar visualizarlo MUCHISIMO al principio (como a mi), luego, con pratica y reventones de neuronas, va saliendo de a poco