Sunday 19 March 2017

Using Canon Selphy CP710 photo printer with Windows 10




After a successful period running Windows 10 I needed to print a photo. I know I'll get my photo Canon Selphy CP710 photo printer out, Windows 10 did not play nice, no available drivers blah blah blah.
Then I think there must be a way, and there is.

Connect the printer if it is not already, it will appear in device manager in "Other devices".

Download the Windows 7 64bit drivers (assuming you are running Windows 10 64bit) from the Canon web site (here).

If you try and install it a not compatible with this version of Windows message is displayed.

Right click the driver and select Troubleshoot compatibility



Once presented with the menu, select "Troubleshoot program"


and select just the first option.




select Windows 7 on the next screen

 

and finally click "Test the program.."


and you are done, follow the installer and your printer will now work in Windows 10.

I suspect this will also work with other Canon Selphy printers as there appears to be commonality with the drivers.



















Wednesday 14 November 2012

McAfee doesn't trust McAfee

This happened to me today and well see for yourself. McAfee web gateway doesn't trust its own site.



Says it all really.

Upgrading to Windows 8

Well that was more complex than it should have been.

Windows firewall stops the "Windows 8 upgrade advisor" from connecting to the internet and there appears to be no information regarding which servers/ports are required (a trace answered these questions) but this is a surprisingly long list.

Once Windows was upgraded it then couldn't be activated (again Windows Firewall prevented it). Kudos for actually having the firewall work but please document what should be done to allow activation to succeed.

In short lots of playing with the firewall and then it was sorted, if Microsoft had created new groups for Windows 8 firewall this would have been a whole lot smoother.

On the other hand the other machine I also upgraded which didn't have the outbound firewall enabled worked like a charm.

I have to say though I like Windows 8, I'm running it in possibly the worst way, two monitors (so I always see desktop and Metro Modern UI but what it brings to novel.

People complained when the Start button was introduced, this is no different.

Monday 17 September 2012

Server 2012 - Adding the GUI to Core

There are a number of articles you can find on the web which tell you how to do this. Unfortunately they all assume you started with the full fat server and subsequently removed the GUI or are otherwise incomplete in some way. I hope this will provide a step-by-step guide to adding the GUI to Server 2012 which started life as Core.

1. Find your copy of Windows 2012 or at least the install.wim.
2. Create a folder to mount a wim file in, eg c:\source
3. Run dism.exe /mount-wim /wimfile:d:\sources\install.wim /index:2 /mountdir:c:\source /readonly (the index in this case is the standard full server image, 1 is core).
4. Sit back and wait.
5. Run dism.exe /online /enable-feature /featurename:ServerCore-FullServer /featurename:Server-Gui-Shell /featurename:Server-Gui-Mgmt /source:c:\source\windows\winsxs
6. Sit back and wait even longer than before.
7. Reboot when prompted
8. Enjoy the GUI

Sunday 9 October 2011

Is your Microsoft Security Essentials not working with the Windows firewall

Interesting problem if you like that sort of thing.

It doesn't seem to be documented anywhere on Microsoft's site but Microsoft Security Essentials uses the Windows Update service to perform its own updates, if the Windows firewall is used it is possible to allow the Windows Update service to access the internet even though it is just one of the services hosted by a single instance of svchost.exe.


It is still possible to uses a local WSUS server with MSE updating from Microsoft without any issues.

On the whole MSE has my PC booting much quicker than it ever did with AVG so I'm happy, if only it had been more obvious why it couldn't update.

Saturday 17 September 2011

Windows 8 Developer Preview

You have to take in to account this is a developer preview to get people on board with Metro applications so much of what I don't like is probably already being addressed.

Its all very nice and fresh but is clearly aimed at touch devices, here lies the problem the interaction between the metro GUI and the 'old' explorer interface is a little hit and miss.

The lack of a start menu will affect the corporate market as I can't see organisations suddenly deploying touch devices to desktops just to take advantage of Metro applications.

There is some cool stuff though, the introduction of WinRT, the improvements to hibernation, a refresh build option to restore your PC to its original state and the security improvements are all pretty nice but I still can't but help but this this feels like another Windows ME. For the desktop at least, I think Windows 8 will be a success on touch devices, just not convinced about Windows 8 for everyone else.

Anyway, why not try it for yourself.

Tuesday 31 May 2011

PSN all up and running by the end of the week.

Lets hope they mean it, it seems like ages since the Playstation Store was available.

Tuesday 24 May 2011

SCOM 2007 SP1 per rule notifications

None of this is necessary if using SCOM 2007 R2 as the GUI can perform the steps this script does, subscriptions created with this script can be opened with an R2 console and look as you would expect, however if the subscription is opened from an SP1 console the XML will break and the subscription will no longer work as expected.
After spending ages trying to work out how to create per rule notifications and then discovering it wasn't possible using the GUI I resorted to writing my own Powershell script complete with GUI (also written in powershell, thanks to PrimalForms for the GUI) for this very task. Feel free to use this as you see fit. To use the script you first need to edit change the $RMS to be your RMS server. There is some tweaking required if you want to respond to a monitor instead. I'll post the amendments at a later date.


#Generated Form Function
function GenerateForm {
########################################################################
# Code Generated By: SAPIEN Technologies PrimalForms v1.0.2.0
# Generated On: 20/10/2009 09:55
# Generated By: ########################################################################

$RMS = "scomprodrms"

#region Import the Assemblies
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
#endregion

#region Generated Form Objects
$form1 = New-Object System.Windows.Forms.Form
$button4 = New-Object System.Windows.Forms.Button
$textBox2 = New-Object System.Windows.Forms.TextBox
$listBox2 = New-Object System.Windows.Forms.ListBox
$label2 = New-Object System.Windows.Forms.Label
$textBox1 = New-Object System.Windows.Forms.TextBox
$listBox1 = New-Object System.Windows.Forms.ListBox
$label1 = New-Object System.Windows.Forms.Label
$button1 = New-Object System.Windows.Forms.Button
#endregion Generated Form Objects

#----------------------------------------------
#Generated Event Script Blocks
#----------------------------------------------
#Provide Custom Code for events specified in PrimalForms.
$button1_OnClick=
{
#Populate listboxes
#TODO: Place custom script here
write-host Searching...

    $listbox1.items.clear()
    $listbox2.items.clear()

    if ((Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.EnterpriseManagement.OperationsManager.Client'}) -eq $null)
    {
        Write-Host "Initializing shell for operations manager..."
        Write-Host "Add Microsoft.EnterpriseManagement.OperationsManager.Client snap in."
        Add-PSSnapin Microsoft.EnterpriseManagement.OperationsManager.Client -ErrorAction SilentlyContinue -ErrorVariable Err
   
        if ($Err) { $(throw write-Host $Err) }
    }
   
    if ((Get-ManagementGroupConnection | Where-Object {$_.ManagementServerName -eq $RMS}) -eq $null)
    {
        Write-Host "Connect to Management Server: $RMS"
        New-ManagementGroupConnection $RMS -ErrorAction SilentlyContinue -ErrorVariable Err
        if ($Err) { $(throw write-Host $Err) }
    }
   
    if ((Get-PSDrive | Where-Object {$_.Name -eq 'Monitoring'}) -eq $null)
    {
        Write-Host "Create Monitoring drive from Provider."
        New-PSDrive -Name: Monitoring -PSProvider: OperationsManagerMonitoring -Root: \ -ErrorAction SilentlyContinue -ErrorVariable Err
        if ($Err) { $(throw write-Host $Err) }
        Write-Host "Operations manager shell initialized."
        Write-Host
    }
   
    Set-Location Monitoring:\$RMS
   
    $rules = Get-Rule | where {$_.displayname -match $textbox1.text}

    foreach ($r in $rules)
        {
        $listbox1.items.add($r.displayname)
        }
       
    $notifications = Get-NotificationRecipient | where {$_.name -match $textbox2.text}
   
    foreach ($n in $notifications)
        {
        $listbox2.items.add($n.name)
        }
       
}

$button4_OnClick=
{
#Create subscription
#TODO: Place custom script here
    ## load SDK assemblies
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.EnterpriseManagement")
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.EnterpriseManagement.Configuration")
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.EnterpriseManagement.ConnectorFramework")
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.EnterpriseManagement.Monitoring")

    ## connect to management group
    $ManagementGroup = New-Object Microsoft.EnterpriseManagement.ManagementGroup($RMS)
    $ManagementGroup.Reconnect()
   
    write-host "Getting rule id for"
    write-host $listbox1.selecteditem
    $MonitoringRuleId = (Get-Rule | where {$_.displayname -eq $listbox1.selecteditem}).id.tostring()
    write-host $MonitoringRuleId

    write-host   
   
    write-host "Getting recipient details for"
    write-host $listbox2.selecteditem
    $recipient = $ManagementGroup.GetNotificationRecipient($listbox2.selecteditem)
    write-host $recipient
   
   
    $config = New-Object Microsoft.EnterpriseManagement.Administration.AlertChangedSubscriptionConfiguration([Microsoft.EnterpriseManagement.Administration.AlertSubscriptionConfigurationType]::Any)

    #$config.Criteria = "<SimpleExpression><ValueExpression><Property>RuleId</Property></ValueExpression><Operator>Equal</Operator><ValueExpression><Value>$MonitoringRuleId</Value></ValueExpression></SimpleExpression>"
    $config.Criteria = "<And><Expression><SimpleExpression><ValueExpression><Property>RuleId</Property></ValueExpression><Operator>Equal</Operator><ValueExpression><Value>$MonitoringRuleId</Value></ValueExpression></SimpleExpression></Expression><Expression><SimpleExpression><ValueExpression><Property>ResolutionState</Property></ValueExpression><Operator>Equal</Operator><ValueExpression><Value>0</Value></ValueExpression></SimpleExpression></Expression></And>"

    $config.ExpirationStartTime = Get-Date
    $config.PollingIntervalMinutes = 1

    $NewGuid = [System.Guid]::NewGuid()
    $NewGuid = $NewGuid.ToString().Replace('-', '_')

    $Subscription = New-Object Microsoft.EnterpriseManagement.Administration.AlertNotificationSubscription("STACustomSubscription$NewGuid", $config)

    $Subscription.DisplayName = "****  Do not open in OpsMgr GUI - " + $listbox1.selecteditem + " - " + $listbox2.selecteditem
    $Subscription.ToRecipients.Add($recipient)

#Individual actions are no longer used as we now add all actions to the subscription
#    $smtpAction = $ManagementGroup.GetNotificationAction("DefaultSmtpAction")
#    $alarmpointAction = $ManagementGroup.GetNotificationAction("Cmd0d2dcdf3_455b_4641_8bd9_6b2c6f64bce7")

    $ManagementGroup.GetNotificationActions() | foreach {
            $Subscription.Actions.Add($_)
    }
   
    $ManagementGroup.InsertNotificationSubscription($Subscription)
    write-host
    write-host Subscription created as $Subscription.DisplayName
    write-host
    write-host To create a new subscription enter new criteria
    write-host
   
}

#----------------------------------------------
#region Generated Form Code
$form1.Text = 'SCOM Rule Notifications'
$form1.Name = 'form1'
$form1.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 573
$System_Drawing_Size.Height = 284
$form1.ClientSize = $System_Drawing_Size

$button4.TabIndex = 6
$button4.Name = 'button4'
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 144
$System_Drawing_Size.Height = 23
$button4.Size = $System_Drawing_Size
$button4.UseVisualStyleBackColor = $True

$button4.Text = 'Create Subscription'

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 204
$System_Drawing_Point.Y = 234
$button4.Location = $System_Drawing_Point
$button4.DataBindings.DefaultDataSourceUpdateMode = 0
$button4.add_Click($button4_OnClick)

$form1.Controls.Add($button4)

$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 275
$System_Drawing_Size.Height = 20
$textBox2.Size = $System_Drawing_Size
$textBox2.DataBindings.DefaultDataSourceUpdateMode = 0
$textBox2.Name = 'textBox2'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 73
$System_Drawing_Point.Y = 38
$textBox2.Location = $System_Drawing_Point
$textBox2.TabIndex = 1

$form1.Controls.Add($textBox2)

$listBox2.FormattingEnabled = $True
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 239
$System_Drawing_Size.Height = 134
$listBox2.Size = $System_Drawing_Size
$listBox2.DataBindings.DefaultDataSourceUpdateMode = 0
$listBox2.Name = 'listBox2'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 297
$System_Drawing_Point.Y = 85
$listBox2.Location = $System_Drawing_Point
$listBox2.TabIndex = 5

$form1.Controls.Add($listBox2)

$label2.TabIndex = 5
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 100
$System_Drawing_Size.Height = 23
$label2.Size = $System_Drawing_Size
$label2.Text = 'Recipients'

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 18
$System_Drawing_Point.Y = 41
$label2.Location = $System_Drawing_Point
$label2.DataBindings.DefaultDataSourceUpdateMode = 0
$label2.Name = 'label2'

$form1.Controls.Add($label2)

$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 275
$System_Drawing_Size.Height = 20
$textBox1.Size = $System_Drawing_Size
$textBox1.DataBindings.DefaultDataSourceUpdateMode = 0
$textBox1.Name = 'textBox1'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 73
$System_Drawing_Point.Y = 12
$textBox1.Location = $System_Drawing_Point
$textBox1.TabIndex = 0

$form1.Controls.Add($textBox1)

$listBox1.FormattingEnabled = $True
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 239
$System_Drawing_Size.Height = 134
$listBox1.Size = $System_Drawing_Size
$listBox1.DataBindings.DefaultDataSourceUpdateMode = 0
$listBox1.Name = 'listBox1'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 12
$System_Drawing_Point.Y = 85
$listBox1.Location = $System_Drawing_Point
$listBox1.TabIndex = 4

$form1.Controls.Add($listBox1)

$label1.TabIndex = 1
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 100
$System_Drawing_Size.Height = 23
$label1.Size = $System_Drawing_Size
$label1.Text = 'Rules'

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 18
$System_Drawing_Point.Y = 15
$label1.Location = $System_Drawing_Point
$label1.DataBindings.DefaultDataSourceUpdateMode = 0
$label1.Name = 'label1'

$form1.Controls.Add($label1)

$button1.TabIndex = 3
$button1.Name = 'button1'
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 125
$System_Drawing_Size.Height = 23
$button1.Size = $System_Drawing_Size
$button1.UseVisualStyleBackColor = $True

$button1.Text = 'Get Data from SCOM'

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 368
$System_Drawing_Point.Y = 35
$button1.Location = $System_Drawing_Point
$button1.DataBindings.DefaultDataSourceUpdateMode = 0
$button1.add_Click($button1_OnClick)

$form1.Controls.Add($button1)

#endregion Generated Form Code

#Show the Form
$form1.ShowDialog()| Out-Null

} #End Function

#Call the Function
write-host Watch both the powershell console and the GUI for informational messages
GenerateForm

Wednesday 18 May 2011

PSN is back, oh not its not

Could have been worse, can't think how right now.

The PSN details stolen included email address and date of birth.

Now for a quiz

What details do you need to reset your password?

Correct, email address and date of birth.

Story on engadget is here.

Sunday 15 May 2011

QNAP NAS

I have been using a QNAP TS-210 for quite a while now and I have to say I couldn't live without it. It is a two disk NAS device and offers all the features you would expect of its more expensive siblings including the ability to act as an iscsi target. It compromises in places, no hot swap disks or dual NICs but for a home environment I can live with that.


It is an intriguing device, it has the feel of a closed system but if you look at little hardware you can delve deeper and customise it as much as you want including installing Debian. I haven't had the need to do this as the supplied software is sufficient for my needs (at the moment).

The one minor complaint I have had was when QNAP updated the uPNP/DLNA server to TwonkyMedia v5, this removed the ability to have complex trees for large media collections. In steps QNAP QPKG which still offered Twonky 4, success I have my trees back again.

Do you have a QNAP device, what model do you have any what do you think.

PSN coming back online

and a mandatory firmware update to boot. At least we should get online gaming back soon. More information can be found here.

Saturday 7 May 2011

LastPass and PSN

Both LastPass and PSN have been victims of security attacks recently but can we trust companies and cloud services with our data. I hope so but they all need to get better at securing the data in the first place.

Unencrypted passwords on PSN, why oh why, they should never have stored the password. To do it properly they should really have only stored it as a hash. I wonder how many other companies are now starting to panic that they are storing customer passwords themselves.

Saturday 30 April 2011

First post

The first post at the new musings of Chris blog. I will be posting about anything and everything that interests me.