El TecnoBaúl de Kiquenet

Kiquenet boring stories

Archive for the ‘Windows’ Category

Indexing Server notes

Posted by kiquenet en 20 junio 2016

Instalar y configurar los servicios de Index Server

De forma predeterminada, los servicios de Index Server no están instalados en un equipo basado en Windows Server 2008

Herramientas administrativas -> Administrador de servidores.
Servicios de Index Server en Servicios de archivo de Windows Server 2003

MMC Servicios de Index Server

Crear un Catálogo:
Nombre: extranetProductos
Ruta  : C:\CatalogosIndexServer\MyApp

Agregar carpetas para incluirlas en el "ámbito del catálogo"
"El ámbito es el conjunto de carpetas que se incluyen y excluyen del catálogo; el ámbito define el contenido que se incluye y excluye del índice"

    Path: \\serv\MyAppCMS\Dev\Products
        Account: DOMAIN\USER_NAS

    Incluir en el índice:
            Sí para incluir la carpeta en el catálogo
            No para excluir la carpeta del catálogo



Como complemento a Index Server, habría que instalar el complemento Adobe PDF iFilter 9 for 64-bit platforms, para la correcta indexación de archivos PDF:

Y después habría que “reescanear” el directorio (All Tasks -> Rescan (Full))

Página ASP.NET de búsqueda personalizada para buscar el catálogo:


A tener en cuenta para IIS 7 sites:
    Install IIS 6 Management Compatibility
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ContentIndex\Catalogs\[Catalog Name]
    Set ContentIndexed metabase property. cscript adsutil.vbs set w3svc/[web site instance]/root/[virtual director]/ContentIndexed 1


Sobre catálogos (catalog.wci) en Index Server


      REG DELETE \\HKLM\SYSTEM\CurrentControlSet\Control\ContentIndex\Catalogs /v <Catalog Name> 

     cisvc.exe = Content Index service or Indexing service
     cidaemon.exe = Indexing Service filter daemon

      Forcing Rescan with Indexing Service on Win2k
      I’ve tried selecting a Full Rescan, Incremental Rescan, and restarting the service.

net stop cisvc
cd "System Volume Information"\catalog.wci\
del *.*
cd \
net start cisvc

Stop the service, then right click the Indexing Service icon in MMC (the one in the tree on the left). Then go All Tasks, Tune Performance. There should be something like "this computer is mostly gonna be used for Index Service". That lets you raise the priority such that it’ll interrupt you. Its default setting, it stops indexing if the computer is doing any work.


Set objISAdm = CreateObject("Microsoft.ISAdm")
Set objCatAdm = objISAdm.GetCatalogByName("MyCatalog")
Set objScopeAdm = objCatAdm.GetScopeByPath("c:\FolderToReScan")

In the last line, TRUE means do a full scan. Change it to FALSE to do an incremental scan.


Página de Referencia en MSDN Microsoft Indexing Service

Note: Indexing Service is no longer supported as of Windows XP and is unavailable for use as of Windows 8. Instead, use Windows Search for client side search and Microsoft Search Server Express for server side search.

Microsoft Index Server Guide


Getting Started

ODBC data sources on Windows Server 2008 x64

Windows Server 2008 x64 has both 32 bit ODBC data sources and 64 bit ODBC data sources. They are managed separately.

Setting up a 32 bit ODBC connection in Windows Server 2008 x64. Start, Run, C:\Windows\SysWOW64\odbcad32.exe

To setup the 64 bit ODBC connection go to: Control Panel, Administrative Tools, Data Sources (ODBC).

Microsoft OLE DB Provider for Microsoft Indexing Service

“Microsoft Indexing Service exposes itself to the developer as an OLE DB provider. Its name is MSIDXS. You can use ADO.NET for querying your Indexing Service”

Connection String: "Provider=MSIDXS;Data Source=myCatalog;Locale Identifier=nnnn;"


Know all the OLE DB Providers registered on your system



Guid for CLSID OLEDB is C8B522D0-5CF3-11ce-ADE5-00AA0044773D

internal static Guid IID_IUnknown = new Guid("00000000-0000-0000-c000-000000000046");

internal static Guid CLSID_DataLinks = new Guid("2206CDB2-19C1-11d1-89E0-00C04FD7A829");

internal static Guid CLSID_OLEDB_ENUMERATOR = new Guid("C8B522D0-5CF3-11ce-ADE5-00AA0044773D");

internal static Guid CLSID_MSDASQL_ENUMERATOR = new Guid("C8B522CD-5CF3-11ce-ADE5-00AA0044773D");

Guid guidOleDbEnum = new Guid("{C8B522D0-5CF3-11ce-ADE5-00AA0044773D}");

Type type = Type.GetTypeFromCLSID(guidOleDbEnum);

using (OleDbDataReader rdr = OleDbEnumerator.GetEnumerator(type))


while (rdr.Read())

Console.WriteLine("{0} – {1}", rdr["SOURCES_NAME"], rdr["SOURCES_DESCRIPTION"]);



Indexing Service Administration Type Library (c:\Windows\system32\ciodm.dll) <- used for admin functions to add/remove catalogs and scopes

ixsso Control Library (c:\Windows\system32\ixxso.dll) <- used to run queries against the catalogs

Microsoft ActiveX Data Objects Recordset 2.8 Library (c:\Program Files\Common Files\System\ado\msdaor15.dll) <- used to read query records

There are two methods for querying the Indexing Service:

1) IXSSO.dll contains the Indexing Service Query Automation Objects – Query and Utility

This is also refered to as the Query Helper API of the Indexing Service, and runs as a user process.  The Query object can be used to create and execute a query, which causes the Indexing Service OLE DB provider to returnan ADO Recordset object.  This then needs to be converted to an .Net compatible object such as the OleDB DataTable.

2) MSIDXS.dll contains the OLE DB Provider for Indexing Service object.  This object can be used to create a oledb connection object and dataadapter object.  All settings for the search are done in the connection string and in query string using special SQL extensions for Indexing Service.

If using the IXSSO.dll in VB.Net the declarations look like…

Dim IndexQueryHelper As Object = CreateObject("ixsso.Query")

Dim IndexUtilities As Object = CreateObject("ixsso.Util")

Dim IndexAdminHelper As Object = CreateObject("Microsoft.ISAdm") ‘ciodm.dll

Also keep in mind that when using the ixsso.dll the results are returned as an ADO recordset, which is not directly compatible with .Net with utilizes the OLE DB assembly.  To convert the result try…

Dim ODA As OleDbDataAdapter = New OleDbDataAdapter

Dim SearchResults As DataTable = New DataTable("FilesList")

ODA.Fill(SearchResults, IndexQueryHelper.CreateRecordSet("sequential"))

Troubleshooting: https://support.microsoft.com/en-us/kb/954819


Permissions for MSIDXS

Group or user names list: SYSTEM, ASPNET

[HKEY_CLASSES_ROOT\CLSID\{F9AE8980-7E52-11d0-8964-00C04FD611D7}\OLE DB Provider]

@="Microsoft OLE DB Provider for Indexing Service"



Proveedor Microsoft OLE DB para servicios de Index Server



Microsoft OLE DB Provider for Microsoft Index Server and Microsoft Site Server Search

version 5.0.1781.3


SQL Server OLE DLL del proveedor (Sqloledb.dll) como ejemplo

1.En el símbolo del sistema, cambie a la carpeta C:\Program Files\Common Files\System\Ole DB.

2.En el símbolo del sistema, escriba el comando siguiente: regsvr32 sqloledb.dll

Posted in ASP.NET, Windows | Etiquetado: , , , , | Leave a Comment »

Modify Local Security Policy

Posted by kiquenet en 29 abril 2014

In Windows Server 2012.

In Administrative Tools folder, double click the Local Security Policy icon, expand Account Policies and click Password Policy.

In the right pane double click Password must meet complexity requirements and set it to Disabled. Click OK to save your policy change.

Optionally you can also choose to never let passwords expire. To do this open the Maximum password age policy and set set the value to 0. Click OK to apply the change.

Note: Just make sure to update the GP. go to Command Prompt and type GPUPDATE /FORCE



secedit /export /cfg c:\secpol.cfg
(gc C:\secpol.cfg).replace("PasswordComplexity = 1", "PasswordComplexity = 0") | Out-File C:\secpol.cfg
secedit /configure /db c:\windows\security\local.sdb /cfg c:\secpol.cfg /areas SECURITYPOLICY
rm -force c:\secpol.cfg -confirm:$false

secedit /export /cfg c:\new.cfg
${c:new.cfg}=${c:new.cfg} | % {$_.Replace('PasswordComplexity=1', 'PasswordComplexity=0')}
secedit /configure /db $env:windir\security\new.sdb /cfg c:\new.cfg /areas SECURITYPOLICY
del c:\new.cfg

Posted in PowerShell, Scripts, Trucos, Windows | Etiquetado: , | Leave a Comment »

Dos notas sobre Hyper-V en Windows

Posted by kiquenet en 24 enero 2014

Remote Desktop hacia máquinas virtuales en Hyper-V Cliente en Windows 8


Remote Desktop hacia máquinas virtuales en Hyper-V Cliente en Windows 8

La ventana cliente de conexión hacia una máquina virtual que corre en Hyper-V de Windows 8 es limitada. Por ello, decidí investigar que hacer para conectarme con otro cliente que permitiese, como en VMWare Player y en VMWare Workstation, usar toda la pantalla de mi laptop.

Después de una intensa búsqueda para ver si había un cliente que me permitiese conectarme, pensé que debía ser posible conectarse mediante escritorio remoto, Remote Desktop, con lo cual si podía usar toda la pantalla de mi laptop, entre otros beneficios.

Para lo anterior, hay que realizar lo siguiente, asumiendo que ya Hyper-V está habilitado en Windows 8:

1. Habilitar un “virtual switch network” en Hyper-V. Para ello es necesario ejecutar el Hyper-V Manager, luego correr el Virtual Switch Manager y luego crear el nuevo switch. En mi caso en particular, quedó configurado de la siguiente manera:


2. Es importante que el switch sea definido como “Internal Network”.

3. Ahora hay que habilitar en la tarjeta física, la posibilidad de compartirla por el switch interno definido. Para ello, revisamos las conexiones de red; en mi caso en particular, se ven de esta manera:


4. Como el switch virtual se ha “apoderado” de algunas propiedades de la tarjeta de red Wi-Fi, como se llama en mi laptop, entonces sobre ésta seleccionamos las propiedades de la misma. Debe salir una ventana como la que se muestra a continuación:


5. Se selecciona la pestaña etiquetada como “Sharing” y se deja, de nuevo para la configuración que se ha venido realizando, como se detalla en la siguiente imagen:


6. Presionar OK. Sobre la pantalla de conexiones de red, se debe apreciar que la conexión que hace mención al switch virtual sobre la tarjeta WiFi está compartida.

7. Ahora bien, si la máquina virtual solo requiere una tarjeta de red y no se conecta con otra máquina virtual o incluso con un controlador de dominio, pues muy seguramente usará el switch virtual configurado previamente. Si por el contrario, la máquina virtual requiere que se conecte con otra, pues para verla vía RD hay que habilitar otra tarjeta de red conectada al switch virtual que se configuró previamente para compartir vía el switch interno.

8. Por ultimo, y un paso importante, aunque a veces se obvia, es habilitar el acceso por escritorio remoto hacia la máquina virtual.

Con esto, entonces procedemos a mostrar como se ve la máquina virtual accedida desde RD, primero mostrando la interfaz cliente nativa de Hyper-V:


Y así, desde RD:


Ya en RD, se puede maximizar y usar la pantalla completa para trabajar con la máquina virtual.


Download and install the RSAT tools for Windows 7 from here: http://www.microsoft.com/downloads/details.aspx?FamilyID=7D2F6AD7-656B-4313-A005-4E344E43997D&displaylang=en. Install either the 32-bit or 64-bit depending on what version of Windows 7 you’re using.

Next, go to Start – Control Panel and click on Programs.


Next, you’ll see an option to Turn Window features on or off. Click on this option.


Under Remote Server Administration Tools – Role Administration Tools, find the option for Hyper-V Tools, check the checkbox and click OK. You can now type Hyper-V Manager at the Start Menu


You can now type Hyper-V Manager at the Start menu or go to Start – Administrative Tools -Hyper-V Manager.


Posted in Virtualizacion, Windows | Etiquetado: , | Leave a Comment »

Limpiar Windows Installer correctamente

Posted by kiquenet en 24 octubre 2012

En algunas situaciones la carpeta %SYSTEMDRIVE%\Windows\Installer puede llegar a ocupar varios GBs, lo cual pueder mermar el espacio libre en la partición C: de sistema.

Nota: Con herramientas como WinDirStat podemos ver la ocupación en disco de todas las carpetas.

El borrado manual de dicha carpeta puede tener efectos indeseados, pues implica a instalables MSI de los productos instalados en el sistema.

En todo caso, una posible solución es utilizar Windows Installer Cleanup Utility

Nota: Dicha utilidad ya no está soportada por Microsoft.
Se puede encontrar en http://www.majorgeeks.com/files/details/windows_installer_cleanup_utility.html

Después de instalar la herramienta en

C:\Archivos de programa\Windows Installer Clean Up

Ejecutar vía consola cmd:

C:\Program Files\Windows Installer Clean Up\msizap G!

La herramienta gráfica es:


Posted in Herramientas, Windows | Leave a Comment »