<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Cool Tools</title><link>http://bmonday.com/category/8.aspx</link><description>Cool Tools</description><managingEditor>Beau Monday</managingEditor><dc:language>en-US</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>Beau Monday</dc:creator><title>Cool Tool - Synergy</title><link>http://bmonday.com/archive/2007/11/08/4468.aspx</link><pubDate>Thu, 08 Nov 2007 19:05:00 GMT</pubDate><guid>http://bmonday.com/archive/2007/11/08/4468.aspx</guid><wfw:comment>http://bmonday.com/comments/4468.aspx</wfw:comment><comments>http://bmonday.com/archive/2007/11/08/4468.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://bmonday.com/comments/commentRss/4468.aspx</wfw:commentRss><trackback:ping>http://bmonday.com/services/trackbacks/4468.aspx</trackback:ping><description>&lt;P&gt;So in my new office in my Oklahoma house I have 5 flat-panel monitors attached to 3 systems (2 desktop systems and a laptop).&amp;nbsp; The monitors themselves don't take up much room, but the real estate I had to devote to mice and keyboards was getting out of hand.&amp;nbsp; But KVMs are a bitch, having to switch back and forth all the time.&lt;/P&gt;
&lt;P&gt;So I was explaining this to a colleague at work and he turned me onto an open source project called Synergy (&lt;A href="http://synergy2.sourceforge.net/"&gt;http://synergy2.sourceforge.net/&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;Synergy allows you to use a single keyboard and mouse as if all the screens on your desk were one physical computer.&amp;nbsp; For instance, when I scroll&amp;nbsp;off the right-most edge of my left computer's monitors, the mouse magically appears on the left edge of the right computer as if was directly attached to that computer.&amp;nbsp; No magic key combination, no manual switching, no nothing.&amp;nbsp; The mouse just simply&amp;nbsp;disappears off one computer's screen and appears at the edge of the other's.&lt;/P&gt;
&lt;P&gt;How does it work?&amp;nbsp; Magic!&amp;nbsp; Actually it uses a server component on your main computer (the one with the physically attached keyboard and mouse), and a small client piece on each of the other computers.&amp;nbsp; Then it transmits the keyboard/mouse movements through the network to the computers without keyboards/mice attached.&amp;nbsp; Obviously you need to have a network between all the computers, and allow the specific ports through any firewall that may be in&amp;nbsp;place.&lt;/P&gt;
&lt;P&gt;I was skeptical at first, but the first time I scrolled off the right side of the screen and saw the mouse appear on the other computer's monitors, well, I may have giggled just a little.&lt;/P&gt;
&lt;P&gt;Give Synergy a try if you have found yourself surrounded by keyboards and mice like I was.&amp;nbsp; A definite Cool Tool.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Edited to add:&amp;nbsp; Oh Snap, I totally forgot another cool feature Synergy has:&amp;nbsp; it has a shared clipboard.&amp;nbsp; So you can cut and paste between systems as if they were one physical system.&amp;nbsp; Even across different platforms and operating systems.&amp;nbsp; Schwing!&lt;/STRONG&gt;&lt;/P&gt;&lt;img src ="http://bmonday.com/aggbug/4468.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Beau Monday</dc:creator><title>Tool News</title><link>http://bmonday.com/archive/2006/06/22/3109.aspx</link><pubDate>Thu, 22 Jun 2006 21:45:00 GMT</pubDate><guid>http://bmonday.com/archive/2006/06/22/3109.aspx</guid><wfw:comment>http://bmonday.com/comments/3109.aspx</wfw:comment><comments>http://bmonday.com/archive/2006/06/22/3109.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://bmonday.com/comments/commentRss/3109.aspx</wfw:commentRss><trackback:ping>http://bmonday.com/services/trackbacks/3109.aspx</trackback:ping><description>&lt;P&gt;Fyodor recently announced an update to what was previously called &lt;A href="http://sectools.org/tools2003.html"&gt;&amp;#8220;Top 75 Network Security Tools&amp;#8221;&lt;/A&gt;.&amp;nbsp; The new list, compiled from votes cast on the nmap-hackers mailing list, has grown to 100 tools, including recent newcomer MetaSploit, which did not exist at the time the previous list was produced.&amp;nbsp; You can see the new Top 100 Network Security Tools &lt;A href="http://sectools.org/"&gt;here&lt;/A&gt;.&amp;nbsp; Fyodor does not permit votes for his legendary tool &lt;A href="http://www.insecure.org/nmap/index.html"&gt;Nmap&lt;/A&gt;, since the poll is conducted on an Nmap-focused mailing list, and Nmap would certainly take the top spot (and rightfully so).&lt;/P&gt;
&lt;P&gt;In a somewhat related note, another legendary security tool, Ethereal, has been acquired by a private concern,&amp;nbsp;who,&amp;nbsp;due to a trademark dispute had to relinquish the Ethereal name.&amp;nbsp; The tool is now known as &lt;A href="http://www.wireshark.org/"&gt;WireShark&lt;/A&gt;, and appears in the #2 spot, right behind Nessus, on &lt;A href="http://sectools.org/"&gt;Fyodor's list&lt;/A&gt;.&lt;/P&gt;&lt;img src ="http://bmonday.com/aggbug/3109.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Beau Monday</dc:creator><title>New Tool: IPEnum.vbs</title><link>http://bmonday.com/archive/2005/10/15/2817.aspx</link><pubDate>Sat, 15 Oct 2005 00:41:00 GMT</pubDate><guid>http://bmonday.com/archive/2005/10/15/2817.aspx</guid><wfw:comment>http://bmonday.com/comments/2817.aspx</wfw:comment><comments>http://bmonday.com/archive/2005/10/15/2817.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://bmonday.com/comments/commentRss/2817.aspx</wfw:commentRss><trackback:ping>http://bmonday.com/services/trackbacks/2817.aspx</trackback:ping><description>&lt;P&gt;Just a note announcing the general availability of my latest admin script, IPEnum.vbs.&lt;/P&gt;
&lt;P&gt;IPEnum is a script I wrote to facilitate the enumeration of my various networks, and quickly&amp;nbsp;highlight systems that have appeared or moved since the last time I scanned.&lt;/P&gt;
&lt;P&gt;The script is absolutely free for anyone to use.&lt;/P&gt;
&lt;P&gt;You can read the full details and download the code and samples here: &lt;A href="http://bmonday.com/articles/2816.aspx"&gt;IPEnum: Network Enumeration Script&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://bmonday.com/aggbug/2817.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Beau Monday</dc:creator><title>iBackup Test Drive</title><link>http://bmonday.com/archive/2005/10/05/2780.aspx</link><pubDate>Wed, 05 Oct 2005 00:41:00 GMT</pubDate><guid>http://bmonday.com/archive/2005/10/05/2780.aspx</guid><wfw:comment>http://bmonday.com/comments/2780.aspx</wfw:comment><comments>http://bmonday.com/archive/2005/10/05/2780.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://bmonday.com/comments/commentRss/2780.aspx</wfw:commentRss><trackback:ping>http://bmonday.com/services/trackbacks/2780.aspx</trackback:ping><description>&lt;P&gt;A friend of mine is a lawyer, and she's got her life on her laptop.&amp;nbsp; If the thing goes toes up, she loses years worth of work that would be difficult to replace.&amp;nbsp; Everything she does ultimately ends up as a hard copy, so it could be reproduced.&amp;nbsp; But it would be an enormous undertaking.&lt;/P&gt;
&lt;P&gt;So I've been doing some research on backup solutions for her.&amp;nbsp; Something that she doesn't have to think about, but results in at least weekly backups of her critical information.&amp;nbsp; I was very intrigued when &lt;A href="http://www.furrygoat.com/2005/09/netgear_storage.html"&gt;Steve&amp;nbsp;posted about&amp;nbsp;a cool NAS appliance that NetGear is currently making&lt;/A&gt;.&amp;nbsp; But that still leaves my friend with a problem:&amp;nbsp; If her house burns down, heaven forbid, her backup gets melted along with her laptop.&amp;nbsp; And she's got too many things to worry about without having to manage a tape system with complex tape rotations, so that rules out offsite tapes and even CDs.&lt;/P&gt;
&lt;P&gt;So I started looking into some of the online backup services to see if they would fit the bill.&lt;/P&gt;
&lt;P&gt;My requirements:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;4-5 gigs of storage space&lt;/LI&gt;
&lt;LI&gt;Encryption of the data, both in transit and at rest&lt;/LI&gt;
&lt;LI&gt;They have to operate in a bonafide data center, not in a rack of systems in their owner's garage&lt;/LI&gt;
&lt;LI&gt;Scheduled backups, at least weekly in frequency (daily would be better)&lt;/LI&gt;
&lt;LI&gt;Some version control would be cool, so she can go back to a previous backup if the current one saved a corrupted file or something&lt;/LI&gt;
&lt;LI&gt;Easy to use, completely transparent and low maintenance&lt;/LI&gt;
&lt;LI&gt;Ability to edit the files online would be a plus, but not required.&lt;/LI&gt;
&lt;LI&gt;Compelling price&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The big players in the space are &lt;A href="http://www.ibackup.com/index.html"&gt;iBackup&lt;/A&gt; and &lt;A href="http://www.xdrive.com/"&gt;XDrive&lt;/A&gt;, both of whom have gotten very good write-ups from various trade rags.&amp;nbsp; They've also both been doing this for a while.&amp;nbsp; The price for both services is compelling, with X-Drive charging 10 bucks a month for 5 gigs and iBackup charging $15 a month for 4 gigs of space, both with unlimited transfers (iBackup offers a reduced service 5-gig plan for 10 bucks, but to fairly compare features with XDrive's $10 plan you have to go with iBackup's $15 plan).&lt;/P&gt;
&lt;P&gt;Unfortunately, I had to disqualify X-Drive almost immediately.&amp;nbsp; While they encrypt the transfers in 128-bit SSL, like everyone else does, the files are not encrypted at rest.&amp;nbsp; Which means that you have to have a very high level of trust about the operation's data center, security posture&amp;nbsp;and staff.&amp;nbsp; I wouldn't trust my mother with my friend's legal files, so that's a big problem.&amp;nbsp; So, sorry X-Drive, you're out of the running before we've even left the gate.&lt;/P&gt;
&lt;P&gt;So iBackup.&amp;nbsp; They've got a neat offering.&amp;nbsp; Not only do they allow you to encrypt the files at rest, with a strong well-known scheme, they also have some &lt;A href="http://www.ibackup.com/features.htm"&gt;neat tools&lt;/A&gt; to allow you to work on the files online, without having to have local copies on the system you are using.&amp;nbsp; Like X-Drive, you can map a drive letter to the online repository and use it just like any other locally attached storage device.&amp;nbsp; Cool stuff.&lt;/P&gt;
&lt;P&gt;Unfortunately, being able to encrypt files at rest, and being able to edit them online are mutually exclusive concepts.&amp;nbsp; You can't have both.&amp;nbsp; The tool that enables drive letter mapping is not capable of performing the decryption of the files, only the backup/restore tool can do that.&amp;nbsp; So, while it would have been nice for my friend to just work on the files as they reside at iBackup's site, it's not going to be possible unless she forgoes the encryption-at-rest.&amp;nbsp; The encryption of the backups and restores during the file transfers is still in place, since that relies on simple SSL.&lt;/P&gt;
&lt;P&gt;However, this is not a showstopper.&amp;nbsp; It would be nice for her to be able to work on files online, but that's not a hard requirement.&amp;nbsp; Enabling scheduled no-hassle backups is the core requirement here, and iBackup seems to do a fine job with that.&amp;nbsp; The scheduled backup wizard is easy to use, and had me up and running with backups in a few seconds after installing the software.&amp;nbsp; You can backup at the frequency you wish, which is another differentiator from some other online storage solutions that only allow you to back up once a week.&lt;/P&gt;
&lt;P&gt;Another really neat feature of iBackup is the fact that they do automatic snapshots of your data (you have to enable the feature, but it is free), leaving you with a history of revisions that is 10 backups deep.&amp;nbsp; So if you realized that the last 3 backups have been backing up a trashed version of a doc, you can actually go back to the 4th previous backup and restore that version.&amp;nbsp; Very cool!&amp;nbsp; With some of the more expensive plans they allow you to go back 30 revisions, or more.&amp;nbsp; But you get 10 snapshots included in the base price, and they don't count against your storage allocation!&lt;/P&gt;
&lt;P&gt;My wishlist for iBackup:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The iDrive&amp;nbsp;application (drive mapping) with integrated file encryption, as I indicated earlier.&amp;nbsp; I wouldn't keep files on my laptop at all if they offered this.&lt;/LI&gt;
&lt;LI&gt;The ability to have an encrypted storage area and a non-encrypted area.&amp;nbsp; I don't care if my web site backups are encrypted, but I'd like my docs encrypted, for example.&amp;nbsp; Right now it seems to be all or nothing, based on the user.&lt;/LI&gt;
&lt;LI&gt;I'd like the ability to put the backed-up files in a directory structure that I designate.&amp;nbsp; If I make a backup of my web site files, I'd like to to be in a directory called &amp;#8220;bmonday.com backup&amp;#8220; or something, not c/inetpub/dottext.&amp;nbsp; Currently if I back up 2 machines that have the same &amp;#8220;My Documents&amp;#8220; directory, all the files end up on the iBackup server in the same directory: c/My Documents/username/.&amp;nbsp; I don't normally have the same doc on 2 systems (and I'm not sure what happens in that case), but still it isn't very intuitive.&amp;nbsp; I want Machine A's backup to be in a directory clearly indicating it was from Machine A.&amp;nbsp; I haven't played around with the directory settings of the system though, there may be a workaround for this that I haven't yet seen.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Overall I am very impressed with iBackup's offering, and will recommend it to my other friends who don't have an established backup strategy.&amp;nbsp; I may even explore using it as a repository of our disaster recovery documentation and procedures at work, in addition to other critical files that would be handy to have immediate access to in a pinch.&lt;/P&gt;&lt;img src ="http://bmonday.com/aggbug/2780.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Beau Monday</dc:creator><title>Querying MAC Addresses Using WMI</title><link>http://bmonday.com/archive/2005/06/13/2494.aspx</link><pubDate>Mon, 13 Jun 2005 00:58:00 GMT</pubDate><guid>http://bmonday.com/archive/2005/06/13/2494.aspx</guid><wfw:comment>http://bmonday.com/comments/2494.aspx</wfw:comment><comments>http://bmonday.com/archive/2005/06/13/2494.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://bmonday.com/comments/commentRss/2494.aspx</wfw:commentRss><trackback:ping>http://bmonday.com/services/trackbacks/2494.aspx</trackback:ping><description>&lt;P&gt;I recently took it upon myself to determine if the ports in our data center switches were labeled properly with the systems those ports were hosting.&amp;nbsp; The only real way to do this is to match the MAC address listed on a given port with the known MAC addresses of the network interfaces in each of the servers.&lt;/P&gt;
&lt;P&gt;The problem is, I don't know the MAC addresses of all the NICs in our servers.&lt;/P&gt;
&lt;P&gt;How do I find&amp;nbsp;the MAC addresses of the servers?&amp;nbsp; I don't want to log into each of our 130 servers and do an &amp;#8220;ipconfig /all&amp;#8221; on each one.&amp;nbsp; Given that each server has at least 2, and more often 3 unique interfaces, that's a lot of writing!&lt;/P&gt;
&lt;P&gt;So I created a WMI script that will report on the MAC addresses for a single system (if a machine name is specified on the command line), or query each system in an entire domain, and email the resulting comma separated list to you (as well as display them nicely on the screen).&amp;nbsp; Then you can match those MAC addresses with those reported by your switch, and make the necessary adjustments to your labeling scheme.&lt;/P&gt;
&lt;P&gt;The script also reports what IP addresses are configured on each interface, which is also generally useful information.&amp;nbsp; If you are using Windows 2003 or XP, there is also a way to display the given name of each interface (this does not work on 2000, so I have left it out).&lt;/P&gt;
&lt;P&gt;You can find the code &lt;A href="http://bmonday.com/code/QueryMac.txt"&gt;here&lt;/A&gt;.&amp;nbsp; (I'd display it in this blog entry, but .Text tends to do fairly obscene things to my vbscript examples, and it's 1:00 in the morning already.)&lt;/P&gt;&lt;img src ="http://bmonday.com/aggbug/2494.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Beau Monday</dc:creator><title>Bug with Dell Laptops and Keyboard Repeat Rate</title><link>http://bmonday.com/archive/2005/06/13/2493.aspx</link><pubDate>Mon, 13 Jun 2005 00:32:00 GMT</pubDate><guid>http://bmonday.com/archive/2005/06/13/2493.aspx</guid><wfw:comment>http://bmonday.com/comments/2493.aspx</wfw:comment><comments>http://bmonday.com/archive/2005/06/13/2493.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://bmonday.com/comments/commentRss/2493.aspx</wfw:commentRss><trackback:ping>http://bmonday.com/services/trackbacks/2493.aspx</trackback:ping><description>&lt;P&gt;At work I have a Dell laptop and a docking station that I use instead of a typical desktop system.&amp;nbsp; This is great for taking notes in meetings, and looking up things while I am away from my desk.&lt;/P&gt;
&lt;P&gt;It does, however, have one very annoying bug.&amp;nbsp; The keyboard repeat rate resets itself every time I dock the laptop.&amp;nbsp; Even though the sliders in the Control Panel applet show maximum speed, the keyboard crawls at a maddeningly slow rate of speed.&lt;/P&gt;
&lt;P&gt;The best workaround I have found so far is &lt;A href="http://www.ruijiang.com/projects.htm"&gt;Ruijiang's SetKeyboardSpeed application&lt;/A&gt;&amp;nbsp;(source included), which is a command-line utility that can set the keyboard rate to whatever you want.&amp;nbsp; Best of all, executing it with no parameters sets the speed to maximum, which is what I prefer.&amp;nbsp; So once I get docked, I doubleclick on the shortcut to the app, and I'm all set.&lt;/P&gt;
&lt;P&gt;Now all I need is a way to have it automatically execute whenever I dock.&amp;nbsp; Any ideas?&lt;/P&gt;&lt;img src ="http://bmonday.com/aggbug/2493.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Beau Monday</dc:creator><title>Enumerating all systems in an Active Directory domain</title><link>http://bmonday.com/archive/2005/04/21/2392.aspx</link><pubDate>Thu, 21 Apr 2005 23:15:00 GMT</pubDate><guid>http://bmonday.com/archive/2005/04/21/2392.aspx</guid><wfw:comment>http://bmonday.com/comments/2392.aspx</wfw:comment><comments>http://bmonday.com/archive/2005/04/21/2392.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://bmonday.com/comments/commentRss/2392.aspx</wfw:commentRss><trackback:ping>http://bmonday.com/services/trackbacks/2392.aspx</trackback:ping><description>&lt;P&gt;I often have to query all systems in a domain for some bit of information. I recently crafted a script that allows me to easily accomplish this, and I thought some of my readers might find it useful.&lt;/P&gt;
&lt;P&gt;The script will take a command-line argument for a single computer name, but if one is not specified it will act upon the entire domain.&amp;nbsp; You will need to modify the objCommand.CommandText line to suit your environment, obviously.&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;PRE class=coloredcode&gt;&lt;SPAN class=cmt&gt;'We're using a dictionary object to hold the list of systems
&lt;/SPAN&gt;&lt;SPAN class=kwd&gt;Set&lt;/SPAN&gt; objDictionary = CreateObject(&lt;SPAN class=st&gt;"Scripting.Dictionary"&lt;/SPAN&gt;) 

&lt;SPAN class=cmt&gt;'Check for command-line arguments
&lt;/SPAN&gt;&lt;SPAN class=kwd&gt;Set&lt;/SPAN&gt; objArgs = wscript.Arguments
&lt;SPAN class=kwd&gt;If&lt;/SPAN&gt; objArgs.Count = 0 &lt;SPAN class=kwd&gt;Then&lt;/SPAN&gt; 
  &lt;SPAN class=cmt&gt;'If no computer name is specified on the command line, enumerate the AD for computers
&lt;/SPAN&gt;  EnumAD
&lt;SPAN class=kwd&gt;Else&lt;/SPAN&gt; 
  &lt;SPAN class=cmt&gt;'If a computer name is specified on the command line, use it instead of enumerating the AD
&lt;/SPAN&gt;  objDictionary.Add 0, objArgs.item(0)
&lt;SPAN class=kwd&gt;End If

Dim&lt;/SPAN&gt; intServerCount

&lt;SPAN class=kwd&gt;Sub&lt;/SPAN&gt; EnumAD
  &lt;SPAN class=kwd&gt;Set&lt;/SPAN&gt; objConnection = CreateObject(&lt;SPAN class=st&gt;"ADODB.Connection"&lt;/SPAN&gt;)
  objConnection.Open &lt;SPAN class=st&gt;"Provider=ADsDSOObject;"&lt;/SPAN&gt;
  set objCommand = CreateObject(&lt;SPAN class=st&gt;"ADODB.Command"&lt;/SPAN&gt;)
  objCommand.ActiveConnection = objConnection

  intServerCount = 0
 
  &lt;SPAN class=cmt&gt;'Create a query specifying the domain name, and also to filter on only computers
&lt;/SPAN&gt;  objCommand.CommandText = &lt;SPAN class=st&gt;"&amp;lt;LDAP://dc=bmonday,dc=com&amp;gt;;(objectCategory=computer);name"&lt;/SPAN&gt; 
 
  &lt;SPAN class=cmt&gt;'Create the recordset based on the above query
&lt;/SPAN&gt;  set objRecordSet = objCommand.Execute 
 
  &lt;SPAN class=cmt&gt;'Iterate through the recordset and put all the computer names into the dictionary object
&lt;/SPAN&gt;  &lt;SPAN class=kwd&gt;While Not&lt;/SPAN&gt; objRecordSet.EOF
    strServerName = objRecordSet.Fields(&lt;SPAN class=st&gt;"Name"&lt;/SPAN&gt;) &lt;SPAN class=cmt&gt;'Get the server name
&lt;/SPAN&gt;    objDictionary.Add intServerCount, strServerName &lt;SPAN class=cmt&gt;'Add it to the dictionary
&lt;/SPAN&gt;    intServerCount = intServerCount + 1 &lt;SPAN class=cmt&gt;'Increment the server count
&lt;/SPAN&gt;    objRecordSet.MoveNext &lt;SPAN class=cmt&gt;'Move to the next server in the list and start over
&lt;/SPAN&gt;  Wend
 
&lt;SPAN class=kwd&gt;End Sub&lt;/SPAN&gt;

&lt;SPAN class=cmt&gt;'Now you can perform whatever task you wanted to perform on each system
&lt;/SPAN&gt;&lt;SPAN class=kwd&gt;For Each&lt;/SPAN&gt; objItem in objDictionary
  &lt;SPAN class=cmt&gt;'Do Something
&lt;/SPAN&gt;&lt;SPAN class=kwd&gt;Next&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;img src ="http://bmonday.com/aggbug/2392.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Beau Monday</dc:creator><title>Disable Shutdown, Permit Restart</title><link>http://bmonday.com/archive/2005/03/10/2305.aspx</link><pubDate>Thu, 10 Mar 2005 21:22:00 GMT</pubDate><guid>http://bmonday.com/archive/2005/03/10/2305.aspx</guid><wfw:comment>http://bmonday.com/comments/2305.aspx</wfw:comment><comments>http://bmonday.com/archive/2005/03/10/2305.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://bmonday.com/comments/commentRss/2305.aspx</wfw:commentRss><trackback:ping>http://bmonday.com/services/trackbacks/2305.aspx</trackback:ping><description>&lt;P&gt;In an unmanned datacenter, it's bad to shutdown a system. Mostly because there isn't always someone around to hit the button and power it back on.&lt;/P&gt;
&lt;P&gt;While you can remove the Shutdown button from the user's UI via GPO, that also prevents them from restarting the system.&amp;nbsp; This was a problem for me recently.&amp;nbsp; I need to enable certain users to reboot particular systems, but prevent them from accidentally shutting them down.&lt;/P&gt;
&lt;P&gt;What I ultimately opted to do was use the GPO to remove the Shutdown/Restart buttons from the user's interface.&amp;nbsp; Then I gave them a WSH script that will restart the system (but won't shut it down).&lt;/P&gt;
&lt;P&gt;The script went a little something like this:&lt;/P&gt;&lt;DIR=LTR style="MARGIN-RIGHT: 0px"&gt;&lt;PRE class=coloredcode&gt;wscript.stdout.WriteLine &lt;SPAN class=st&gt;"Warning! This script will reboot this machine!"&lt;/SPAN&gt;
wscript.stdout.WriteLine &lt;SPAN class=st&gt;"If you wish to proceed, type REBOOT and hit enter: "&lt;/SPAN&gt;
strResponse = wscript.stdin.ReadLine
&lt;SPAN class=kwd&gt;If&lt;/SPAN&gt; strResponse = &lt;SPAN class=st&gt;"REBOOT"&lt;/SPAN&gt; &lt;SPAN class=kwd&gt;Then
 Set&lt;/SPAN&gt; objShell = wscript.CreateObject(&lt;SPAN class=st&gt;"wscript.Shell"&lt;/SPAN&gt;)
 &lt;SPAN class=kwd&gt;Set&lt;/SPAN&gt; objNetwork = wscript.CreateObject(&lt;SPAN class=st&gt;"wscript.Network"&lt;/SPAN&gt;)
 &lt;SPAN class=kwd&gt;Set&lt;/SPAN&gt; objWMIService = GetObject(&lt;SPAN class=st&gt;"winmgmts:{impersonationLevel=impersonate, (Shutdown)}!\\.\root\cimv2"&lt;/SPAN&gt;)
 strUser = objNetwork.Username
 strDomain = objNetwork.UserDomain
 strClient = objNetwork.ComputerName
 strTime = Now
 strEventLog = &lt;SPAN class=st&gt;"User "&lt;/SPAN&gt; &amp;amp; strDomain &amp;amp; &lt;SPAN class=st&gt;"\"&lt;/SPAN&gt; &amp;amp; strUser &amp;amp; &lt;SPAN class=st&gt;" issued a reboot command via System_Restart script at "&lt;/SPAN&gt; &amp;amp; strTime
 &lt;SPAN class=kwd&gt;Set&lt;/SPAN&gt; colOperatingSystems = objWMIService.ExecQuery(&lt;SPAN class=st&gt;"Select * from Win32_OperatingSystem"&lt;/SPAN&gt;)
 objShell.LogEvent 2, strEventLog
 &lt;SPAN class=kwd&gt;For Each&lt;/SPAN&gt; objOperatingSystem in colOperatingSystems
  objOperatingSystem.Reboot()
 &lt;SPAN class=kwd&gt;Next
Else&lt;/SPAN&gt;
 wscript.echo &lt;SPAN class=st&gt;"REBOOT directive not received, aborting reboot process..."&lt;/SPAN&gt;
 wscript.quit
&lt;SPAN class=kwd&gt;End If&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;The script will require the user to type &amp;#8220;REBOOT&amp;#8221; at the prompt before continuing, to reduce the chance that the&amp;nbsp;reboot&amp;nbsp;is&amp;nbsp;triggered accidentally.&amp;nbsp; It also inserts a message in the system's event log that records who launched the script, and when.&lt;/P&gt;
&lt;P&gt;Naturally, you will want to make sure you properly secure the script, granting access only to those personnel who have the need to perform a restart of the system.&lt;/P&gt;&lt;img src ="http://bmonday.com/aggbug/2305.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Beau Monday</dc:creator><title>New Edition of Inside Windows 2000 Is Out</title><link>http://bmonday.com/archive/2005/01/07/2094.aspx</link><pubDate>Fri, 07 Jan 2005 17:31:00 GMT</pubDate><guid>http://bmonday.com/archive/2005/01/07/2094.aspx</guid><wfw:comment>http://bmonday.com/comments/2094.aspx</wfw:comment><comments>http://bmonday.com/archive/2005/01/07/2094.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://bmonday.com/comments/commentRss/2094.aspx</wfw:commentRss><trackback:ping>http://bmonday.com/services/trackbacks/2094.aspx</trackback:ping><description>&lt;P&gt;My friend &lt;A href="http://www.furrygoat.com"&gt;Steve&lt;/A&gt; pointed out to me that the 4th Edition of Inside Windows 2000 &lt;A href="http://www.sysinternals.com/windowsinternals.shtml"&gt;has been released by the fine folks at SysInternals&lt;/A&gt;.&amp;nbsp; The name of the tome has been changed to Windows Internals.&lt;/P&gt;
&lt;P&gt;From the site:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;Windows Internals, 4th edition replaces Inside Windows 2000, 3rd edition.&amp;nbsp; With 25% more content than the previous edition, it has been updated to cover Windows XP and Windows Server 2003, including 64-bit support, while also still covering Windows 2000. This new edition is even more valuable to the IT professional/system administrator as it takes the internals information and applies it to advanced troubleshooting, such as taking advantage of Sysinternals tools like Filemon, Regmon, and Process Explorer. It also has a new chapter on crash dump analysis. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;This is definitely a must-have book for anyone who works with Windows systems on a daily basis, and it will probably join &lt;A href="http://www.amazon.com/exec/obidos/ASIN/0735618674/bmondaydotcom-20"&gt;Windows 2000 Scripting Guide&lt;/A&gt; and &lt;A href="http://www.amazon.com/exec/obidos/ASIN/0201633469/bmondaydotcom-20"&gt;TCP/IP Illustrated&lt;/A&gt; on the list of books I need 2 copies of, one each for my office and home office.&lt;/P&gt;&lt;img src ="http://bmonday.com/aggbug/2094.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Beau Monday</dc:creator><title>Source Code Formatter</title><link>http://bmonday.com/archive/2004/11/12/1540.aspx</link><pubDate>Fri, 12 Nov 2004 16:51:00 GMT</pubDate><guid>http://bmonday.com/archive/2004/11/12/1540.aspx</guid><wfw:comment>http://bmonday.com/comments/1540.aspx</wfw:comment><comments>http://bmonday.com/archive/2004/11/12/1540.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://bmonday.com/comments/commentRss/1540.aspx</wfw:commentRss><trackback:ping>http://bmonday.com/services/trackbacks/1540.aspx</trackback:ping><description>&lt;P&gt;The guys over at &lt;A href="http://www.aspnetresources.com"&gt;ASP.NETResources&lt;/A&gt; have a very nice online source code formatting tool that is designed to beautify code snippets that are destined to be displayed on a web site (like this one).&amp;nbsp; You simply paste your code of choice into the textbox, and out comes nicely colored and formatted code, ready to be displayed on a web page or blog.&amp;nbsp; They even include a css file for you.&lt;/P&gt;
&lt;P&gt;Check it out &lt;A href="http://www.aspnetresources.com/tools/codecolor.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;img src ="http://bmonday.com/aggbug/1540.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>