Lista de Ebooks gratis (si realmente gratis) publicados por Microsoft

Hola a tod@s,

Acabo de ver este link

https://blogs.msdn.microsoft.com/mssmallbiz/2017/07/11/largest-free-microsoft-ebook-giveaway-im-giving-away-millions-of-free-microsoft-ebooks-again-including-windows-10-office-365-office-2016-power-bi-azure-windows-8-1-office-2013-sharepo/

donde se pueden descargar cientos de Ebooks sobre las más variadas tecnologías incluyendo  …

Windows 10, Office 365, Office 2016, Power BI, Azure, Windows 8.1, Office 2013, SharePoint 2016, SharePoint 2013, Dynamics CRM, PowerShell, Exchange Server, System Center, Cloud, SQL Server …

Espero que os resulte de utilidad.

 

Moving collection objects

Hello again.

There are two WMI methods in the smsprovider for managing members of a collection (accessible through a script or powershell):
AddMembershipRule
DeleteMembershipRule

These are usually added in scripts to automate the inclusion of machines in collections, usually during the installation of the operating system in the execution of the task sequence.

But when we have a secure environment in ConfigMgr we can find events such as the following when running, visible in the smsprovider, which controls access to objects in the database:

ExecMethodAsync: SMS_Collection.CollectionID = “SIT00001” :: AddMembershipRule SMS Provider date 2:57:12 PM 18128 (0x46D0)
Requested class = SMS_Collection SMS Provider date 2:57:12 PM 18128 (0x46D0)
Requested num keys = 1 SMS Provider date 2:57:12 PM 18128 (0x46D0)
CExtProviderClassObject :: DoExecuteMethod AddMembershipRule SMS Provider date 2:57:12 PM 18128 (0x46D0)
* ~ * ~ E: \ cm1610_rtm \ sms \ siteserver \ sdk_provider \ smsprov \ sspcollection.cpp (945): Unable to update collection. Insufficent rights. ~ * ~ * SMS Provider date 2:57:14 PM 18128 (0x46D0)
* ~ * ~ Unable to update collection. Insufficent rights. ~ * ~ * SMS Provider date 2:57:14 PM 18128 (0x46D0)

This can be generated even when the user has permissions on the two collections involved, source and destination.

Why this situation?

As you can see documented at https://social.technet.microsoft.com/Forums/en-US/5dae90b9-c44a-4257-b8f3-0e6e7dd93405/unable-to-update-collection-insufficent-rights?forum=configmanagergeneral, Apart from premissions on these two collections, the user must have permissions in the limiting collection of the destination collection.
Since it seems that the object is temporarily hosted in this repository, generating this access denied in the logs.

This can be managed from the console in Administration/Overview/Security/administrative users, and within the properties of the user, by selecting Security Scopes, we add in the desired security role the limiting collection explicitly.

I hope this helps you.

Moviendo objetos en las colecciones

Hola de Nuevo.

Existen dos métodos de WMI en el smsprovider para gestionar los miembros de una colección (accesibles mediante un script o powershell):
AddMembershipRule
DeleteMembershipRule

Estos se suelen añadir en scripts para automatizar la inclusión de máquinas en colecciones, generalmente durante la instalación del sistema operativo en la ejecución de la task sequence.

Pero cuando tenemos un entorno securizado en ConfigMgr nos podemos encontrar con eventos como los siguientes al ejecutarlo, visibles en el smsprovider, que controla el acceso a los objetos en la base de datos:

ExecMethodAsync : SMS_Collection.CollectionID=”SIT00001″::AddMembershipRule        SMS Provider        date 2:57:12 PM        18128 (0x46D0)
Requested class =SMS_Collection        SMS Provider        date 2:57:12 PM        18128 (0x46D0)
Requested num keys =1        SMS Provider        date 2:57:12 PM        18128 (0x46D0)
CExtProviderClassObject::DoExecuteMethod AddMembershipRule        SMS Provider        date 2:57:12 PM        18128 (0x46D0)
*~*~e:\cm1610_rtm\sms\siteserver\sdk_provider\smsprov\sspcollection.cpp(945) : Unable to update collection. Insufficent rights.~*~*        SMS Provider        date 2:57:14 PM        18128 (0x46D0)
*~*~Unable to update collection. Insufficent rights. ~*~*        SMS Provider        date 2:57:14 PM        18128 (0x46D0)

Esto se puede generar incluso cuando el usuario empleado tiene permisos sobre las dos colecciones implicadas, origen y destino.

¿A qué se debe esta situación?

Como se puede ver documentado en https://social.technet.microsoft.com/Forums/en-US/5dae90b9-c44a-4257-b8f3-0e6e7dd93405/unable-to-update-collection-insufficent-rights?forum=configmanagergeneral, aparte de en estas dos colecciones, el usuario debe tener permisos en la limiting collection de la colección de destino.
Ya que parece que de forma temporal se alberga en este repositorio el objeto, generando este acceso denegado en los logs.

Esto se puede gestionar desde la consola en Administration/Overview/Security/administrative users, y dentro de las propiedades del usuario, seleccionando Security Scopes, añadimos en el security role deseado la limiting collection de forma explícita.

Espero que esto os resulte de utilidad.

Script para solucionar errores 53 y 64 en el distmgr.log de un Servidor Secundario

Hay situaciones en las que un servidor secundario parece perder comunicación con uno de usos puntos de distribución de forma aleatoria.

Aunque se mantenga la conectividad con ping, a tengamos acceso a la unidad Admin$ con la cuenta local de sistema, en el log distmgr.log vemos constantes eventos como los siguientes solo con uno de los DPs.

Failed to make a network connection to \\Server\ADMIN$ (0x35).

Cannot establish connection to [“Display=\\Server\”]MSWNET:[“SMS_SITE=S01”]\\Server\. Error = 53

Copying D:\Foler\File to \\SERVER02\SMSPKGD$\FileFolder, Failed, Win32 Error = 64                SMS_DISTRIBUTION_MANAGER        date 7:53:25 AM      74756 (0x12404)

En mi entorno esto pasa con bastante frecuencia, y los pasos de diagnóstico y solución son siempre los mismos, por eso he creado un script con la solución de forma que se puede automatizar.

Por favor testeadlo antes de usarlo de forma extensiva, viene sin garantías y a mí me funciona, pero como reinicia el servicio smsexec puede tener impacto en producción.

Añadí algunos controles al script para que, ante las acciones con más impacto, pregunte antes de realizarlas, si se elimina esta parte, y se integra con una herramienta de monitorización, puede hacer tu vida como administrado de CofigMgr mucho más llevadera.

Aquí están las líneas, sòlo copia y pega en PowerShell (o el ISE) y a disfrutarlo:

#Script to repair the DPs connection events 53 and 64 on secondary site

#On ConfigMgr

#Created on 20 Oct 2016

#Created By Raul del Moral

#**************************************

# Version 2.0 adding the next features:

# Enable control on the script execution so ask for the restart on SmsExec service

# Enable logging on the server with the whole process

# Enable control on SmsExec service so if not detected stops

#**************************************

#Set the variables to use on the script

$DPName =  Read-Host -Prompt ‘Enter the DP name’

if (!$DPName ) {Write-host -ForegroundColor Red -backgroundColor White “Please provide a DP name”

exit(1)}

$Admin = “$DPName\admin$”

$service = “SMS_EXECUTIVE”

#$Userlog = “$env:USERPROFILE\Desktop\DP_Repair.log”  #If wants to have the logs on the Desktop session of server where the script is run

#$ServerLog= “\server\Unit$\path” #If wants to have the logs on the server where the script is run

$log = “C:\temp\testlog.txt”  #To save the logs on the temp folder of the server where the script is run

$LogTime = Get-Date -Format “dd-MM-yyyy_hh:mm:ss”

$PatToCMTRACE = “C:\sccm\tools\CMTrace.exe” #Adapt to your server

$PathToDistmgr = “c:\SCCM\Logs\distmgr.log” #Adapt to your server

#Create the function to managed the input on the script

#Create Function for logging

Start-Transcript $Log -Append -NoClobber

Write-Host “###################################”

Write-Host “###################################”

Write-Host “$LogTime $env:computername $env:USERNAME”

Write-Host “###################################”

Write-Host “###################################”

#Create the function for ping confirmation on the remote DP

Function Ping_test (){

if(!(Test-Connection -Cn $DPName -BufferSize 16 -Count 1 -ea 0 -quiet))

{Write-Host “Cannot connect with server $DPName” -ForegroundColor Red -BackgroundColor white | Out-Default

Write-Host “$LogTime $env:computername $env:USERNAME” | Out-Default

}

Else {}#End If

}

#Create function to test Admin$

Function Test_Share (){

if(!(Test-Path  \\$Admin -ea 0))

{Write-Host “Cannot connect with server share $Admin” -ForegroundColor Red -BackgroundColor white | Out-Default

Write-Host “$LogTime $env:computername $env:USERNAME”  | Out-Default}

Else {}#End If

}

#Create function to stop the smsexec service

Function Stop_smsexec(){

Write-Host “Now will restart the service smsexe on server $env:computername” -ForegroundColor Yellow | Out-Default

Write-Host $LogTime | Out-Default

if((Get-Service $service -ErrorAction SilentlyContinue))

{(Stop-Service $service -Confirm -ErrorAction SilentlyContinue) #this will promt a confirmation before restart the service

}

Else {Write-Host “The machine $env:computername has no smsexec service running”

Write-Host “$LogTime $env:computername $env:USERNAME”

Exit 1

}#End If

}

#Timer for service stop, will wait to run the start command till the service is confirmed as stopped

Function Timer()

{

do { Start-Sleep -Milliseconds 200}

until ((get-service $service).status -eq ‘Stopped’)

}

#Create function to start the smsexec service

Function Start_smsexec(){

if(!(Start-Service $service -ea 0))

{Write-Host “SmsExec service started” -ForegroundColor Green -BackgroundColor white  | Out-Default}

Write-Host “$LogTime $env:computername $env:USERNAME’r” | Out-Default

Else {

Write-Host “The SmsExec Service could not be started, will need to restart the machine” -ForegroundColor Red -BackgroundColor white | Out-Default

Write-Host “$LogTime $env:computername $env:USERNAME”  | Out-Default

}#End If

}

#Execution of functions

Ping_test

Test_Share

Stop_smsexec

Timer

Start_smsexec

#Open the cmtrace to review the DP connection path to CMTrace tool and Path to the log to open

& “”$PathtoCMTRACE” ‘$PathToDistmgr'”

Stop-Transcript  #Stop the logging

Enjoy it 🙂

Script to solve errors 53 and 64 on Secondary sites on DistMgr.log

There are several situations where a secondary site may loss communication with one of his child distribution points randomly, while continue communicating OK with other DPs.

Even if we have connectivity, ping resolution and access to Admin$ with the machine account, the situation is not solved on its own, will need to restart the smsexecutive service to restore the communication and stop the errors on the logs.

Failed to make a network connection to \\Server\ADMIN$ (0x35).

Cannot establish connection to [“Display=\\Server\”]MSWNET:[“SMS_SITE=S01”]\\Server\. Error = 53

Copying D:\Foler\File to \\SERVER02\SMSPKGD$\FileFolder, Failed, Win32 Error = 64                SMS_DISTRIBUTION_MANAGER        date 7:53:25 AM      74756 (0x12404)

On my environment this happen kind of frequently, and as the troubleshooting steps are always the same I created a script to automate the solution.

Please test before use extensively, this come with no guaranties so use on your own risk.

I added some controls on the script so the most impacting steps asks before run, if you delete this steps may automate the solution, if integrated with your monitoring tool may do your System Center Configuration Manager tech live more comfortable.

Here are the lines, just copy past on PowerShell and have fun:

#Script to repair the DPs connection events 53 and 64 on secondary site

#On ConfigMgr

#Created on 20 Oct 2016

#Created By Raul del Moral

#**************************************

# Version 2.0 adding the next features:

# Enable control on the script execution so ask for the restart on SmsExec service

# Enable logging on the server with the whole process

# Enable control on SmsExec service so if not detected stops

#**************************************

#Set the variables to use on the script

$DPName =  Read-Host -Prompt ‘Enter the DP name’

if (!$DPName ) {Write-host -ForegroundColor Red -backgroundColor White “Please provide a DP name”

exit(1)}

$Admin = “$DPName\admin$”

$service = “SMS_EXECUTIVE”

#$Userlog = “$env:USERPROFILE\Desktop\DP_Repair.log”  #If wants to have the logs on the Desktop session of server where the script is run

#$ServerLog= “\server\Unit$\path” #If wants to have the logs on the server where the script is run

$log = “C:\temp\testlog.txt”  #To save the logs on the temp folder of the server where the script is run

$LogTime = Get-Date -Format “dd-MM-yyyy_hh:mm:ss”

$PatToCMTRACE = “C:\sccm\tools\CMTrace.exe” #Adapt to your server

$PathToDistmgr = “c:\SCCM\Logs\distmgr.log” #Adapt to your server

#Create the function to managed the input on the script

#Create Function for logging

Start-Transcript $Log -Append -NoClobber

Write-Host “###################################”

Write-Host “###################################”

Write-Host “$LogTime $env:computername $env:USERNAME”

Write-Host “###################################”

Write-Host “###################################”

#Create the function for ping confirmation on the remote DP

Function Ping_test (){

if(!(Test-Connection -Cn $DPName -BufferSize 16 -Count 1 -ea 0 -quiet))

{Write-Host “Cannot connect with server $DPName” -ForegroundColor Red -BackgroundColor white | Out-Default

Write-Host “$LogTime $env:computername $env:USERNAME” | Out-Default

}

Else {}#End If

}

#Create function to test Admin$

Function Test_Share (){

if(!(Test-Path  \\$Admin -ea 0))

{Write-Host “Cannot connect with server share $Admin” -ForegroundColor Red -BackgroundColor white | Out-Default

Write-Host “$LogTime $env:computername $env:USERNAME”  | Out-Default}

Else {}#End If

}

#Create function to stop the smsexec service

Function Stop_smsexec(){

Write-Host “Now will restart the service smsexe on server $env:computername” -ForegroundColor Yellow | Out-Default

Write-Host $LogTime | Out-Default

if((Get-Service $service -ErrorAction SilentlyContinue))

{(Stop-Service $service -Confirm -ErrorAction SilentlyContinue) #this will promt a confirmation before restart the service

}

Else {Write-Host “The machine $env:computername has no smsexec service running”

Write-Host “$LogTime $env:computername $env:USERNAME”

Exit 1

}#End If

}

#Timer for service stop, will wait to run the start command till the service is confirmed as stopped

Function Timer()

{

do { Start-Sleep -Milliseconds 200}

until ((get-service $service).status -eq ‘Stopped’)

}

#Create function to start the smsexec service

Function Start_smsexec(){

if(!(Start-Service $service -ea 0))

{Write-Host “SmsExec service started” -ForegroundColor Green -BackgroundColor white  | Out-Default}

Write-Host “$LogTime $env:computername $env:USERNAME’r” | Out-Default

Else {

Write-Host “The SmsExec Service could not be started, will need to restart the machine” -ForegroundColor Red -BackgroundColor white | Out-Default

Write-Host “$LogTime $env:computername $env:USERNAME”  | Out-Default

}#End If

}

#Execution of functions

Ping_test

Test_Share

Stop_smsexec

Timer

Start_smsexec

#Open the cmtrace to review the DP connection path to CMTrace tool and Path to the log to open

& “”$PathtoCMTRACE” ‘$PathToDistmgr'”

Stop-Transcript  #Stop the logging

Enjoy it 🙂

Consultas sobre dispositivos en ConfigMgr

En algunas ocasiones puedes necesitar una query que te de los dispositivos activos (con el cliente instalado y activo), con un tipo de chipboard (laptop en este ejemplo) y con esta query podemos obtener estos dispositivos (esta query es para lanzar en SQL, si la deseamos lanzar en la consola o a traves del SMS provider tendremos que traducir las tablas a WQL, mas información en WQL)

 

Select * from v_R_System_Valid inner join V_GS_SYSTEM_ENCLOSURE on V_GS_SYSTEM_ENCLOSURE.ResourceId = v_R_System_Valid.ResourceId  where V_GS_SYSTEM_ENCLOSURE.[RevisionID] in (‘8′,’9′,’10’,’11’,’12’,’14’,’18’,’21’)
¿Y si queremos crear una query con todos los clientes activos con una o varias aplicaciones instaladas en add remove programs?

Select* from v_R_System_Valid_Valid inner join V_GS_ADD_REMOVE_PROGRAMS on V_GS_ADD_REMOVE_PROGRAMS.ResourceId = v_R_System_Valid_Valid.ResourceId  where V_GS_ADD_REMOVE_PROGRAMS.DisplayName0 like ‘%application name%’ or V_GS_ADD_REMOVE_PROGRAMS.DisplayName0 like ‘%application name%’

 

¿Y para obtener una query con datos de las dos queries, laptops activos con una aplicación instalada?

Select * from v_R_System_Valid inner join V_GS_SYSTEM_ENCLOSURE on V_GS_SYSTEM_ENCLOSURE.ResourceId = v_R_System_Valid.ResourceId –where V_GS_SYSTEM_ENCLOSURE.[RevisionID] in (‘8′,’9′,’10’,’11’,’12’,’14’,’18’,’21’)

inner join V_GS_ADD_REMOVE_PROGRAMS on V_GS_ADD_REMOVE_PROGRAMS.ResourceId = v_R_System_Valid.ResourceId Where V_GS_SYSTEM_ENCLOSURE.[RevisionID] in (‘8′,’9′,’10’,’11’,’12’,’14’,’18’,’21’) and (V_GS_ADD_REMOVE_PROGRAMS.DisplayName0 like ‘%application name%’ or V_GS_ADD_REMOVE_PROGRAMS.DisplayName0 like ‘%application name%’)

 

Ahora solo nos interesa el número de dispositivos, sin necesidad de obtener detalles sobre cada uno, podremos lanzar esta query con un sumatorio:

Select count(v_R_System_Valid.ResourceID) from v_R_System_Valid

inner join V_GS_SYSTEM_ENCLOSURE on V_GS_SYSTEM_ENCLOSURE.ResourceId = v_R_System_Valid.ResourceId

inner join V_GS_ADD_REMOVE_PROGRAMS on V_GS_ADD_REMOVE_PROGRAMS.ResourceId = v_R_System_Valid.ResourceId

Where V_GS_SYSTEM_ENCLOSURE.[RevisionID] in (‘8′,’9′,’10’,’11’,’12’,’14’,’18’,’21’) and (V_GS_ADD_REMOVE_PROGRAMS.DisplayName0 like ‘%application name%’ or V_GS_ADD_REMOVE_PROGRAMS.DisplayName0 like ‘%application name%’)

 

Espero que os resulte de utilidad

Nuevo MsiCleanUp

¿Quien no ha tenido problemas con Programas que no se desinstalan correctamente? Normalmente como consecuencia luego este software no puede ser reinstalado.

Hasta ahora teniamos MsiCleanUp, pero ya no se encuentra disponible oficialmente.

¿Que opción tenemos entonces ahora?

Pues desde unos meses Microsoft publico un fixit que se supone que se encarga de estas situaciones (si leemos todo el articulo solo parece estar diseñado para Visio, pero lo probé con algún otro y a veces funciona), es recomendable probarlo.

Esta disponible para su descarga en:

https://support.microsoft.com/en-us/mats/program_install_and_uninstall

Espero que os resulte de utilidad.

WSUS y SCCM parte 1 (WSUS Services)

¿Qué es WSUS?

El servidor WSUS permite a los administradores administrar y distribuir actualizaciones a través de la consola de administración de WSUS, que se puede instalar en cualquier servidor con Windows en el dominio. Además, un servidor WSUS puede ser la fuente de actualización para otros servidores WSUS dentro de la organización. Al menos un servidor WSUS de la red debe conectarse a Microsoft Update para obtener información de actualización disponible.

Wsus2Schema

¿Qué es el catálogo?

Es un servicio de Microsoft que proporciona una lista de actualizaciones que pueden ser distribuidos a través de una red corporativa. Se puede utilizar para buscar las actualizaciones de software, drivers y actualizaciones de Microsoft en un solo lugar

https://catalog.update.microsoft.com/v7/site/Faq.aspx

Esta es la información que recoge el servidor WSUS y almacena en la base de datos, por lo que puede definir qué cambios pueden ser ofrecidos a los clientes.

Esta información es procesada en los clientes en forma de archivos XML con las condiciones que se aplican a cada actualización.

¿Es este el único componente de las actualizaciones?

No, las actualizaciones se componen de 2 tipos de archivos:

Los metadatos (contiene la información acerca de la actualización, requisitos, dependencias, e información general, el cliente gestionará en el formato XML), esto está relacionado con las situaciones de memoria con las actualizaciones de clientes de SCCM que se empezaron a detectar hace un año.

Los archivos de instalación, es el archivo MSP que contiene los binarios para actualiza el archivo ejecutable para ejecutar en el cliente.

Podemos revisar el contenido de un archivo MSP con la línea de comandos ampliar:

https://technet.microsoft.com/en-us/library/cc722332(v=ws.10).aspx

expand <source> .cab -f: <archivos> <destino>

Así pues, ¿cuales son los componentes de servidor WSUS?

1. Base de datos, que puede ser de:

  1. Base de datos interna (SQL Express)

El acceso tiene que ser hecho a la siguiente instancia con el siguiente comando (que podemos encontrar esta información en el registro del servidor, en la clave de registro

HKLM \ Software \ Microsoft \ Update Services \ Server \ Setup para verificar. Busque el valor SQLServerName. Si ve sólo un nombre de servidor o servidor \ instancia, está utilizando el servidor SQL. Si usted ve algo que tiene la cadena ## SSEE o ## MED (2012 R2) en el mismo, que ha instalado en la Base de datos interna de Windows)

Para conectarse a la base de datos interna abierta

SQL Server Management Studio Express está instalado, ejecute y se le pedirá que introduzca el nombre del servidor para conectarse a:

Si su sistema operativo es Windows Server 2012, utilice \\. \ Pipe \ MICROSOFT ## MED \ tsql \ query

Si no está ejecutando Windows Server 2012, escriba \\. \ Pipe \ MSSQL $ MICROSOFT ## SSEE \ sql \ query

base de datos de instancia de SQL.

  1. Una base de datos normal de SQL:

 

2. Carpetas que lo componen

C: \ Windows \ SoftwareDistribution

La carpeta de contenido del SUS donde se almacenan las actualizaciones

Carpeta C: \ WSUS \ WSUSContent

3. Logs

  • Se encuentra en C:\Archivos de programa\Update Services\LogFilesChange.log – Cuando cualquier cambio o modificación se realiza con el servidor WSUS, los cambios se registran en este archivo. También proporciona información sobre el WSUS
  • SoftwareDistribution.log – Propociona información sobre las actualizaciones de software que son sincronizados desde la fuente de updates de la base de datos de WSUS.

Espero que esto os resulte de utilidad.

WSUS and SCCM part 1 (WSUS Services)

What’s WSUS?

The WSUS server allows administrators to manage and distribute updates through the WSUS Administration console, which can be installed on any Windows computer in the domain. In addition, a WSUS server can be the update source for other WSUS servers within the organization. At least one WSUS server in the network must connect to Microsoft Update to get available update information.

Wsus2Schema

What’s the catalogue?

It is a Microsoft service that provides a list of updates that can be distributed across a corporate network. You can use it to search for software updates, drivers and Microsoft updates in one location

https://catalog.update.microsoft.com/v7/site/Faq.aspx

This is the information that the WSUS server collects and store on the database so may define which updates may be offered to the clients.

This information is processed on the clients on the form of xml files with the conditions that apply to every update.

 

Is this the only component of the updates?

No, the updates are composed of 2 kind of files:

  • The metadata (contains the information about the update, requisites, dependencies, and general information, the client will manage it on the xml format), this is related to the memory situations with Updates Client on SCCM.
  • The installation files, is the msp file that contains the binaries to updates the executable to run on the client.

We can review the content of a MSP file with the command line expand:

https://technet.microsoft.com/en-us/library/cc722332(v=ws.10).aspx

expand <source>.cab -f:<files> <destination>

So, which are the components of the WSUS server?

  1. Database maybe one of the next :

Internal database (Sql express based)

  • The access need to be done to the next instance with the next command(we can find this information on the registry of the server, on the registry key
  • HKLM\Software\Microsoft\Update Services\Server\Setup to verify. Look for the SQLServerName value. If you see just a server name or server\instance, you are using SQL server. If you see something that has the string ##SSEE or ##WID (2012 R2) in it, you installed on Windows Internal Database)
  • To connect to the internal database open
  • SQL Management Studio Express is installed, launch it and it will prompt you to enter the server name to connect to:
  • If your OS is Windows Server 2012, use \\.\pipe\MICROSOFT##WID\tsql\query
  • If you are not running Windows Server 2012, enter \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query

SQL instance database.

A regular SQL database:

  1. Softwaredistribution folders

C:\Windows\SoftwareDistribution

  • The SUS content forlder where the updates are stored

C:\WSUS\WSUSContent folder

  1. Logs

Located at  C:\Program Files\Update Services\LogFiles

  • Change.log – When any change or modification is done to the WSUS server, the changes are logged in this file. It also provides information about the WSUS server database information that has changed.
  • SoftwareDistribution.log – Provides information about the software updates that are synchronized from the configured update source to the WSUS server database.

I hope that this have been informative for you.

Tools to analyze logs.Part2

Let’s go with other tools which are not so common with this product, but which I have found particularly useful.

1.TextAnalysisTool.
You can download it from https://textanalysistool.github.io/

This tool allows the opening of exceptionally large logs (very good for IIS logs, Data Protection Manager, and other large logs).
The best part is that this tool allows filtering/highlighting oh words/sentences in different colors (not just a word/sentence like CMTrace, this one has many colors, which facilitates reading and filtering the data)

And best of all, has a filter based on this highlighted, allowing playing with logs and to see only what we have filtered (GUID application thread, server, …) With CTRL + H, which in these huge logs is great.
What it lacks is the merge of several files, but otherwise this is very useful.

Example:
1. We open one log, such WindowsUpdate.log

2. We may create the filter with right button at the bottom of the white panel.
TextAnali0
3. Select the color you want to highlight
TextAnali1
4. The result gives us the number of matches and the total number of lines file.
TextAnali2
5. When you press Control + H only shows the filtrated result

TextAnali3

  1. Notepad++This tool is well known, but has a search option that I have found particularly useful on sefveral situations, especially with Windows Updates analysis where the log WindowsUpdate.log is not accepted in the merge in CMTrace / Trace32, and we need to review information coming from different services that do not fit the format required by CMTrace.

    Notepad++ allow to search on several files at the same time, we may not have a clear timeline, but this will allow us to relate the data and check all the coincidences on all the files, allowing to jump to the line located to review the events Nearby / Related.

 

  • Open a file, on this case all the related with Windows Update Services on the client.

Notepad++0

  • With Ctrl+F we open the find section, we should push on the Find in all opened documents

Notepad++1

  • We will see the results of the search on all the opened documents, with a click on the line of the result you will jump to the line on the file, so you can review the events around to understand the situation.

Notepad++2

I hope that this will be informational for you.

See you on the next post.