How to get a funky-colored Logon Desktop
August 20th, 2007 by Daniele Muscettaaka – how to (mis)use the information in a KB article to make your logon screen on Windows 2003 Server look like a candy shop: http://support.microsoft.com/?id=906510
aka – how to (mis)use the information in a KB article to make your logon screen on Windows 2003 Server look like a candy shop: http://support.microsoft.com/?id=906510
I got tired of using FeedBurner, really. So I made a much more flexible and "Complete" integrated feed that includes posts on this blog, my photos on Flickr, my Status Changes on Facebook and Twitter. Please update your aggregator if you were using the old feed (which still works btw, but will keep having less information in it).
Check this out:
Windows Live ID Team has published on the web the SDK that lets you liveID (or "passport")-enable your applications!
http://msdn2.microsoft.com/en-us/library/bb676633.aspx
There are even code samples in six different languages: C#, Java, PHP, Python, Ruby e Perl! You can download them from http://go.microsoft.com/fwlink/?LinkId=91761
Wow! Having time, it would be cool to write a WordPress plugin using Passport authentication to authenticate/identify users that want to comment… mumble mumble…..
Interoperability. Wow.
More info at the Live ID starting Page: http://dev.live.com/blogs/liveid/archive/2006/05/18/8.aspx
Luca on the Swing, uploaded by Daniele Muscetta on Flickr.
We've passed the sunday visiting my grandparents in the village where I've used to spend my summers for many years.
Seeing Luca playing and having fun on the very same swings I've used as a kid showed me part of myself. As I was. Probably as I should still be.
I am sorry I only read this blog post by Eileen Brown today, not when she posted it. It got lost somewhere among loads of other feeds. Anyway I am sorry I read it so late, because, by now, commenting on that post is not possible anymore. Hope she does get the pingback at least…
Anyway, the post goes about Microsoft Surface. Which is something really cool. Eileen goes saying that she's worried if her cat would jump on the touch-screen table doing some damage to her information / data /accounts…. when I first saw the technology presented, I actually thought sort of the same thing…. what about my son going to the table with his hands dirty of chocolate paste ?? I have blogged in the past about the danger he poses…
Since kids these days do use the computers, having to replace keyboards because they are full of biscuits'crumbles or because they spilled fruit juice on them is quite common. Just less expensive than the special touch-screen, at the moment….
"[...] many of us are getting sick and tired of creating multiple user id's, checking messages on multiple inboxes and accepting the same 75 friends on 10 different social networks. For now here is my personal solution to the social networking problem – if you have my gmail address and my blog address, that is all that you need to reach me, read about me, see my pictures, date me, send me fan letters and/or harass me. [...]" (exceprt from: http://www.anshublog.com/2007/08/identity-crisis-in-land-of-social.html)
lol! Anshu is so much right!!!! I agree with his conclusion 100%!!!!
I know this is a very common issue.
I keep finding way too many software that claim to interact with Web 2.0 sites or services, and connect here or there…. still forgetting one basic simple rule, that is: letting people use a proxy.
Most programmers for some reasons just assume that since they are directly connected to the internet, everybody is. Which isn't always the case. Most companies have proxies and will only let you out to port 80 – by using their proxy.
…which in turn is one of the reasons why most applications now "talk" and tunnel whatever application protocol on top of HTTP… still a lot of softwares simply "forget" or don't care proving a simple checkbox "use proxy", which will translate in two or three extra lines of code… three lines which I personally usually include in my projects, when I am not even a *developer*!! (but that might explain why I *think* of it… I come from a security and networking background
)
I thought of writing this post after having read this post by Saqib Ullah.
Anyway. I keep finding this thing over and over again. Both in simple, hobbyist, sample and/or in complex, big, expensive enterprise software. Last time I got pissed off about a piece of code missing this feature was some days ago when testing http://www.codeplex.com/FacebookToolkit. The previous time was during Windows Vista beta-testing (I had found a similar issue in beta2, and had it fixed for RC1.)
Actually, I am being polite saying it is "missing a feature". To be honest I think missing this "feature" would have to be considered a bug: every piece of software using HTTP *should* include the possibility to pass thorugh proxy (also, don't forget about AUTHENTICATED proxies), or the purpose of using HTTP in the first place is defeated!!
Developers!!! You have to remember people ARE behind proxies !!!!!
Scoble Spam ?, uploaded by Daniele Muscetta on Flickr.
In reply to Dare….. he's Hijacked my news feed too!!!!
Today I was working with a customer and friend (Claudio Latini, who I thank for the permission to post this, which is also work of his brain – especially the regular expression you'll see reading on!).
We are running several projects and activities together and, among several other things, he's in the process of migrating his users from Exchange 2003 to Exchange 2007. In this infrastructure, he has some ISA Server that publish both the Exchange2003 and the Exchange2007 frontends.
Now he wanted to know HOW MANY and WHICH ONES of his users actually have a PocketPC or other WIndows Mobile device and were actively connecting to the old FrontEnd. You give out mobile devices to people but those things are usually less "managed" – when compared to corporate PCs, at least. So you loose a bit control of the thing… usually people with mobile devices using ActiveSync in companies are managers, and especially since some of them might be on holiday at the moment, it was important to know WHO were the people that had to be told to reconfigure their device to point to the new name/server BEFORE he would start complaining about ActiveSync not working anymore…
So how do you figure out who's connecting ?
I am NO Exchange expert whatsoever… but a thing that came in handy was the thing that an ISA Server was reverse-publishing the frontend server. I know ISA (and firewalls/proxies in general) much better than Exchange, so I can help on that side. In the log files, ActiveSync Connections looked like the following URL, passing most parameters in the POST request: http://www.company.com/exchange?User=Mario&DeviceID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla (and on an unrelated note: yes, if you try to crawl this link, you are a bot
)
So we exported ISA logs (there are several tools for this, including "Extract logs", but we did not use a script, we just used a filter for the correct publishing rule in the "Monitoring – Logging" tag in ISA Server Console and then copied and pasted those log lines) and tried to see if PowerShell could help tackle the issue.
Here we load our sample log (in a real log you would have much more information – each single line wrapping several console rows; I cut it short to the URL to make it more readable.
PS> get-content log.txt
http://www.company.com/exchange?User=Mario&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Gino&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Antonio&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Antonio&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Gino&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Antonio&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Antonio&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Mario&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Mario&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Mario&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Mario&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Antonio&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Antonio&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Mario&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Antonio&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Antonio&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Mario&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Antonio&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Antonio&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Mario&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Antonio&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Antonio&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
http://www.company.com/exchange?User=Mario&DevideID=186hkjw6gjw76463uh2g5gi2j3h&Bla=bla
We know Get-Content does not just display the file, it loads the file into a string array.
So we can cycle through the file and try to extract (using a regexp) the string after "User=" and before the first ampersand ("&"), which translates in the following regular expression:
"User=(?<nome>.*?)&"
(the regexp has been the most difficult thing to figure out, but it is very worth the hassle once you've done it…)
PS> get-content log.txt | foreach {$_ -match "User=(?<nome>.*?)&" | out-null; $matches} Name Value ---- ----- nome Mario 0 User=Mario& nome Gino 0 User=Gino& nome Antonio 0 User=Antonio& nome Antonio 0 User=Antonio& nome Gino 0 User=Gino& nome Antonio 0 User=Antonio& nome Antonio 0 User=Antonio& nome Mario 0 User=Mario& nome Mario 0 User=Mario& nome Mario 0 User=Mario& nome Mario 0 User=Mario& nome Antonio 0 User=Antonio& nome Antonio 0 User=Antonio& nome Mario 0 User=Mario& nome Antonio 0 User=Antonio& nome Antonio 0 User=Antonio& nome Mario 0 User=Mario& nome Antonio 0 User=Antonio& nome Antonio 0 User=Antonio& nome Mario 0 User=Mario& nome Antonio 0 User=Antonio& nome Antonio 0 User=Antonio& nome Mario 0 User=Mario& nome Mario 0 User=Mario&
This seems to work. Now we only have to get the Named Captures called "nome" (containing the user name):
PS> get-content log.txt | foreach {$_ -match "User=(?<name>.*?)&" | out-null; $matches["name"]} Mario Gino Antonio Antonio Gino Antonio Antonio Mario Mario Mario Mario Antonio Antonio Mario Antonio Antonio Mario Antonio Antonio Mario Antonio Antonio Mario Mario
Awesome. Now sort them and remove duplicates. Which is one more command in our pipeline:
get-content log.txt | foreach {$_ -match "User=(?<nome>.*?)&" | out-null; $matches["nome"]} | sort-object -uniq
P> get-content log.txt | foreach {$_ -match "User=(?<name>.*?)&" | out-null; $matches["name"]} | sort-object -uniq Antonio Gino Mario PS> PS>
Now you can call those three users and tell them to modify their ActiveSync configuration
[...] Pisces are known for sometimes playing the role of a prophet. This is the case for you at the moment, Daniele. Wherever you are, people will think you are deeply connected with the planet and particularly able to act on whatever philosophy you espouse. You would make an excellent political advisor. Though it remains to be seen if people will listen to you because your ideas are very cutting-edge… [...]