dumpel.exe -s krnd-store -l system -m print -format dts -e 10 -d 30 -t -f printlog.txt
Dumpel.exe берём из Windows 2000 Resource Kit Tools
© Спёрто, откуда - не помню
Админские заметки
8 июл. 2010 г.
Скриншот силами PowerShell
Создание скриншота средствами PoweShell
Оригинал спёрт отсюда
[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$size = [Windows.Forms.SystemInformation]::VirtualScree
$bitmap = new-object Drawing.Bitmap $size.width, $size.height
$graphics = [Drawing.Graphics]::FromImage($bitmap)
$graphics.CopyFromScreen($size.location,[Drawing.Point]::Empty, $size.size)
$graphics.Dispose()
$bitmap.Save(".\screenshot.jpg")
$bitmap.Dispose()
Или (спёрто отсюда):
Add-Type -Assembly System.Windows.Forms
Sleep 10
## Capture the entire screen
[System.Windows.Forms.Sendkeys]::SendWait("{PrtSc}")
## Capture the current window
[System.Windows.Forms.Sendkeys]::SendWait("%{PrtSc}")
Оригинал спёрт отсюда
[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$size = [Windows.Forms.SystemInformation]::VirtualScree
$bitmap = new-object Drawing.Bitmap $size.width, $size.height
$graphics = [Drawing.Graphics]::FromImage($bitmap)
$graphics.CopyFromScreen($size.location,[Drawing.Point]::Empty, $size.size)
$graphics.Dispose()
$bitmap.Save(".\screenshot.jpg")
$bitmap.Dispose()
Или (спёрто отсюда):
Add-Type -Assembly System.Windows.Forms
Sleep 10
## Capture the entire screen
[System.Windows.Forms.Sendkeys]::SendWait("{PrtSc}")
## Capture the current window
[System.Windows.Forms.Sendkeys]::SendWait("%{PrtSc}")
В продолжении разборок со WSUS
Проблема. В результате выполнения скрипта, который ищет компьютеры, не обновляющиеся со WSUS'a нашлись 2 компьютера. При выполнении на обоих wuauclt.exe /resetauthorization /detectnow
Если появлялся один - исчезал другой и наоборот. В логах ничего странного не заметил. В итоге помог скрипт от shs за что ему огромное спасибо!
Привожу его на всякий случай и здесь:
############################################################################
# WSUSClientRemoteReset.ps1 PowerShell shs 20100218
#
# Скрипт, дистаннционно выполняющий действия, описанные в kb903262, над компьютерами, согласно заданного списка
# Список компьютеров, который скрипт загружает из файла .\NoWSUS.txt, может быть сформирован при помощи скрипта WSUSAD-Compare.ps1,
# и представляет из себя список FQDN-имен компьютеров (одна строка - одно имя)
############################################################################
cls
############################################################################
### Объявляем вспомогательные функции
############################################################################
#
#Функция возращает true, если заданный хост пингуется и false - в противном случае (спасибо Xaerg'у)
function Test-Host ($Name)
{
$ping = new-object System.Net.NetworkInformation.Ping
trap {Write-Verbose "Ошибка пинга"; $False; continue}
if ($ping.send($Name).Status -eq "Success" ) { $True }
else { $False }
}
############################################################################
#
# Начало скрипта
#
############################################################################
### Загружаем в переменную список компьютеров из файла .\NoWSUS.txt,
### попутно получая короткое имя компьютера из его FQDN###
$noInWSUS = gc .\NoWSUS.txt| foreach{($_ -replace " ") -replace "\..+$"}
#Обработаем полученный список
$noInWSUS| where{Test-Host $_}|foreach{`
$CompName = $_
Write-Host "`n`n$CompName"
#Подлкючаемся к службе Автоматического обновления (wuauserv) (далее по тексту - служба) на удаленной машине
###см. http://thepowershellguy.com/blogs/posh/archive/2007/01/03/powershell-using-net-to-manage-remote-services.aspx
[System.Reflection.Assembly]::LoadWithPartialName('system.serviceprocess')
$wuauserv=new-Object System.ServiceProcess.ServiceController('wuauserv',$CompName)
#Инициализация флага успешной остановки службы
$Stopped=$true
#Если служба не остановлена, то остановливаем ее
if ($wuauserv.Status -ne "Stopped") {
try {
#Останавливаем службу
$wuauserv.Stop()
#Ожидаем остановки службы в течении заданного таймаута
$wuauserv.WaitForStatus('Stopped',(new-timespan -seconds 10))
}
catch {
# если в течение отведенного таймаута служба не остановилась, то сообщим об этом...
"На $CompName службу wuauserv остановить не удалось...`n"
# ...и установим флаг успешной остановки службы в состояние $false
$Stopped=$false
}
}
# если служба была успешно остановлена, то
# выполняем действия, указанные в kb903262
if ($Stopped) {
#
#Удаляем ключи реестра, согласно http://support.microsoft.com/kb/903262
###О том, как работать с реестром на удаленной машине, читаем здесь:
###http://thepowershellguy.com/blogs/posh/archive/2007/06/20/remote-registry-access-and-creating-new-registry-values-with-powershell.aspx
$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $CompName)
$regKey= $reg.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate",$true)
$regKey.DeleteValue("SusClientId")
$regKey.DeleteValue("SusClientIdValidation")
$regKey.DeleteValue("PingID")
$regKey.DeleteValue("AccountDomainSid")
#Инициализация флага успешного запуска службы Автоматического обновления (wuauserv)
$Started=$true
#
try {
#Запускаем службу Автообновления
$wuauserv.Start()
#Ожидаем запуска службы в течении заданного таймаута
$wuauserv.WaitForStatus('Running',(new-timespan -seconds 10))
}
catch {
# если в течение отведенного таймаута служба не стартовала, то сообщим об этом...
"На $CompName службу wuauserv запустить не удалось...`n"
# ...и установим флаг успешного запуска службы в состояние $false
$Started=$false
}
# если служба Автоматического обновления была успешно запущенна, то
# выполняем действия, указанные в kb903262
if ($Started) {
#Ждем 5 секунд
Start-Sleep -Seconds 5
#принудительное применение политики (на всякий случай, лучше перебдеть)
"Запускаем принудительное обновление политики..."
$RemoteProcess=([wmiclass]"\\$CompName\root\cimv2:Win32_Process").create("cmd /c gpupdate /force")
"...код возврата запуска - $($RemoteProcess.ReturnValue), ID запущеного процесса - $($RemoteProcess.ProcessId)`n"
#Ждем 30 секунд
Start-Sleep -Seconds 30
"Выполняем wuauclt /resetauthorization /detectnow"
#выполняем wuauclt /resetauthorization /detectnow, согласно http://support.microsoft.com/kb/903262
$RemoteProcess=([wmiclass]"\\$CompName\root\cimv2:Win32_Process").create("cmd /c wuauclt /resetauthorization /detectnow")
"...код возврата запуска - $($RemoteProcess.ReturnValue), ID запущеного процесса - $($RemoteProcess.ProcessId)`n"
}
}
}
Если появлялся один - исчезал другой и наоборот. В логах ничего странного не заметил. В итоге помог скрипт от shs за что ему огромное спасибо!
Привожу его на всякий случай и здесь:
############################################################################
# WSUSClientRemoteReset.ps1 PowerShell shs 20100218
#
# Скрипт, дистаннционно выполняющий действия, описанные в kb903262, над компьютерами, согласно заданного списка
# Список компьютеров, который скрипт загружает из файла .\NoWSUS.txt, может быть сформирован при помощи скрипта WSUSAD-Compare.ps1,
# и представляет из себя список FQDN-имен компьютеров (одна строка - одно имя)
############################################################################
cls
############################################################################
### Объявляем вспомогательные функции
############################################################################
#
#Функция возращает true, если заданный хост пингуется и false - в противном случае (спасибо Xaerg'у)
function Test-Host ($Name)
{
$ping = new-object System.Net.NetworkInformation.Ping
trap {Write-Verbose "Ошибка пинга"; $False; continue}
if ($ping.send($Name).Status -eq "Success" ) { $True }
else { $False }
}
############################################################################
#
# Начало скрипта
#
############################################################################
### Загружаем в переменную список компьютеров из файла .\NoWSUS.txt,
### попутно получая короткое имя компьютера из его FQDN###
$noInWSUS = gc .\NoWSUS.txt| foreach{($_ -replace " ") -replace "\..+$"}
#Обработаем полученный список
$noInWSUS| where{Test-Host $_}|foreach{`
$CompName = $_
Write-Host "`n`n$CompName"
#Подлкючаемся к службе Автоматического обновления (wuauserv) (далее по тексту - служба) на удаленной машине
###см. http://thepowershellguy.com/blogs/posh/archive/2007/01/03/powershell-using-net-to-manage-remote-services.aspx
[System.Reflection.Assembly]::LoadWithPartialName('system.serviceprocess')
$wuauserv=new-Object System.ServiceProcess.ServiceController('wuauserv',$CompName)
#Инициализация флага успешной остановки службы
$Stopped=$true
#Если служба не остановлена, то остановливаем ее
if ($wuauserv.Status -ne "Stopped") {
try {
#Останавливаем службу
$wuauserv.Stop()
#Ожидаем остановки службы в течении заданного таймаута
$wuauserv.WaitForStatus('Stopped',(new-timespan -seconds 10))
}
catch {
# если в течение отведенного таймаута служба не остановилась, то сообщим об этом...
"На $CompName службу wuauserv остановить не удалось...`n"
# ...и установим флаг успешной остановки службы в состояние $false
$Stopped=$false
}
}
# если служба была успешно остановлена, то
# выполняем действия, указанные в kb903262
if ($Stopped) {
#
#Удаляем ключи реестра, согласно http://support.microsoft.com/kb/903262
###О том, как работать с реестром на удаленной машине, читаем здесь:
###http://thepowershellguy.com/blogs/posh/archive/2007/06/20/remote-registry-access-and-creating-new-registry-values-with-powershell.aspx
$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $CompName)
$regKey= $reg.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate",$true)
$regKey.DeleteValue("SusClientId")
$regKey.DeleteValue("SusClientIdValidation")
$regKey.DeleteValue("PingID")
$regKey.DeleteValue("AccountDomainSid")
#Инициализация флага успешного запуска службы Автоматического обновления (wuauserv)
$Started=$true
#
try {
#Запускаем службу Автообновления
$wuauserv.Start()
#Ожидаем запуска службы в течении заданного таймаута
$wuauserv.WaitForStatus('Running',(new-timespan -seconds 10))
}
catch {
# если в течение отведенного таймаута служба не стартовала, то сообщим об этом...
"На $CompName службу wuauserv запустить не удалось...`n"
# ...и установим флаг успешного запуска службы в состояние $false
$Started=$false
}
# если служба Автоматического обновления была успешно запущенна, то
# выполняем действия, указанные в kb903262
if ($Started) {
#Ждем 5 секунд
Start-Sleep -Seconds 5
#принудительное применение политики (на всякий случай, лучше перебдеть)
"Запускаем принудительное обновление политики..."
$RemoteProcess=([wmiclass]"\\$CompName\root\cimv2:Win32_Process").create("cmd /c gpupdate /force")
"...код возврата запуска - $($RemoteProcess.ReturnValue), ID запущеного процесса - $($RemoteProcess.ProcessId)`n"
#Ждем 30 секунд
Start-Sleep -Seconds 30
"Выполняем wuauclt /resetauthorization /detectnow"
#выполняем wuauclt /resetauthorization /detectnow, согласно http://support.microsoft.com/kb/903262
$RemoteProcess=([wmiclass]"\\$CompName\root\cimv2:Win32_Process").create("cmd /c wuauclt /resetauthorization /detectnow")
"...код возврата запуска - $($RemoteProcess.ReturnValue), ID запущеного процесса - $($RemoteProcess.ProcessId)`n"
}
}
}
Скрипт проверки бекапов
Есть такая чудо бухгалтерская программа, как Испро.
И вот у неё очень своеобразная система бекапов.
Для успешного бекапа (по крайней мере в версии 7.07.017.999 RU) нужны следующие условия:
а) Залогиненный пользователь (желательная служебная учётка, особенно если у вас ИТ отдел из нескольких человек)
б) Открытая программа испро
в) И (по крайней мере в текущей версии это важно) программа перезапускалась после последнего ручного бекапа
Как видно, всё может поломаться не только из-за каких-то внешних факторов (отключение электричества), но и из-за элементарной невнимательности.
Чтобы с этим бороться я написал скриптик.
Василию Гусеву огромное спасибо :)
И вот у неё очень своеобразная система бекапов.
Для успешного бекапа (по крайней мере в версии 7.07.017.999 RU) нужны следующие условия:
а) Залогиненный пользователь (желательная служебная учётка, особенно если у вас ИТ отдел из нескольких человек)
б) Открытая программа испро
в) И (по крайней мере в текущей версии это важно) программа перезапускалась после последнего ручного бекапа
Как видно, всё может поломаться не только из-за каких-то внешних факторов (отключение электричества), но и из-за элементарной невнимательности.
Чтобы с этим бороться я написал скриптик.
Василию Гусеву огромное спасибо :)
#Скрипт мониторит папку с бекапами Испро, проверяя наличие файла за сегодняшний день
#Не забывайте, что для успешного бекапа средствами Испро должен быть:
#а) залогинен krnd-cmdman
#б) открыта программа Испро
#в) программа перезапускалась после последнего ручного бекапа
cls
cd C:\BackBases\BackISPRO
$IsproDir = "C:\BackBases\BackISPRO"
$IsproBackup = dir $IsproDir | where {$_.lastwritetime.date -eq (get-date).date}
$IsproSize = Get-ChildItem $IsproBackup | ForEach-Object { echo ($_.Length/1MB).tostring("0.00")MB}
$IsproFileDate = Get-ChildItem $IsproBackup | ForEach-Object { echo ($_.LastWritetime)} | Get-Date -f d
If ($IsproBackup)
#Когда уведомления запарят - следующий блок можно будет заменить на {exit}
{Send-MailMessage -from "sm@mail.ru" -To "postmaster@mail.ru" -Subject "Backup Ispro is GOOD" -Body "Backup is fine.
FileName is $IsproBackup
FileSize is $IsproSize
FileDate is $IsproFileDate" -SmtpServer krnd-mailout}
else
{Send-MailMessage -from "sm@mail.ru" -To "postmaster@mail.ru" -Subject "Backup Ispro FAILED" -Body "Backup of ISPRO was not succesfull!! Please check it!" -SmtpServer krnd-mailout}
exit
29 июн. 2010 г.
Access Denied при запуске виртуалок в Hyper-V
Запустил procmon, попытался запустить виртуалку, выгрузил результаты в Excel и отфильтровал по Access Denied.
Одна из записей говорила просто и понятно о многом:
vmwp.exe 2440 CreateFile C:\VM\2008R2-EE1\Virtual Machines\F497964D-32A9-4A86-B9D8-0DD6C9E533C2.xml ACCESS DENIED
Desired Access: Generic Read/Write, Disposition: Open, Options: Write Through, Sequential Access, Non-Directory File, Open No Recall, Attributes: n/a, ShareMode: Read, Write, AllocationSize: n/a
Как оказалось, на этот файл должны быть установлены права для NT VIRTUAL MACHINE\Virtual Machines (либо для NT VIRTUAL MACHINE\GUID_вашей виртуалки – разницы пока не понял). Вот результат выполнения команды icacls c:\VM\2003-1\ - на каталог с виртуалкой, которая чувствовала себя нормально
c:\VM\2003-3\ NT VIRTUAL MACHINE\Virtual Machines:(R,WD,AD)
NT VIRTUAL MACHINE\Virtual Machines:(CI)(IO)(GR,WD,AD)
BUILTIN\Administrators:(F)
CREATOR OWNER:(OI)(CI)(IO)(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(RX)
HOST\Administrator:(I)(OI)(CI)(F)
Тогда как у меня для неработающих машин результат был таким:
C:\Users\administrator.A>icacls c:\VM\2008R2-EE1\
c:\VM\2008R2-EE1\ BUILTIN\Administrators:(I)(OI)(CI)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(RX)
HOST\Administrator:(I)(OI)(CI)(F)
Выполняю:
icacls c:\VM\2008R2-EE1\ /T /grant "NT Virtual machine\F497964D-32A9-4A86-B9D8-0DD6C9E533C2":(F)
Результат:
C:\Users\administrator.A>icacls c:\VM\2008R2-EE1\
c:\VM\2008R2-EE1\ NT VIRTUAL MACHINE\F497964D-32A9-4A86-B9D8-0DD6C9E533C2:(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(RX)
HOST\Administrator:(I)(OI)(CI)(F)
И всё вроде бы красиво, права у учётки, запускающей VM полные и даже машина стартанула из Saved State и я решил не заморачиваться с пониманием таинственных CI, IO из строки правильной и рабочей виртуалки "NT VIRTUAL MACHINE\Virtual Machines:(CI)(IO)". Лучше бы я сделал это сразу
Я было обрадовался, проделал то же самое для другой виртуалки, которая была выключена (либо не до конца успела сохраниться в тот вечер, что более вероятнее) и получил фигу. Машина не стартовала.
Как оказалось, нужно чтобы для NT VIRTUAL MACHINE\Virtual Machines всё таки были назначено наследование, как это показано на скриншоте.
После этого виртуалки заработали в штатном режиме, правда так осталось непонятным, кто же или что отобрало права у учёток…
Одна из записей говорила просто и понятно о многом:
vmwp.exe 2440 CreateFile C:\VM\2008R2-EE1\Virtual Machines\F497964D-32A9-4A86-B9D8-0DD6C9E533C2.xml ACCESS DENIED
Desired Access: Generic Read/Write, Disposition: Open, Options: Write Through, Sequential Access, Non-Directory File, Open No Recall, Attributes: n/a, ShareMode: Read, Write, AllocationSize: n/a
Как оказалось, на этот файл должны быть установлены права для NT VIRTUAL MACHINE\Virtual Machines (либо для NT VIRTUAL MACHINE\GUID_вашей виртуалки – разницы пока не понял). Вот результат выполнения команды icacls c:\VM\2003-1\ - на каталог с виртуалкой, которая чувствовала себя нормально
c:\VM\2003-3\ NT VIRTUAL MACHINE\Virtual Machines:(R,WD,AD)
NT VIRTUAL MACHINE\Virtual Machines:(CI)(IO)(GR,WD,AD)
BUILTIN\Administrators:(F)
CREATOR OWNER:(OI)(CI)(IO)(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(RX)
HOST\Administrator:(I)(OI)(CI)(F)
Тогда как у меня для неработающих машин результат был таким:
C:\Users\administrator.A>icacls c:\VM\2008R2-EE1\
c:\VM\2008R2-EE1\ BUILTIN\Administrators:(I)(OI)(CI)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(RX)
HOST\Administrator:(I)(OI)(CI)(F)
Выполняю:
icacls c:\VM\2008R2-EE1\ /T /grant "NT Virtual machine\F497964D-32A9-4A86-B9D8-0DD6C9E533C2":(F)
Результат:
C:\Users\administrator.A>icacls c:\VM\2008R2-EE1\
c:\VM\2008R2-EE1\ NT VIRTUAL MACHINE\F497964D-32A9-4A86-B9D8-0DD6C9E533C2:(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(RX)
HOST\Administrator:(I)(OI)(CI)(F)
И всё вроде бы красиво, права у учётки, запускающей VM полные и даже машина стартанула из Saved State и я решил не заморачиваться с пониманием таинственных CI, IO из строки правильной и рабочей виртуалки "NT VIRTUAL MACHINE\Virtual Machines:(CI)(IO)". Лучше бы я сделал это сразу
Я было обрадовался, проделал то же самое для другой виртуалки, которая была выключена (либо не до конца успела сохраниться в тот вечер, что более вероятнее) и получил фигу. Машина не стартовала.
Как оказалось, нужно чтобы для NT VIRTUAL MACHINE\Virtual Machines всё таки были назначено наследование, как это показано на скриншоте.
Либо с помощью icacls C:\VM\2008r2-EE1\ /grant NT VIRTUAL MACHINE\Virtual Machines:(CI,OI)
После этого виртуалки заработали в штатном режиме, правда так осталось непонятным, кто же или что отобрало права у учёток…
28 июн. 2010 г.
Поиск отвалившихся компьютеров WSUS
Проблема:
Вы обновляете ваши компьютеры с помощью WSUS, но случайно оказывается, что не все они подхватили настройки, которые вы распространили через GPO.
Причины могут быть разные: задисейбленная служба Автоматического обновления, установка из образа, просто глюки (мне вот к примеру так и не удалось победить 2 машины. Если в оснастке WSUS'a появляется одна из них - то сразу же отваливается другая. В чём дело понять пока не могу)
Скрипт сравнивает содержимого OU (и движется вниз по дереву) в котором содержатся учётные записи ваших компьютеров и сравнивает их с теми, что получает из WSUS'a. Не найденные во WSUS'e учётки предоставляет нам в текстовом файлике.
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
# Указываем свой сервер WSUS. Если он у вас используется на порту отличном от 80 укажите это таким образом "GetUpdateServer("krnd-file", $false, 12345)"
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer("krnd-file", $false)
$WSUScomps = $wsus.GetComputerTargets()
$WSUSCompNames = $WSUScomps | ForEach { $_.FullDomainName.ToUpper() }
# Получаем список незаблокированных компьютеров в вашем OU
$ADcomps = (new-object System.DirectoryServices.DirectorySearcher([ADSI]"LDAP://ou=krnd,ou=katren,dc=katren,dc=net","(&(objectCategory=computer)(!userAccountControl:1.2.840.113556.1.4.803:=2))")).findAll()
$ADCompNames = $ADcomps | ForEach {$_.GetDirectoryEntry().dNSHostName.ToString().ToUpper()}
$NoWSUSCompNames = $ADCompNames | Where { $WSUSCompNames -notcontains $_ } > C:\Wsus.txt
Скрипт "собран" мною с помощью статьи Ильи Сазонова, за что ему огромное спасибо!
Вы обновляете ваши компьютеры с помощью WSUS, но случайно оказывается, что не все они подхватили настройки, которые вы распространили через GPO.
Причины могут быть разные: задисейбленная служба Автоматического обновления, установка из образа, просто глюки (мне вот к примеру так и не удалось победить 2 машины. Если в оснастке WSUS'a появляется одна из них - то сразу же отваливается другая. В чём дело понять пока не могу)
Скрипт сравнивает содержимого OU (и движется вниз по дереву) в котором содержатся учётные записи ваших компьютеров и сравнивает их с теми, что получает из WSUS'a. Не найденные во WSUS'e учётки предоставляет нам в текстовом файлике.
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
# Указываем свой сервер WSUS. Если он у вас используется на порту отличном от 80 укажите это таким образом "GetUpdateServer("krnd-file", $false, 12345)"
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer("krnd-file", $false)
$WSUScomps = $wsus.GetComputerTargets()
$WSUSCompNames = $WSUScomps | ForEach { $_.FullDomainName.ToUpper() }
# Получаем список незаблокированных компьютеров в вашем OU
$ADcomps = (new-object System.DirectoryServices.DirectorySearcher([ADSI]"LDAP://ou=krnd,ou=katren,dc=katren,dc=net","(&(objectCategory=computer)(!userAccountControl:1.2.840.113556.1.4.803:=2))")).findAll()
$ADCompNames = $ADcomps | ForEach {$_.GetDirectoryEntry().dNSHostName.ToString().ToUpper()}
$NoWSUSCompNames = $ADCompNames | Where { $WSUSCompNames -notcontains $_ } > C:\Wsus.txt
Скрипт "собран" мною с помощью статьи Ильи Сазонова, за что ему огромное спасибо!
Частичный бекап с помощью Windows Backup в 2008 R2
Предыстория.
Настроил на новом сервере БД полный бекап.
Есстественно после переноса туда тестовой БД с радостью обнаружил что он её забекапил в архив размером 65 гигабайт :\
Попытался сделать новый. Для этого галочка Bare Metal должна быть снята, иначе не получается отключить бекап отдельных папок. Next- Next - Next и в итоге видим окошко (см. вложение)
Если коротко - то чтобы решить этот вопрос нужно снять галочку с "Documents And Settings" в окне выбора файлов для архивации
Настроил на новом сервере БД полный бекап.
Есстественно после переноса туда тестовой БД с радостью обнаружил что он её забекапил в архив размером 65 гигабайт :\
Попытался сделать новый. Для этого галочка Bare Metal должна быть снята, иначе не получается отключить бекап отдельных папок. Next- Next - Next и в итоге видим окошко (см. вложение)
Если коротко - то чтобы решить этот вопрос нужно снять галочку с "Documents And Settings" в окне выбора файлов для архивации
Утро началось плохо
Утро началось плохо - в один глаз светило солнце, из другого торчало копьё
Утро началось с обычного старта моей домашней Hyper-V "лаборатории"
Почему то не стартанул виртуальный DC и ещё одна машина, обе 2008R2. Обе в Saved State (в которое они по умолчанию падают при выключении хоста)
Странно, подумал я.
При попытке стартануть вручную - ошибка, проверьте права на папку
"Unnamed VM' could not read or update the virtual machine configuration because access was denied: General access denied error (0x80070005). Check the security settings on the folder in which the virtual machine is stored"
Утро началось с обычного старта моей домашней Hyper-V "лаборатории"
Почему то не стартанул виртуальный DC и ещё одна машина, обе 2008R2. Обе в Saved State (в которое они по умолчанию падают при выключении хоста)
Странно, подумал я.
При попытке стартануть вручную - ошибка, проверьте права на папку
"Unnamed VM' could not read or update the virtual machine configuration because access was denied: General access denied error (0x80070005). Check the security settings on the folder in which the virtual machine is stored"
Log Name: Microsoft-Windows-Hyper-V-Worker-AdminБуду разбираться...
Source: Microsoft-Windows-Hyper-V-Worker
Date: 28.06.2010 9:05:08
Event ID: 3072
Task Category: None
Level: Error
Keywords:
User: NETWORK SERVICE
Computer: host.a.ru
Description:
'Unnamed VM' could not read or update the virtual machine configuration because access was denied: General access denied error (0x80070005). Check the security settings on the folder in which the virtual machine is stored. (Virtual machine ID D1C7CB0B-6024-4FD1-8854-342703BA18BA)
Event Xml:
Подписаться на:
Сообщения (Atom)
