Volver a registrar asp.net si se ha instalado después que IIS

Si en tu equipo de desarrollo o producción te ha sucedido que antes de instalar el IIS instalaste el framework de .net (algo muy común en equipos de desarrollo, la verdad) tienes que volver a registrar el framework para que tu IIS pueda volver a hacer uso de ella.

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -I

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis.exe -I

Los ejemplos que se han a mostrado solo incluyen el framework x86 pero si tu equipo dispone de la versión x64 además de la x86 también tendrás que hacer lo mismo pero buscando la ubicación de la versión x64.

C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727>aspnet_regiis.exe -I

C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -I

Como obtener el nombre del dominio de NetBios de un equipo en .NET

Para poder obtener información de netbios nos vamos a tener que meter en código de bastante bajo nivel por lo que para poder usarlo en .NET vamos a recurrir a las pinvoke

    using System.Runtime.InteropServices;
    using System.ComponentModel;

    public class NetUtil
    {
        [DllImport("netapi32.dll", CharSet = CharSet.Auto)]
        static extern int NetWkstaGetInfo(string server,
            int level,
            out IntPtr info);

        [DllImport("netapi32.dll")]
        static extern int NetApiBufferFree(IntPtr pBuf);

        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
        class WKSTA_INFO_100
        {
            public int wki100_platform_id;
            [MarshalAs(UnmanagedType.LPWStr)]
            public string wki100_computername;
            [MarshalAs(UnmanagedType.LPWStr)]
            public string wki100_langroup;
            public int wki100_ver_major;
            public int wki100_ver_minor;
        }

        public static string GetMachineNetBiosDomain()
        {
            IntPtr pBuffer = IntPtr.Zero;

            WKSTA_INFO_100 info;
            int retval = NetWkstaGetInfo(null, 100, out pBuffer);
            if (retval != 0)
                throw new Win32Exception(retval);

            info = (WKSTA_INFO_100)Marshal.PtrToStructure(pBuffer, typeof(WKSTA_INFO_100));
            string domainName = info.wki100_langroup;
            NetApiBufferFree(pBuffer);
            return domainName;
        }
    }

Tras colocar el código anterior en una clase de nuestro proyecto ya podremos obtener el dominio usando:

   NetUtil.GetMachineNetBiosDomain()

Como cambiar o borrar una columna marcada como «sealed» en sharepoint

Si tienes en tu Sharepoint una columna marcada como «sealed» veras que no puedes ni borrarla ni cambiarla (ni por código ni en modo visual).

Para lograr nuestro objetivo recurriremos a PowerShell. Por que en nuestra consola de «Windows PowerShell ISE» vamos a escribir los siguientes comandos:

if ( (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ) {
    Add-PSSnapin Microsoft.SharePoint.Powershell
}

function RemoveSealedFlag([string]$siteUrl, [string]$columnGuid) {
$site = Get-SPSite $siteUrl
$web = $site.RootWeb
$wfield = $web.Fields[[System.Guid]$columnGuid]
$wfield.Sealed = $false
$wfield.Update()
$web.Update()
}

Ahora bastara con llamar al método RemoveSealedFlag para desmarcar la propiedad y de esta forma ya poder borrarlo o editarlo.

Como traducir una plantilla de wordpress

Si te has bajado una nueva plantilla de wordpress pero no te gusta que algunas partes salgan en ingles (por decir algo, pero puede ser alemán, italiano, etc…) entonces tienes dos soluciones:

1. Mirar por google a ver si alguien ya ha traducido la plantilla que usas (las que vienen por defecto, si buscas, ya las encontraras traducidas)

2. Realizar tu propia traducción, de lo que te puedes valer de ese amigo que ha estudiado filología inglesa y que siempre te engaña para que le repares su PC. Es el momento de devolverle la jugada.

Aquí te voy a enseñar que necesitas para realizar la opción 2, aunque la parte de engañar a tu amigo te la dejo a ti.

Sigue leyendo

Obtener el hostname y el dominio en .NET

Obtener el hostname y el dominio usando el lenguaje .NET y más concretamente C# es sencillo, no requiere de funciones complejas ni nada por el estilo.

Obtener el hostname:

El hostname se puede obtener con tan solo una linea, «System.Environment.MachineName» nos devolverá el nombre de la máquina donde se ejecuta.

Obtener el dominio o el grupo de trabajo:

Antes de nada debemos comprobar que nuestro proyecto tiene agregadas las referencias a System.Management, en caso negativo tenemos que agregarlas. Una vez que ya tengamos las referencias bien metidas hacemos lo siguiente:

System.Management.SelectQuery query = new System.Management.SelectQuery("Win32_ComputerSystem");
System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(query);
 foreach (System.Management.ManagementObject mo in searcher.Get())
 {
  string Dominio = mo["domain"] as string;
 }

En la variable Dominio ya tendremos guardado el valor que actualmente tenga la máquina donde se ejecuta.