stan.jespers
Gebruiker
- Lid geworden
- 4 nov 2004
- Berichten
- 82
Goede dag,
een week of 2; 3 kan ik niet meer printen vanuit mijn laptop.
Andere laptops kunnen nog wel printen.
De boodschap die vermeld wordt: Afdrukken in Windows is niet mogelijk vanwege een probleem met de huidige printerinstelling.
Na wat zoekwerk vond ik in de map Windows met de zoekterm : "spooler"
met in het bestand: RS_SpoolerCrashing.ps1
het volgende:
# Copyright © 2008, Microsoft Corporation. All rights reserved.
#
# By modifying the related registry key and refreshing policy resolves the issue of spooler crashing.
#
Import-LocalizedData -BindingVariable localizationString -FileName CL_LocalizationData
Write-DiagProgress -activity $localizationString.progress_rs_spoolerCrashing
#
# modify registry key
#
if(-not(Test-Path "HKLM:\Software\Policies\Microsoft\Windows NT\Printers"))
{
New-Item -Path "HKLM:\Software\Policies\Microsoft\Windows NT\Printers"
}
if((Get-ItemProperty "HKLM:\Software\Policies\Microsoft\Windows NT\Printers" "PrintDriverIsolationExecutionPolicy") -eq $null)
{
New-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows NT\Printers" -Name "PrintDriverIsolationExecutionPolicy" -PropertyType DWORD -Value 1
}
if((Get-ItemProperty "HKLM:\Software\Policies\Microsoft\Windows NT\Printers" "PrintDriverIsolationOverrideCompat") -eq $null)
{
New-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows NT\Printers" -Name "PrintDriverIsolationOverrideCompat" -PropertyType DWORD -Value 1
}
Set-ItemProperty "HKLM:\Software\Policies\Microsoft\Windows NT\Printers" "PrintDriverIsolationExecutionPolicy" 1
Set-ItemProperty "HKLM:\Software\Policies\Microsoft\Windows NT\Printers" "PrintDriverIsolationOverrideCompat" 1
#
# refresh polify
#
$RefreshPolicyDefinition = @"
[DllImport("Userenv.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool RefreshPolicy([MarshalAs(UnmanagedType.Bool)] bool bMachine);
"@
$RefreshPolicyType = Add-Type -MemberDefinition $RefreshPolicyDefinition -Name "RefreshPolicyType" -UsingNamespace "System.Reflection","System.Diagnostics" -PassThru
[bool]$return = $RefreshPolicyType::RefreshPolicy($true)
[int]$errorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error()
if(-not $return)
{
WriteFileAPIExceptionReport "RS_SpoolerCrashing" "RefreshPolicy" $errorCode
}
$date = Date
$date = $date.AddDays(-1)
$event = get-winevent -FilterHashTable @{ ProviderName = 'Application Error'; StartTime = $date; Data="spoolsv.exe"; Id = 1000 } -ErrorAction SilentlyContinue
if($event -ne $null -and $event.Count -gt 1)
{
$addRootCause = $true
$PrintKey = get-ItemProperty "HKLM:\Software\Policies\Microsoft\Windows NT\Printers"
if($printKey -ne $null)
{
$executionPolicy = $PrintKey.PrintDriverIsolationExecutionPolicy
$overrideCompat = $PrintKey.PrintDriverIsolationOverrideCompat
if($executionPolicy -eq 1 -and $overrideCompat -eq 1)
{
$addRootCause = $false
}
}
if($addRootCause)
{
Update-DiagRootCause -id "RC_SpoolerCrashing" -Detected $true
$event | convertto-xml | Update-DiagReport -id SpoolerEvent -name $String_TS_SpoolerCrushing.spoolerEvent_name -description $String_TS_SpoolerCrushing.spoolerEvent_description -verbosity Error -rid "RC_SpoolerCrashing"
return
}
}
Update-DiagRootCause -id "RC_SpoolerCrashing" -Detected $false
Kan er iemand mij duidelijk maken wat ik het beste doe?
Alvast bedankt
Grtjes Stan.
een week of 2; 3 kan ik niet meer printen vanuit mijn laptop.
Andere laptops kunnen nog wel printen.
De boodschap die vermeld wordt: Afdrukken in Windows is niet mogelijk vanwege een probleem met de huidige printerinstelling.
Na wat zoekwerk vond ik in de map Windows met de zoekterm : "spooler"
met in het bestand: RS_SpoolerCrashing.ps1
het volgende:
# Copyright © 2008, Microsoft Corporation. All rights reserved.
#
# By modifying the related registry key and refreshing policy resolves the issue of spooler crashing.
#
Import-LocalizedData -BindingVariable localizationString -FileName CL_LocalizationData
Write-DiagProgress -activity $localizationString.progress_rs_spoolerCrashing
#
# modify registry key
#
if(-not(Test-Path "HKLM:\Software\Policies\Microsoft\Windows NT\Printers"))
{
New-Item -Path "HKLM:\Software\Policies\Microsoft\Windows NT\Printers"
}
if((Get-ItemProperty "HKLM:\Software\Policies\Microsoft\Windows NT\Printers" "PrintDriverIsolationExecutionPolicy") -eq $null)
{
New-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows NT\Printers" -Name "PrintDriverIsolationExecutionPolicy" -PropertyType DWORD -Value 1
}
if((Get-ItemProperty "HKLM:\Software\Policies\Microsoft\Windows NT\Printers" "PrintDriverIsolationOverrideCompat") -eq $null)
{
New-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows NT\Printers" -Name "PrintDriverIsolationOverrideCompat" -PropertyType DWORD -Value 1
}
Set-ItemProperty "HKLM:\Software\Policies\Microsoft\Windows NT\Printers" "PrintDriverIsolationExecutionPolicy" 1
Set-ItemProperty "HKLM:\Software\Policies\Microsoft\Windows NT\Printers" "PrintDriverIsolationOverrideCompat" 1
#
# refresh polify
#
$RefreshPolicyDefinition = @"
[DllImport("Userenv.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool RefreshPolicy([MarshalAs(UnmanagedType.Bool)] bool bMachine);
"@
$RefreshPolicyType = Add-Type -MemberDefinition $RefreshPolicyDefinition -Name "RefreshPolicyType" -UsingNamespace "System.Reflection","System.Diagnostics" -PassThru
[bool]$return = $RefreshPolicyType::RefreshPolicy($true)
[int]$errorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error()
if(-not $return)
{
WriteFileAPIExceptionReport "RS_SpoolerCrashing" "RefreshPolicy" $errorCode
}
$date = Date
$date = $date.AddDays(-1)
$event = get-winevent -FilterHashTable @{ ProviderName = 'Application Error'; StartTime = $date; Data="spoolsv.exe"; Id = 1000 } -ErrorAction SilentlyContinue
if($event -ne $null -and $event.Count -gt 1)
{
$addRootCause = $true
$PrintKey = get-ItemProperty "HKLM:\Software\Policies\Microsoft\Windows NT\Printers"
if($printKey -ne $null)
{
$executionPolicy = $PrintKey.PrintDriverIsolationExecutionPolicy
$overrideCompat = $PrintKey.PrintDriverIsolationOverrideCompat
if($executionPolicy -eq 1 -and $overrideCompat -eq 1)
{
$addRootCause = $false
}
}
if($addRootCause)
{
Update-DiagRootCause -id "RC_SpoolerCrashing" -Detected $true
$event | convertto-xml | Update-DiagReport -id SpoolerEvent -name $String_TS_SpoolerCrushing.spoolerEvent_name -description $String_TS_SpoolerCrushing.spoolerEvent_description -verbosity Error -rid "RC_SpoolerCrashing"
return
}
}
Update-DiagRootCause -id "RC_SpoolerCrashing" -Detected $false
Kan er iemand mij duidelijk maken wat ik het beste doe?
Alvast bedankt
Grtjes Stan.