Microsoft Web Deploy and Windows Credential Manager

Recently I had to migrate some web servers into a new Active Directory domain. I had been deploying to these servers use Web Deploy (via the msdeploy.exe command line) for a while. When they were moved into the new AD domain, I started to receive ERROR_USER_NOT_ADMIN errors.

My scripts were set up to use cached credentials, so I was not specifying the credentials in the command line. This would normally look like this:

msdeploy.exe -verb:sync -source:contentPath="C:\inetpub\wwwroot\site1\dir1\" -dest:contentPath=D:\webroot\site1\dir1\,computerName=mymachine,username=myuser,password=mypassword

However, my scripts need to deploy to a wide range of machines and domains; and are stored in TFS, which means storing personal credentials is not possible. So I chose to use cached credentials instead of specifying the credentials in plain text. This is implemented by using the Windows Credential Manager, accessed via the Control Panel.

If you connect to a remote share on a machine, or connect to the machine via Remote Desktop, and choose to save the credentials, Windows will add them to the list in Credential Manager.

You can also manually add/remove items from the Credential Manager list.

So, anyway, when the scripts started to fail after the AD move, I tried running the msdeploy command line with the username and password arguments. This worked! So all I had to do was manually remove the cached credentials from Credential Manager, and reconnect to each server's file shares.

Securing Windows Remote Desktop

Just a quick list of pointers to help you secure RDP today...

For a while now, I've been using Windows Live Mesh to connect to my home PC's from remote locations. This method was really simple and didn't require any firewall changes on my router. Unfortunately SkyDrive, Live Mesh's successor, does not include this feature so I'll need to use RDP or another service such as LogMeIn.com. LogMeIn is a great service, so I'd recommend using this (even MS is recommending it!)

But for those of you that prefer/need to use RDP, here's a few tips for increasing security:

Change RDP TCP port (done in the registry)

Consider implementing an SSH tunnel

Update account password to strong as possible

rename admin account to non-standard name

disable all other accounts for RDP

If possible, restrict RDP client IP range in router or other firewall

Enable windows firewall for extra protection

Checklist After Configuring
Can other ips can connect?

Can accounts other than the desired one connect?

Further Reading
http://theillustratednetwork.mvps.org/Ssh/RemoteDesktopSSH.html

http://revision3.com/hak5/HackingRDP

How To Scan A File/Directory With Windows Defender (Windows 8 AntiVirus)

By default there is no simple way to scan a single file or directory with the built in Windows 8 Anti Virus program.

One way is to open Windows Defender, then select Custom, then click Scan.
You are then presented with a folder selection screen, which allows you to selectively scan parts of your PC's storage.

But to scan just one file, you have to get into command line land. To do this:

1. Open a Command Prompt
2. Type the following:

"c:\Program Files\Windows Defender\MpCmdRun.exe" -scan -scantype 3 -file PATH_TO_YOUR_FILE

e.g.

"c:\Program Files\Windows Defender\MpCmdRun.exe" -scan -scantype 3 -file c:\users\ted\downloads\suspect_file.zip


You'll need to surround your file's path with double quotes if it contains spaces.

If you are using this in an automated way (e.g. your download manager is scanning completed downloads) it's worth knowing that the scan results will be logged in %TEMP%\MpCmdRun.log

You can use that file's contents to see how the scan went.

Hope that helps!

How To Recover Your Lost SoulseekNS Password (Windows)

Have you forgotten your Soulseek password?

If so, and you still have access to the PC you had Soulseek installed on, then you're in luck. The password is stored in plain text in the Windows registry.

You can find it here:

Computer\HKEY_CURRENT_USER\Software\Soulseek2\config

in a key called login.

Just double-click on the key and you will see your password.

Now if you've forgotten your username, then I think you're hosed!

Note, these instructions are for SoulseekNS, which is no longer under development. Not sure how you reset/find a lost password for the new version: SoulseekQT.

See you in the Dark Ambient channel!

Resetting a network adapter with Powershell

I recently moved to a new PC and there's something wrong with the network configuration. The hardware seems OK but every few hours Windows reports that there is no Internet connection. I haven't spent much time troubleshooting but it looks like the PC loses its IP lease and does not renew it, but that's mostly just a guess at this stage.

The Windows 7 Troubleshooter reports:

The Network Diagnostics Framework has completed the diagnosis phase of operation. The following repair option was offered:

Helper Class Name: AddressAcquisition

Root Cause: "Local Area Connection" doesn't have a valid IP configuration

Root Cause Guid: {245a9d66-ae9c-4518-a5b4-655752b0a5bd}

Repair option: Investigate router or broadband modem issues
If you're connected to a hotspot or domain network, contact the network administrator. Otherwise:
    1.  Unplug or turn off the device.
    2.  After all the lights on the device are off, wait at least 10 seconds.
    3.  Turn the device on or plug it back into the power outlet.
To restart a router or modem that has a built-in battery, press and quickly release the Reset button.

RepairGuid: {9513cc1c-4a26-4cb8-bf89-0a82129bd105}

Seconds required for repair: 63

Security context required for repair: 0

Interface: Local Area Connection ({419b3c06-e283-4a99-adaa-b66439dd064d})


Running the Troubleshooter does fix the issue. It appears that this tool resets the network adapter which forces a new IP to be allocated to the interface.

I've never had this type of issue with Ethernet on Windows before, although I have experienced unstable 802.11 connections on certain laptops.

I've also updated the Intel NIC driver to see if this would help - it didn't. Others do seem to have this issue also. Most people use the workaround of assigning a static IP to the adapter - this isn't an option for me in this environment.

Anyway, I need to remote into this PC so I can't have it sitting there with a non-working network connection!

So to get around this problem, I wrote a script in Powershell which I've scheduled in Task Scheduler to run every 10 minutes. The script will check if the network connection has Internet connectivity and, if not, will reset the network adapter. So the longest I'll have to wait to get on to the PC will be 10 minutes.

Here it is:

# Set up event log source
# redirect stderr to null since there's no simple way to check if the source already exists
(new-eventlog -logname Application -Source "Reset Network Adapter"2> $null

$pingResponse = Get-WmiObject -Class Win32_PingStatus -Filter "Address='www.google.com.au'" -ComputerName . | Select-Object -Property Address,ResponseTime,StatusCode

if ($pingResponse.ResponseTime -eq $null) {
    Write-Host Network connection down. Resetting adapter.
    write-eventlog Application -source "Reset Network Adapter" -eventid 1 -message "Network connection down. Resetting adapter."

    # Assumes you have only one ethernet device in your PC. If you have more, use something like: '-and $_.Name like "*Intel*"'
    $adapter = Get-WmiObject -Class Win32_networkadapter | Where-Object { $_.AdapterType -eq "Ethernet 802.3" }
    $adapter.disable()
    $adapter.enable()
else {
    Write-Host Network connection seems OK
    write-eventlog Application -source "Reset Network Adapter" -eventid 2 -message "Network connection seems OK"
}

Hope that helps someone!

Scheduling the Task

This is quite simple but I recommend creating a new user on your system to run the task. For the above script they need to be in the Local Admin group in order to create the event log.

Add an action with:

command: powershell
and 
arguments: -file path_to\reset-adapter.ps1

An Exercise for the Reader

You can trigger a Windows scheduled task based on an event. When the network fails there are a bunch of events that are generated by applications and the System. You could pick one that reliably represents this network issue and set up your scheduled task to only run when this event is detected. This is a nicer approach that polling every 10 minutes.

Some hints for finding appropriate events in the System Log:
  • Source: Time-Service, DNS Client Events

Resources

Tags

windows (10) microsoft (9) .net (6) google chrome (5) windows 7 (5) asp.net (4) google (4) google browser (4) development (3) javascript (3) mssql (3) rss (3) sql server (3) wordpress (3) automation (2) blogging (2) css (2) database (2) firefox (2) get all wordpress images (2) gmail (2) google docs (2) intel (2) internet explorer (2) linux (2) linux commands (2) microsoft word (2) mysql (2) netsh (2) network issue (2) proxy (2) seo tips (2) shell (2) sun (2) tfs (2) videos (2) wget (2) windows networking (2) windows vista (2) winhttp (2) .net 3.5 (1) .net 4.5 (1) .net async ctp3 (1) .net framework 4.0 (1) 404 (1) JungleDisk (1) access (1) active directory (1) addons (1) adobe acrobat (1) adobe dlm (1) adobe reader (1) adp (1) adsense (1) adtoll (1) adwords (1) amazon (1) antivirus (1) asp.net 4.0 (1) authentication (1) back links (1) backlinks (1) bacula (1) bash (1) batch files (1) blogger (1) box (1) browser exploits (1) category rss (1) cell phone (1) cell phone comparison (1) charting (1) cheap cell phones (1) cheap laptop upgrades (1) checkout (1) chrome (1) chrome.manifest (1) cloud (1) cloud hosting (1) cloud vps (1) code (1) color chart (1) colour chart (1) conditional formatting (1) config (1) configuration (1) context menu (1) copy (1) corrupt (1) credentials (1) cross-reference (1) database scripts (1) dba scripts (1) debian (1) decrypt (1) delete file windows vista (1) delete files (1) dell (1) dell laptop (1) dell studio (1) dell studio 1537 (1) dhcp (1) directory size (1) div (1) dns (1) document properties (1) dotnet (1) download (1) dreamhost (1) dreamhost coupon (1) dreamhost promo (1) dreamhost promo code (1) drive letter (1) drivers (1) duplicate content (1) editpad pro (1) encrypt (1) encryption (1) error (1) error code (1) excel (1) exception (1) external hard drive (1) facebook (1) faviconize (1) feeds (1) firefox 3 rc1 (1) firefox 3.1 (1) firefox addons (1) firefox tabs (1) firewall (1) firewall script (1) fix (1) fix .net framework (1) foreign keys (1) gmail 2.0 (1) gmail error (1) google chrome 2.0 (1) google chrome dev (1) google chrome exploit (1) google reader (1) google reader tags (1) gtdinbox (1) hard drive (1) hex color (1) hex colour (1) htaccess (1) html (1) html 5 (1) iis6 (1) installation (1) ipod touch (1) ipod touch 2g (1) ipod touch freeze (1) ipod touch magnet case (1) ipod touch magnet case problem (1) ipod touch problem (1) iterator pattern (1) itunes (1) java (1) joomla (1) jquery (1) laptop (1) laptop upgrade (1) laptops (1) latex (1) leeching (1) like button (1) link checker (1) linkbacks (1) linq (1) linqdatasource (1) lost password (1) making money online (1) map drive (1) mega cheap phones (1) microsoft excel (1) microsoft signature (1) microsoft store (1) microsoft web deploy (1) microsoft windows (1) microsoft word 2007 (1) minimize firefox tabs (1) mozy (1) ms word (1) msdeploy (1) msdtc (1) nant (1) netstumbler (1) network path not found (1) network path was not found (1) network problem (1) networking (1) new movies (1) nintendo (1) nirsoft (1) nocheckbrowser (1) number (1) odf (1) odt (1) online backups (1) open source browser (1) openoffice (1) oracle (1) oracle client (1) photoshop (1) phpmyadmin (1) podcast (1) powershell (1) pr checker (1) productivity (1) proxy server (1) proxycfg (1) putty (1) recover (1) registry (1) reinstall windows 7 (1) remote desktop (1) remove (1) repair (1) reset joomla admin password (1) rewrite (1) rsa (1) sandy bridge laptop (1) seagate momentus xt (1) seo tools (1) sequence (1) server monitoring (1) sftp (1) social networks (1) softlayer (1) soulseek (1) spreadsheet (1) spreadsheet formula (1) sql (1) sql scripts (1) sql server management studio (1) sqlclient (1) ssh (1) ssis (1) ssl (1) ssms (1) subst (1) tabmixplus (1) telstra (1) text editor (1) trust (1) unlock cell phone (1) unlock mobile phone (1) upgrade laptop hard drive (1) user management (1) vb.net (1) video download (1) virtual server (1) visual studio (1) vodafone (1) vodafone australia (1) vps (1) vps.net (1) wd external drive (1) web deploy (1) web dev (1) web development (1) web hosting (1) web security (1) webdev (1) webmail (1) webmaster tips (1) western digital (1) wifi networks (1) wii (1) win7 (1) windows 7 backup (1) windows 7 gadgets (1) windows 8 (1) windows 8 antivirus (1) windows error (1) windows live (1) windows live essentials (1) windows live toolbar (1) windows tips (1) windows web development (1) windows xp (1) winxp (1) wireless networks (1) word tips (1) wordpress 2.7 (1) wordpress plugin (1) wp super cache (1) yield (1) youtube download (1) youtube playlist download (1)