Monthly Archives: November 2008

Write arabic even if you don’t have arabic keyboard !!

Hi All,

I had a problem few days ago,I was working on a laptop with English Only characters and i can’t write arabic character because i can’t memorize the location of arabic keys.

One of my friends sent me a very good site which you can write your word in english and it will be converted to Arabic word representation,then you can (copy) take this word and search on Live.come with it for example.

I want to get this word written in arabic : Shahr,write it on this site it will be converted to : شهر



Wonderful site url :
http://www.yamli.com/editor/ar/




Regards,
Mostafa arafa

Microsoft Chart Controls for ASP.NET and Windows Forms

Now Microsoft Chart controls Add-on for Microsoft Visual Studio 2008 can be used for charting needs.

Prerequisite: Microsoft Visual Studio 2008 SP1 and Microsoft Chart Controls for Microsoft .NET Framework 3.5.

For sample Environment for Microsoft Chart Controls check here. The sample environment contains over 200 samples for both ASP.NET and Windows Forms.

See the following related links:

 

There are lots of third party Chart Controls available for ASP.NET as well, please check here.


Shahed Khan
CEO Simplexhub
Co-Founder PageFlakes
Founder Smart Code Generator



Exchange Server 2007: Anpassen der EdgeTransport Konfiguration – AgentLog

Exchange Server 2007 bietet mit der Edge Transport-Rolle ein ideales Gateway für die Abwicklung des E-Mail-Verkehr von und nach extern. Wer den E-Mail-Verkehr analysieren muss – und das wird über lang oder kurz jeden Treffen, der diese Rolle verwendet – sollte über die einzelnen Protokollierungsoptionen Bescheid wissen.

Heute möchte ich kurz auf das AgentLog hinweisen. Dieses Log liegt standardmäßig %programfiles%MicrosoftExchange ServerTransportRolesLogsAgentLog.

Folgende Spalten/Daten werden protokolliert und stehen als Felder zur Verfügung:

Timestamp

Die Uhrzeit des Protokolleintrags.

ConnectorName

CN des Connectors, der die Nachricht empfangen hat.

SessionId

Die IP-Adresse der SMTP-Sitzung.

IPAddress

Die IP-Adresse des die Verbindung herstellenden Servers.

MessageId

Die Nachrichten-ID von Microsoft Exchange Server 2007.

P1FromAddress

Das P1-Feld “Von:” der Nachrichtenkopfzeile (Nachrichtenumschlag)

P2FromAddresses

Das P2-Feld “Von:” der Nachrichtenkopfzeile (Nachrichtenumschlag)

Recipients

Die Nachrichtenempfänger.

Agent

Der Name des Agents, der die Aktion aufruft.

Event

Das Ereignis, für das die Aktion durchgeführt wurde.

Action

Die ausgeführte Aktion (ganze Zahl).

SmtpResponse

Die Antwort, die ggf. an den Aufrufer gesendet wird.

Reason

Der Begründungscode, der vom Agent bereitgestellt wird.

ReasonData

Ausführliche Beschreibung durch den Agent.

Ein Eintrag könnte so aussehen:

2008-11-30T04:47:32.321Z, 08CB1EB6D0AF0884,172.19.72.86:25,217.12.148.135:59672, 217.12.148.135,,EdwinasplotchySalter@ncat.org,,webmaster@msisafaq.de,1,Connection Filtering Agent,OnRcptCommand,RejectCommand,550 5.7.1 Message refused due to listing at ix.dnsbl.manitu.net,BlockListProvider,iX,

Mit dem Exchange-Managementshell-Befehl Get-AgentLog kann man das Log auswerten. Natürlich spricht nichts dagegen, es auch im Texteditor anzeigen zu lassen. Ich nutze dazu fast immer BareTail.

Beim Arbeiten mit dem AgentLog fiel mir anfangs gleich auf, dass es maximal 10MB groß wird und nach 30 Tagen gelöscht wird. Etwas unglücklich…

Aber zum Glück kann man seit SP1 daran einiges ändern. Dazu gibt es einige Parameter, die man in der Datei %programfiles%MicrosoftExchange ServerBinEdgeTransport.exe.config angeben kann:

<add key=”AgentLogEnabled” value=”system.boolean” />
<add key=”AgentLogMaxDirectorySize” value=”system.int32″ />
<add key=”AgentLogMaxFileSize” value=”system.int32″ />
<add key=”AgentLogMaxAge” value=”system.timespan” />

Standardmäßig enthält die Datei EdgeTransport.exe.config nur den Schlüssel AgentLogEnabled. Alle anderen Schlüssel müssen hinzugefügt werden.

Folgende Werte stehen zur Verfügung:

AgentLogEnabled

System.Boolean

Dieser Schlüssel ist standardmäßig in der Datei EdgeTransport.exe.config vorhanden. Gültige Werte für diesen Schlüssel sind true oder false. Der Standardwert ist true.

AgentLogMaxDirectorySize

System.Int32

Dieser Schlüssel ist in der Datei EdgeTransport.exe.config standardmäßig nicht vorhanden. Der Wert dieses Schlüssels gibt die maximale Größe des Verzeichnisses AgentLog in Byte an. Wird dieser Wert überschritten, wird die älteste Protokolldatei im Verzeichnis gelöscht und eine neue Protokolldatei erstellt.

Wird dieser Schlüssel nicht festgelegt, beträgt der Standardwert in Exchange 2007 RTM und Exchange 2007 SP1 “250 MB”, bzw. 262144000 Byte (250*1024*1024).

AgentLogMaxFileSize

System.Int32

Dieser Schlüssel ist in der Datei EdgeTransport.exe.config standardmäßig nicht vorhanden. Der Wert dieses Schlüssels gibt die maximale Größe (in Byte) für jede einzelne Protokolldatei im Verzeichnis an. Wenn eine Protokolldatei die maximale Größe erreicht, wird eine neue Protokolldatei erstellt.

Wird dieser Schlüssel nicht festgelegt, beträgt der Standardwert in Exchange 2007 RTM und Exchange 2007 SP1 “10 MB”, bzw. 10485760 Byte (10*1024*1024).

AgentLogMaxAge

System.TimeSpan

Dieser Schlüssel ist in der Datei EdgeTransport.exe.config standardmäßig nicht vorhanden. Der Wert dieses Schlüssels legt das Höchstalter für eine bestimmte Protokolldatei fest. Überschreitet eine Protokolldatei ihr Höchstalter, wird sie gelöscht.

Der Schlüssel verfügt über den Systemtyp TimeSpan.. Der Wert dieses Schlüssels kann als Zeichenfolge im Format d.hh:mm:ss.ff angegeben werden, wobei d die Tage, hh die Stunden, mm die Minuten, ss die Sekunden und ff die Bruchteile einer Sekunde angibt.

Wird dieser Schlüssel nicht festgelegt, beträgt der Standardwert in Exchange 2007 RTM und Exchange 2007 SP1 “30 Tage”, bzw. 30.00:00:00.00.

In meinen Edge Transport-Installationen schaut der entsprechende Abschnitt immer so aus:

<add key=”AgentLogMaxDirectorySize” value=”2621440000″ />
<add key=”AgentLogMaxFileSize” value=”31457280″ />
<add key=”AgentLogMaxAge” value=”90.00:00:00.00″ />

Das heisst, ein einzelnes AgentLog-File kann bis zu 30MB groß werden, wird 90 Tage aufgehoben und das ganze Verzeichnis kann maximal 2,5 GB groß werden. Damit komme ich gut zurecht. Ergänzend dazu gibt es einen robocopy-Befehl, der die LogFiles auf einen zentralen Archiv-Server kopiert.

Weitere Informationen:

Viele Grüße
Dieter


Dieter Rauscher
MVP Forefront

Buchvorstellung: Windows Vista: Die besten Tipps, Tricks & Techniken

Heute möchte ich euch auf ein Buch aufmerksam machen, das seit einigen Tagen verfügbar ist:

Windows Vista: Die besten Tipps, Tricks & Techniken von Dominik Berger, Olaf Engelke, Marc Grote und Birger Stöckelmann.

Über 800 Seiten mit den besten Tipps, Tricks & Techniken beim Einsatz von Windows Vista: Wie Sie Vista besser, schneller, sicherer und persönlicher machen, zeigt Ihnen dieses Buch. Problem-Lösungen für die verschiedensten Stolper-Fallen finden Sie hier genauso wie weitgehend unbekannte Kniffe, um die Möglichkeiten von Vista Ihren Wünschen noch weiter anzupassen.

Dieses Buch zeigt Ihnen auch, wie Sie schneller und effizienter arbeiten können und zudem auch echt geniale Erweiterungen nutzen. Natürlich darf die Unterhaltung zu Hause oder unterwegs nicht fehlen – auch hierfür gibt es die besten Tipps! Für Poweruser und Enthusiasten wurden die besten Tweaks zusammengestellt, um noch mehr aus Vista herauszuholen.

Diese Fundgrube von fast 300 Lösungen für die verschiedensten Aufgabenstellungen möchte kein Vista-Anwender vermissen. Auch wenn sehr viel mit Vista zu tun haben – in diesem Buch finden Sie sicher viele, Ihnen zuvor unbekannte Techniken.

Weitere Infos und Bestellmöglichkeit hier.

Viele Grüße
Dieter


Dieter Rauscher
MVP Forefront

Videocast: De olho no Gerenciamento 002 (30.11.2008)

E é pelo segundo domingo consecutivo que eu trago para vocês visitantes do meu blog as notícias da semana sobre gerenciamento com tecnologias Microsoft no formato de uma Videocast. Obrigado pelas críticas e sugestões, vou aos poucos colocando todas em prática para tentar deixar esta iniciativa cada vez melhor. E nesta semana pudermos ver um pouco sobre:


 


·         System Center Service Manager Beta 1


Nova versão liberada para download, feita com base nas melhores práticas de gerenciamento de serviços. Próxima versão beta prevista para a metade de 2009.


 


https://connect.microsoft.com/SelfNomination.aspx?ProgramID=2733&pageType=1&SiteID=446


 


·         Offline Virtual Machine Servicing Tool 2.0


Verão RTM da ferramenta que se integra ao SCVMM 2007 e 2008 para manter máquinas virtuais em modo offline sempre atualizadas com o Windows Updates.


 


 


http://go.microsoft.com/fwlink/?LinkId=110333


 


·         Hyper Green


Ferramenta gratuita para auxílio no planejamento de corte de custos e consumo de energia.


 


http://www.hyper-green.com/


 


Fiquem agora com mais uma edição do vídeo:


 


[View: http://video.msn.com/video.aspx?vid=f6f86f09-54e1-49e0-bd68-912340b33eba]


 


Abraços,


 


Cleber Marques


Microsoft Most Valuable Professional (MVP)
Projeto MOF Brasil: Simplificando o Gerenciamento de Serviços de TI
www.mof.com.br | www.clebermarques.com | www.clebermarques.com.br

Follow me on Twitter?

In a bid to keep up with friends and suchlike I have joined Twitter. I can’t promise much in the way of earth shattering Tweets but I’m sure it will be a mildly entertaining read.


So, if you want to follow me please tune your browsers to this URL – http://twitter.com/g_barnett.


Probably worth noting that the Tweets I make will not necessarily be on .NET. Follow me at your own peril! ;-)

Coding4Fun Book News and Preview

9780596520748_catI received my first copy of the book on Friday afternoon and it looks great!  It is now also listed as “In Stock” on Amazon.  Additionally, there is now a Google Preview of the book If you’d like to see a preview of the book, you can do so by clicking the Google Preview link below, or navigating directly to the Google Book Search page for this book.

I can’t think of a better holiday gift for the geek in your family than this.  But, I may be a bit biased…


GBS_insertPreviewButtonPopup(‘ISBN:9780596520748′);

Head Banger Is Now Available on Xbox LIVE Community Games

xboxboxart Several friends and I work together to write “indie” video games under the brand Ganksoft EntertainmentYou may recall that for Maker Faire 2007, we created a very simple rhythm-based music game (think Rock Band or Dance Dance Revolution) using XNA called Head Banger.

With Microsoft’s official release of Xbox LIVE Community Games with the New Xbox Experience, we decided to blow the dust off of Head Banger, add a couple songs, integrate it bit more with Community Games and XNA 3.0 and release it.  It is now available for purchase for 200 Microsoft Points (or, as with all Arcade and Community games, there’s a free trial) straight from the Community Games section of the Games Marketplace on your Xbox 360.  It will be listed under New Releases for a little while, otherwise you can go to All Games and then the letter H to find it.  Additionally, you can view the official Marketplace page on the new web-based Xbox LIVE Marketplace site.

Please give the trial a go and let us know what you think!  And, if you think it’s worth 200 points ($2.50), we’d be happy to have you purchase it so it will move up the “popularity” list.  Thanks!

 screen1_Web

December XPClub Meeting

The next meeting is on the 10th of December at Victoria Hotel in central Leeds at 7pm as usual.

The speaker is Gary Short who is speaking on Design Patterns. Come to this free event to find out more about this vital subject to developers in any language from an excellent speaker.

As an added bonus we will all head off to Leeds Christmas Market, to have some wurst, sauerkraut and continental lager.

RunAsAdmin explorer shim: nueva Beta

Nueva beta de RunASAdmin

La Beta de RunAsAdmin Explorer Shim V2 beta10 se ha liberado!

Una herramienta para usar cuentas sin privilegios y aplicarlos si se necesitan, o al revés, usar cuentas con privilegios y lanzar programas con cuentas sin ellos.

Monitorizar los Servicios 2

Monitorizar la fiabilidad de los servicios

Monitorizar la fiabilidad de los servicios nos ayudará en su seguimiento y en la medición del tiempo medio existente entre fallos. Este tiempo medio nos indica el tiempo de espera desde que falla un servicio hasta que vuelve a estar operativo. Conociéndolo, tal vez seamos capaces de impedir que ocurran problemas antes de producirse.  Por ejemplo, si sabemos que un servicio falla cada 10 días, más que esperar a que falle (momento que podría ser inconveniente para los usuarios) podemos programarlo para que se detenga y reinicie periódicamente; además podemos seguirlo para ver si la solución nos sirve (a veces hay que echar mano de lo que sea).

Este seguimiento también nos puede indicar el tiempo que tarda un servicio en recuperarse del fallo.

Los métodos para seguir la fiabilidad:

  • Suscripción a sucesos. Podemos crear una suscripción a un suceso que notifique cada x tiempo si un servicio cambia de estado. Si además guarda la información en una BD o archivo que podamos contrastar, podremos realizar un cálculo del tiempo medio entre los fallos y el tiempo necesario para restaurar su funcionalidad completamente.
  • Registro de sucesos (Event Log). En Windows Server 203 los cambios en el estado de un servicio se guardan en el Registro del Sistema (System Log visible con el Event viewer). Extrayendo periódicamente estos eventos, también podemos calcular la fiabilidad de nuestros servicios.

Si lo hacemos mediante script podemos usar: Shell script (EventQuery.vbs (es), EventTriggers.exe(es), WMI (Colecciones Win32_Service y Win32_NTLogEvent).

 

  • Usando una suscripción de sucesos temporal o permanente.
  • Usando el registro de sucesos.

Monitorizar los cambios en el estado de un servicio con una suscripción de suceso temporal

   1: 'Este script sirve para comprobar cambios de estado de los servicios
   2: ' usando una suscripción temporal a event log y volcado en un archivo de texto
   3:  
   4: '(c) Juansa 29-11-2008
   5:  
   6:  
   7:  
   8: Const ForReading = 1, ForWriting = 2
   9: Dim TabStop, NewLine
  10: TabStop = Chr(9)
  11: NewLine = Chr(10)
  12: Set objFSO = CreateObject("Scripting.FileSystemObject")
  13: Set objFile = objFSO.OpenTextFile("C:scriptsCambio_Servicios.txt", ForWriting, True)
  14:  
  15:  
  16: StrComputer = "."
  17: Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=Impersonate}!\" & strComputer & "rootcimv2")
  18: Set objwmiEventSource = objWMIService.ExecNotificationQuery ("SELECT * FROM __InstanceModificationEvent " & "WITHIN 3 WHERE TargetInstance  ISA 'Win32_Service'")
  19:  
  20:   Do
  21:     Set objService = objwmiEventSource.NextEvent
  22:       If objService.TargetInstance.State <> objService.PreviousInstance.State Then
  23:         objFile.WriteLine Date & TabStop & objService.TargetInstance.DisplayName & " está " & objService.TargetInstance.State & ". Anteriormente  estaba " & objService.PreviousInstance.State & "."
  24:       end if
  25:   Loop
  26:  

 


Este script se ejecuta de continuo, para detenerlo hay que abrir el Administrador de Tareas y matar el proceso wscript.exe que se crea al ejecutarlo.


Se ejecuta y no escribe nada en el archivo, pero yo hago una prueba manual: abro services.msc desde inicio->ejecutar y detengo el servicio (el que sea) Background Intelligent Transfer Service(BITS) y luego lo vuelvo a iniciar. Al echar un vistazo al archivo donde le he dicho que me guarde los cambios, veo:


cambio_servicios


¿Qué hace el script?


Su cuerpo, ya conocemos la creación y preparación del archivo donde guardará la info, Creamos la variable para el equipo local (StrComputer), Usamos GetObject y conectamos con el espacio de nombres rootcimv2 con nivel impersonate.


Usamos el método ExecNotificationQuery para registrar la notificación de cada vez que una instancia se modifica. Como sólo queremos los cambios en los servicios, usamos una cláusula WHERE para limitar la monitorización de los datos que nos devuelve la clase Win32_Service.


Creamos un bucle que ejecutará el script indefinidamente (podemos detenerlo como he indicado arriba, o con Taskkill.exe, Cerrando la sesión también se detiene).


Usamos el método NextEvent para recuperar el suceso cuando ocurre.


Así, cada vez que un servicio se modifica de alguna forma, el script comprueba el estado actual con el estado anterior, si no ha cambiado sigue a la espera, si es diferente lo graba en el archivo Cambios_servicios.txt.

ID 5722 – Recuperación de cuentas de equipos eliminados

Durante un problema con un controlador de dominio y la posterior recuperación de un respaldo bastante antigüo muchos registros de computadores se perdieron. Al revisar el visor de sucesos del controlador de dominio se indica el mensaje de error:


The session setup from the computer COMPUTER failed to
authenticate. The name of the account referenced in the
security database is COMPUTER$. The following error
occurred:
Access is denied.

Igualmente al tratar de iniciar sesión en el equipo indicaba que no posee una relación de confianza con el equipo o por otro lado que el usuario o la contraseña estaban incorrectos. Para poder recuperarse de este problema se debe hacer lo siguiente:


- Iniciar con cuenta de administrador local en el equipo con problemas
- Ejecutar el comando: netdom resetpwd /server:<Controlador de dominio> /userd:dominiousuario /passwordd:*
- Ingresar la contraseña de usuario y reiniciar el equipo

EBS Deployment Scripts

Over the past few weeks I have been in front of a number of audiences discussing Essential Business Server.  As promised, here are the scripts I discussed to create your WindowsPE to deploy the OS portion of the EBS servers over the network:

 

call copype.cmd amd64 C:winpe

imagex /mountrw C:winpewinpe.wim 1 C:winpemount

peimg /inf=C:driversnicamd64*.inf C:winpemountwindows

peimg /prep C:winpemountWindows /f

imagex /unmount /commit C:winpemount

copy C:winpewinpe.wim C:winpeISOsourcesboot.wim

oscdimg -n -bC:winpeetfsboot.com C:winpeISO C:winpewinpe.iso

Here is the script to create your bootable USB key:

Diskpart

                Sel disk 2

                Clean

                Cre part pri

                Active

                Assign

                Format fs=ntfs quick

Copy the content from the .ISO image to the USB stick

I should point out that these are NOT my scripts… To the best of my ability they can be traced to a presentation by Michael Nytrom and Greg Starks at TechEd.  I am indebted to both of them for helping to pave the way!

OSD Application Chooser – I Have a Blog, And I Must Scream

OSD Application Chooser – I Have a Blog, And I Must Scream

http://myitforum.com/cs2/blogs/jsandys/archive/2008/11/28/osd-application-chooser.aspx

Published with BlogMailr

Photos from 27dinner 27-31

The SCOM clock – struck me as funny this morning…

Our youngest uses a stylish piece of SWAG as his alarm clock.  Its a Microsoft Systems Center Operations Manager 2007 clock, given away at MMS 2008.

Pictures here (you can click the picture for a larger view):

SCOMClock 001.JPG  SCOMClock 002.JPG

Since he’s been in school, we’ve not had to worry about shutting off the alarm in the mornings.  The alarm wakes our son, and then it goes off in it’s own time.  Being out of school for the past few days for the Thanksgiving holiday, we have come to realize that this thing does not have a Snooze button, nor any way of turning off the alarm except to remove the battery!

A SCOM (OpsMgr) Alert you CAN’T turn off!  Maybe there’s a MSKB about it somewhere.

Monitorizar los Servicios 1

Muchas de las operaciones que hace un equipo (especialmente un servidor) es ejecutar servicios. Esto hace que debamos ser cuidadosos con monitorizar los servicios que se ejecutan en los equipos de nuestra red. Una de las maneras más prácticas de monitorización es el uso de scripts.

Muchos de los servicios (DNS, DHCP,…) son críticos y un error en un único servidor puede tener un impacto en cientos, incluso miles, de usuarios, impidiéndoles iniciar sesión o acceder a los recursos de la red.

Como normas más generales de monitorización:

  • Monitorizar la disponibilidad del servicio: Medir el porcentaje de tiempo que un servicio está disponible.

La definición exacta de disponibilidad depende de lo que se espera de cada servicio. Si un recurso debe estar disponible todos los días de 22:00 a 06:00 horas y éste fallase un domingo a las 8:00 de la mañana, no se consideraría fallo de disponibilidad.

  • Monitorizar la fiabilidad del servicio: Medir la frecuencia de fallos de un servicio y el tiempo necesario para restaurarlo a su funcionalidad.

La fiabilidad se calcula mediante la división del tiempo que el servicio está en funcionamiento por el número total de días en un año. Por ejemplo,un servicio que ha sufrido paradas en 6 días durante un año tendría una fiabilidad de 98,3% ((359 días disponible)/365 días en un año)

  • Monitorizar el rendimiento del servicio: Medir si el servicio cumple su tarea en la forma esperada.
Monitorizar la disponibilidad del servicio

Cuando monitorizamos la disponibilidad de un servicio, comprobamos sólo que el servicio se esté ejecutando. Si necesitamos saber si el servicio se ejecuta con máxima eficiencia, necesitamos usar otro tipo de monitorización (el rendimiento). Aunque relativamente es simple, la monitorización de disponibilidad es muy importante; otras cuestiones, como si el servicio se comporta en el nivel esperado, no tienen sentido si no se está ejecutando.

Esta monitorización comprende normalmente una prueba que nos devolverá el estado del servicio. Guardando el resultado de cada prueba en una BD podemos calcular la disponibilidad de un servicio. Si realizamos 100 pruebas y el servicio responde 97 veces, someramente, está disponible un 97%.

La disponibilidad frecuentemente se expresa con la media de tiempo que durante un año el servicio no ha estado disponible.

Para incrementar la disponibilidad de un servicio podemos intentar:

  • Aumentar el tiempo medio entre fallos: Desafortunadamente, un fallo de servicio es causado frecuentemente por un error del propio servicio o del sistema operativo. A menos que seamos los autores del código, poco podremos cambiar para solucionar el error y así aumentar el tiempo entre fallos.
  • Disminuir el tiempo necesario para reiniciar el servicio: Si hemos de reiniciar el servicio manualmente cada vez que falle, el servicio no será funcional a menos que lo reiniciemos. Para aumentar la disponibilidad, podemos escribir un script que compruebe su estado y reinicie, en su caso, el servicio automáticamente, periódicamente.

Podemos usar scripts de Shell (sc.exe y net.exe), WSH, WMI (Scriptomatic utility) y ADSI (ADSI Scriptomatic).

Informar sobre la disponibilidad de los servicios puede hacerse mediante:

  • Informar sobre el estado del servicio.
  • Informar de los servicios que se encuentran en un estado específico (e.g. en ejecución o detenidos)

Informar del estado de todos los servicios.

   1: 'Este script sirve para comprobar el estado de todos los servicios
   2: 'en un archivo de texto
   3:  
   4: '(c) Juansa 28-11-2008
   5:  
   6: Const ForReading = 1, ForWriting = 2
   7: Dim TabStop, NewLine
   8: TabStop = Chr(9)
   9: NewLine = Chr(10)
  10: Set objFSO = CreateObject("Scripting.FileSystemObject")
  11: Set objFile = objFSO.OpenTextFile("C:scriptsEstado_Servicios.txt", ForWriting, True)
  12:  
  13: StrComputer = "."
  14: Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=Impersonate}!\" & strComputer & "rootcimv2")
  15: Set colServices = objWMIService.ExecQuery("SELECT * FROM Win32_Service")
  16: For each objService in colServices
  17: 'escribimos el nombre y el estado del servicio
  18: objFile.WriteLine Date & TabStop & objService.DisplayName 
  19: objFile.WriteLine objService.State
  20:  
  21: Next
  22:  
  23: Wscript.Echo  "FINALIZADO"
El resultado:

estadodelosservicios


* Podemos incluirlo en una tarea programada y realizar la comprobación diaria o a horas determinadas. Se puede incluir además de la fecha, la hora en la que se realiza la comprobación en el script.


  1. Creamos una constante de lectura y escritura
  2. creamos las variables de Tab y Nueva linea
  3. Asignamos los valores de Tab y NewLine
  4. Creamos el objeto del archivo
  5. Abrimos el archivo, indicando su ruta y nombre, para escritura.
  6. variable del equipo, el punto indica equipo local.
  7. conectamos con el espacio de nombres WMI rootcimv2 con GetObject, estableciendo el nivel de impersonation en impersonate.
  8. Usamos el método ExecQuery para conectar con la clase Win32_Service, lo que nos devolverá una colección que consiste en todos los servicios instalados en el equipo.
  9. Para cada servicio devuelto en la colección, se escribe una nueva línea para la fecha actual y el nombre del servicio y una nueva línea para su estado, en el archivo abierto.
  10. Lanzamos un mensaje al acabar. -Podemos eliminarlo si el script no requiere de nuestra presencia.

Informar sólo de aquéllos servicios que no están en ejecución


   1: 'Este script sirve para listar los servicios en estado detenido en un archivo de texto
   2:  
   3: '(c) Juansa 28-11-2008
   4:  
   5: Const ForReading = 1, ForWriting = 2
   6: Dim TabStop, NewLine
   7: TabStop = Chr(9)
   8: NewLine = Chr(10)
   9: Set objFSO = CreateObject("Scripting.FileSystemObject")
  10: Set objFile = objFSO.OpenTextFile("C:scriptsServicios_detenidos.txt", ForWriting, True)
  11:  
  12: StrComputer = "."
  13: Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=Impersonate}!\" & strComputer & "rootcimv2")
  14: Set colserviciosdetenidos = objWMIService.ExecQuery("SELECT DisplayName, State FROM Win32_Service WHERE State <> 'Running'")
  15: 'escribimos el título en el archivo
  16: objFile.WriteLine "LISTADO DE SERVICIOS QUE NO SE ESTÁN EJECUTANDO EN FECHA: " & Date
  17: objFile.WriteLine
  18: For each objService in colserviciosdetenidos
  19: 'escribimos el nombre y el estado del servicio
  20: objFile.WriteLine objService.DisplayName & ": " & objService.State
  21:  
  22: Next
  23:  
  24: Wscript.Echo  "FINALIZADO"

* El cambio es evidente, hemos modificado la consulta (SELECT) para que sólo devuelva los servicios que no tengan un estado Running.


estado_detenidos


Crear una tarea en Windows para que se ejecute el script diariamente


  1. Desde Inicio, todos los programas, accesorios, herramientas del sistema, programador de tareas.
    tarea01
  2. Desde la ventana del programador, doble clic en Agregar tarea programada y seguiremos el asistente, primer paso, pulsar siguiente.
    tarea02
  3. Siguiente ventana, pulsaremos en Examinar para ir donde tenemos nuestro script, lo elegiremos y pulsaremos en Abrir del correspondiente cuadro de diálogo.
    tarea03
  4. Elegimos un nombre descriptivo para la tarea, y marcamos la secuencia deseada, en este caso diariamente.
    tarea04
  5. Hora de inicio, frecuencia de días y día de inicio, siguiente.
    tarea05
  6. Datos de la cuenta con la que se ejecutará la tarea. Ojo, si la cuenta no tiene suficientes privilegios no ejecutará la tarea o incluso el script.
    tarea06
  7. Si deseamos configurar alguna opción avanzada o sólo comprobarlas, marcaremos la casilla de verificación y pulsamos en Finalizar.
    tarea07
  8. Avanzadas, ventanas Tarea, Programación, Configuración y Seguridad.
    tarea08 tarea09 tarea10 tarea11
  9. La tarea se ha añadido al programador de tareas.
    tarea12

The strange case of <Unknown Error> 8013141A loading a Visual Studio add-in

A developer posted a couple of days ago in the MSDN forum about Visual Studio Extensibility that loading his add-in caused and exception with error number <Unknown Error> (8013141A). Of course, searching with Google doesn’t always offer much information about these bizarre errors, nor the tools of the Windows SDK for which this error is, well, unknown too.

Since the section of my article about troubleshooting crashes in add-ins didn’t help much, I have enhanced it with further and more detailed explanations, and a mention to this error:

HOWTO: Troubleshooting Visual Studio and Office add-ins
http://www.mztools.com/articles/2007/MZ2007009.aspx

Tenemos responsabilidad en lo que enseñamos/ mostramos?? … o simplemente nos dejamos llevar por las modas…

El post que saco hace unos días Jorge  sobre el por que quitar las referencias a VB  hizo que vuelva a mi mente unas cosas que tenia ya hace tiempo en la cabeza… y bueno, Jersson hizo que me anime a publicarlo. 

Problema :

lo que pensaba era si nosotros como expositores, divulgadores de tecnología ( que no sean empleados MS), entusiastas, etc.. somos responsables de las cosas que mostramos o damos a conocer a los demás…  ya que como una vez me dijo  Fer:

“muchas veces las personas –los lectores- toman muy en serio las cosas que decimos -escribimos-, así que se tiene que tener cuidado con lo que se dice –escribe-  públicamente”

Lógicamente  cada persona es libre de poner lo que le plazca en su blog/web/twitter, etc. pero creo que es necesario que seamos un poco mas consientes de la imagen que damos, a que me refiero?…  supongamos que sale una nueva funcionalidad, característica, etc.… lógicamente es publicada en su mayoría al inicio por algún empleado ms,  o algún socio, donde habla de esa funcionalidad, lógicamente por lo mismo de que es “ un negocio”  solo dirán el lado bonito,  lo bueno, pero no dirán “lo que viene por detrás” , el costo de usar esa funcionalidad, y muchas veces caemos en el error de “copypastear”  la noticia y publicarla así tal cual, sin haber antes probado…, o bueno quizá hasta allí podría pasar como “noticia”, pero lo mas correcto seria “quizá”  que probemos a profundidad esa funcionalidad, para poder ser capaz  de dar una opinión.

Otro problema muy común, es que solo probamos lo bonito, y no nos fijamos en lo demás, llegamos hasta dar conferencias o a hablar del producto, pero sin antes haber investigado sobre el costo de usar eso, personalmente siento que no se conoce realmente algo, hasta que se sabe su lado bueno y malo, cuando encuentro algo nuevo, busco lo bueno y a su vez – no por negativo- busco el costo de usarlo, y luego hago un balance entre lo bueno y lo malo, y si gana lo bueno lo uso…; e platicado con  varias personas  sobre determinadas tecnologías que usan, y les preguntaba si conocían determinado “ problema” que tendrían por usar esa tecnología ( para saber si eran consientes de eso), pero resultaba en muchos casos que ni sabían de eso, pensaban que todo era maravilloso. Lógicamente si uno es consiente de lo bueno y lo malo  y aun así decide usarlo, eso es algo para respetar, ya que tomo su decisión  conociendo realmente lo que esta usando.

Creo que es malo usar “en producción”  o recomendar masivamente que lo usen “en producción”  algo que no conocemos a fondo, muchas veces por querer ser “early adopter’s”   ponemos en producción cosas que nosotros no hemos probado a profundidad,  el lio es que cuando salen los problemas… volvemos a lo mismo “es culpa de MS” . También creo que es malo dejarnos llevar ciegamente por lo que podamos leer en blogs/webs/ conocidas , si bien es cierto muchos de nosotros somos socios “partner’s”  de Microsoft, y usamos sus tecnologías, y podemos leer una noticia  de alguna nueva tecnología”  y sin refutar, nos ponemos a usarla “en producción”  a fondo como si fuera esa tecnología perfecta y lo recomendamos a otros,  y luego si sale una nueva que se sobrepone a esta que estamos usando, sin refutar ni investigar a fondo nos ponemos a migrar a esa nueva funcionalidad, gastando recursos por algo que quizá funcionaba bien… y esto por que???? … por las “Modas” 

En estos círculos “.Net” llegue a reconocer a varios tipos de usuarios de tecnologías Microsoft, lógicamente  hay personas que si respeto mucho, ya que no se dejan llevar por la promoción investigan y sacan sus propias opiniones, esto en base a investigación propia, además de posibles referencias en el internet. También están las personas que no investigan y se creen todo lo que leen,  casi casi hasta lo que aparece en la web “el día de los inocentes”   y lo toman como “ ley”  y  muchas veces lo defienden a muerte, el problema en este caso es cuando estas personas son expositores, o divulgadores de tecnología, y sin haber tener una opinión propia bien fundamentada, replican eso y se genera el efecto del telefonito malogrado;  en muchos casos son conocidos como los que simplemente se memorizan la ppt y lo repiten  tal cual – e visto varios eventos, de ponentes diferentes,  donde se dice exactamente lo mismo, como si fuera el Avemaria –.Los que siguen Modas, estas personas no tienen una preferencia real, usan y siguen lo que este de “moda”, si la moda cambia, ellos cambian, algunas veces dura dias o meses. También están los Incondicionales, de los que defenderán a MS a muerte, saque la tecnología que saque, a mi parecer estos son los mas peligrosos, por que puede llegar a ser que hayan investigado a fondo ( casi no lo hacen, pero seamos optimistas ), pero por el simple echo de quedar bien, mostrarse “actualizados” ( o muchos otros motivos, el cual prefiero no mencionar… pero son conocidos), estas personas son de las que intentarían vender refrigeradoras a los esquimales –ósea no les importa si les sirve o no, lo que importa es darles lo ultimo-, recuerdo una vez que platicaba con una persona y defendía a muerte a Virtual PC 2004, decía que era mucho mejor que el vmware…, me atreví a preguntarle que si lo había usado… y me dijo que no, “ pero que en la web decía que era lo máximo”, lógicamente la platica allí termino… quizá haya otra categoría que se me haya pasado…  en este momento no la recuerdo.

 

Consecuencias :

Si, en este punto muchas personas estarán pensando “ yo soy libre de poner lo que quiera”  y no se equivocan, el detalle es … se habrán dado cuenta de las consecuencias de eso?, de que tanto pueden influir en los lectores? ….

Aquí unos ejemplos de cosas en las cuales AHORA ya no vemos bien ( o al menos de cierto modo) y en las cuales muchos hemos caído ( tengo que aceptar que en el primer caso yo caí … y fue la ultima vez que me deje llevar):

Dataset : cuando salió .Net el Dataset era el boom, si bien es cierto en muchos casos es útil, pero eso luego de un análisis de costo/beneficio, pero en el tiempo en que salió 2002/ 2003 era el boom, así que todos lo usaban , casi todos exponían de eso, de la facilidad, de lo corto del código, del dataadapter.fill y el dataadapter.update, ya hasta que se vieron los problemas en “producción” de performance se comenzó a cambiar la idea, aquí tengo que aceptar que yo tbm fui victima de esto, el detalle es que este “ problema” aun no termina, ya que en muchos de los ejemplos del MSDN – y otros website-  se usan como ejemplos los dataset,  si bien es cierto muchos ya estamos usando las listas genéricas y entidades en el acceso a datos, información  casi no se encuentra “públicamente” y las personas que recién están aprendiendo, verán que se usa dataset y lo usaran en producción, e visto grandes sistemas llenos de dataadapters y datasets en producción, y me llamaban ya que no entendían “por que era tan lento, si estaba echo en .net”.

Ajax : Este es reciente, en este caso es una buena tecnología, pero muchas veces no informamos bien el problema de no usarlo bien, y los usuarios se ponen a poner a diestra y siniestra updatepanels y demás sobresaturando sus paginas, lo bueno es que ahora ya en muchos lugares e visto donde recomiendan usarlo con moderación, pero eso no era así al inicio.

My: de esto se trata  el post de Jorge  sobre el por que es bueno quitarlo…, el detalle es que cuando salió vs 2005, esto fue uno de los caballitos de batalla.

Este ultimo es una opinión personal, aunque posiblemente muy controversial

Linq2SQL : bueno en este caso.. y en esta batalla estoy “casi solo” ( al menos en geeks.ms ), ya que “por el momento” soy de las pocas personas que no esta muy a favor de esto en especifico ( aunque la idea de Linq en general me parece buena, como Linq2Entity), ya Jersson publico unas pruebas de performance, además de que en un articulo se habla de la posible desaparición de Linq2SQL:  http://tinyurl.com/56d5ze , y  es algo en lo que estaría muy de acuerdo, Jersson me dijo que “tengamos paciencia, ya llegara ese día”, algo que espero; lógico hay quienes realmente han visto su lado bueno y malo, lo evaluaron y aun así decidieron usarlo, allí no podría decirles nada, ya que según su evaluación costo/beneficio les convenía usarlo, si fuera este el caso, es el tipo de cosas que hacen que respete a las personas.

Conclusiones :

Esos fueron ( al menos de los 3 primeros) ejemplos de tecnologías que son comúnmente muy “ mal usadas” por los programadores sin experiencia, y esto por que? por que vieron en algún blog, una conferencia, un webcast, que se usaba de cierto modo, y no tuvieron el aviso de que “solo servía como demostración, y no para entornos reales”; lógicamente esto es algo bueno para los de consultoría, ya que cobrarían ( y muy bien)  para arreglar ese tipo de situaciones :) .

Seria recomendable que cada uno haga una introspección y vea si lo que uno “predica” es algo que realmente conoce, si esta uno ya evaluó lo bueno, lo malo,  y aun así decide usarlo; si alguien hace la evaluación y  siente que determinada tecnología que usa es la mejor a su parecer, es algo de respetar, ya que en software, no hay “ respuesta correcta”, creo que lo correcto para todo seria la palabra “depende” , pero  todo usándolo luego de una evaluación, es malo si usamos las cosas sin antes evaluar bien la situación;  Seria Tan valido usar el GOTO en Vb si luego de una evaluación  vemos que es algo que nos conviene – ya esta probado que ms en el IL genera sentencias GOTO – esto en el blog de Rafael Ontivero – , supongo que MS evaluó y vio que era lo mejor-.

para terminar, solo me queda decir que seria bueno que pensemos no solamente en lo que ponemos, sino también como lo recibirán nuestros lectores y como podríamos afectarlos.

“No Siempre lo ultimo y lo mas voceado es lo mejor, primero analicemos, si realmente conviene usarlo, si luego de una evaluación profunda vemos que nos convence, entonces allí si  comencemos a recomendarlo a nuestros conocidos, ya que tendríamos un buen fundamento”. Dacito.

Pdta:  si se fijan, aclare de personas “No empleadas de MS”, ya que es razonable y lógico que los empleados MS defiendan sus tecnologías, ya que es una empresa privada y esas tecnologías son parte de su negocio, por eso mismo debemos de tomar con pinzas todas las noticias o lanzamientos que hacen.

Pdta2:  si llegaste a leer hasta aquí… ya tienes mis respetos, por el aguante, y espero no haber ofendido a nadie, si  es que llegue a hacerlo, de antemano le pido una disculpa.

 

Salu2

 

David Daniel Arroyo Zari – Ddaz –


:) Publicacion cruzada desde Geeks.ms :) http://geeks.ms/blogs/ddaz

Insane November is over…

Body:

image Yes – November is over and I feel somewhat relieved.  It’s been a mad month this month but I’ve got to say that I’ve really enjoyed it a lot.  I’ve visited Sydney, Melbourne, and Perth once each. Brisbane twice and Adelaide three times (twice this week alone). 

I’ve presented / trained many people on SBS 2008 and EBS 2008.  I’ve done two webcasts, one to the entire channel and another for Dell to bring them up to speed.  I’ve also done a heap of training sessions one on one with some of the largest OEMs, Distributors and Partners here in Australia.

In conjunction with HP, Kaseya and Citrix, Robbie and I have visited all the Aussie SBS / SMB IT Professional groups around Australia to do a launch of SBS and EBS and to answer heaps of pent up questions. 

I’ve also had my first two articles written and published by CRN Australia which was a major thing for me.  I enjoy writing and being able to get my thoughts out there via the media to help others understand things better is something of an achievement for me.

All up, I’ve got to say that I am exhausted.  Through all this though I see some amazing potential not just for SBS 2008, but also some massive potential for EBS 2008 which is set to kick some serious butt out there in the community.

I also want to say Thank you to Robbie Upcroft – for his support of the Aussie SMB IT Professional community. Without his support, SBS would not be nearly as successful here in Australia as it is. Without his support, EBS will NOT be as successful as I believe it can be.

I’ll be taking a break too from December 12th going on a well deserved family vacation to Thailand, France, England and Wales. I’ll be taking a total break during this time and won’t be responding to any email during that time either (my computer is being forcibly removed from me). 

Thanks everyone for a great month.  Looking forward to an exciting 2009 and what it holds for us all.  SBSfaq.com will have some exciting announcements in the new year that I know will help everyone in the community.


Published: 28/11/2008 6:46 PM


Recent Comments

Archives