Для XP
» PowerShell
В русской версии для ХР английская документация
В русской версии для 2003 - русская
Выдрал и выложил на RS
Это саморасаковывающийся архив, который кинет доки на нужное место
В русской версии для 2003 - русская
Выдрал и выложил на RS
Это саморасаковывающийся архив, который кинет доки на нужное место
Хорошее подспорье в работе
Добавлено:
Подправил подшаманеную Русскую версию для Windows XP
http://dl.rapidshare.ru/55406/49789/PowerShell.RC2.Rus.zip
Добавлено:
Подправил подшаманеную Русскую версию для Windows XP
http://dl.rapidshare.ru/55406/49789/PowerShell.RC2.Rus.zip
Большой сорри
При формировании первого варианта русской справки допустил ошибку
Исправленный вариант
Старый стерт
Добавлено:
Поправлена в шапке ссылка на версию 2003-англ
При формировании первого варианта русской справки допустил ошибку
Исправленный вариант
Старый стерт
Добавлено:
Поправлена в шапке ссылка на версию 2003-англ
Вышел
Windows PowerShell 1.0 MUI update package for Windows Server Service Pack 1 and for Windows XP Service Pack 2
Цитата:
Windows PowerShell 1.0 MUI update package for Windows Server Service Pack 1 and for Windows XP Service Pack 2
Цитата:
Note The Windows PowerShell 1.0 RC2 MUI update package supports the following 10 languages:
• German
• Spanish
• French
• Italian
• Japanese
• Korean
• Portuguese
• Russian
• Chinese – Simplified
• Chinese – Traditional
The Windows PowerShell 1.0 RC2 MUI update package installs additional files for these languages.
Etalon
Если есть русская версия - то зачем MUI?
Если есть русская версия - то зачем MUI?
Он же будет распространяться как обновление Windows
И мне будет проще, на 50 компьютеров, установить английскую версию с МУИ
через WSUS, чем бегать от компьютера к компьютеру и устанавливать подшаманеную русскую версию.
И мне будет проще, на 50 компьютеров, установить английскую версию с МУИ
через WSUS, чем бегать от компьютера к компьютеру и устанавливать подшаманеную русскую версию.
Первая версия скрипта, который ананализирует ошибки и проблемы в EventLog за указанный период времени и отсылающий информацию по E-Mail
[more=Скрипт]
# v1.0
# =====================
# ==================== Константы - начало
# =====================
# Частота вызова скрипта
# $Interval - частота вызова в единицах, заданных в $IntervalSelector
# $IntervalSelector - временной интервал
# h - часы
# n - минуты
# d - дни (default)
# m - месяцы
$iInterval=12
$strIntervalSelector='h'
$EMailTo='Administrator@Company.com'
$EmailFrom='Server@Company.Com'
$SMTPHost='SMTP.Company.Com'
$SMTPPort=25
# =====================
# ==================== Константы - конец
# =====================
$dtNow=Date
If ($strIntervalSelector -eq 'h')
{
$dtPrev=$dtNow.AddHours(-$iInterval)
}
ElseIf ($strIntervalSelector -eq 'n')
{
$dtPrev=$dtNow.AddMinutes(-$iInterval)
}
ElseIf ($strIntervalSelector -eq 'm')
{
$dtPrev=$dtNow.AddMonths(-$iInterval)
}
Else
{
$dtPrev=$dtNow.AddDays(-$iInterval)
}
$dtPrev=$dtPrev.AddMinutes(-2)
$objEventLogs=Get-EventLog -list
For($i=0;$i -lt $objEventLogs.Count;$i++)
{
$objEventLog=$objEventLogs.Get($i)
$objEventLogMessages=Get-EventLog $objEventLog.Log
$strLog=""+$objEventLog.Log+".htm"
$iCountOfErr=0
For($j=0;$j -lt $objEventLogMessages.Count;$j++)
{
$objEventLogMessage=$objEventLogMessages[$j]
If ($objEventLogMessage.TimeWritten -lt $dtPrev) {Break}
If ($objEventLogMessage.get_EntryType().ToString() -eq 'Information') {continue}
If ($objEventLogMessage.get_EntryType().ToString() -eq '0') {continue}
$iCountOfErr=$iCountOfErr+1
$strMsg='Ошибки и предупреждения по журналу ['+$objEventLog.LogDisplayName+'] за период ['+$dtPrev.ToString('dd/MM/yyyy, hh:mm:ss')+" .. "+$dtNow.ToString('dd/MM/yyyy, hh:mm:ss')+']'
If ($iCountOfErr -eq 1)
{
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'>$strLog
'<html>'>>$strLog
'<head><title>'+$strMsg+'</title>'>>$strLog
'</head>'>>$strLog
'<h2 align="center">'+$strMsg+'</h2>'>>$strLog
'<table width="100%" border="1" cellspacing="2" cellpadding="2" align="center">'>>$strLog
'<tr><th>№</th><th>Тип</th><th>Дата</th><th>Время</th><th>Комп</th><th>Пользователь</th><th>Сообщение</th></tr>'>>$strLog
}
'<tr align="left">'>>$strLog
'<td>'+$iCountOfErr+'</td>'>>$strLog
'<td>'+$objEventLogMessage.get_EntryType().ToString()+'</td>'>>$strLog
'<td>'+$objEventLogMessage.TimeWritten.ToString('dd/MM/yyyy')+'</td>'>>$strLog
'<td>'+$objEventLogMessage.TimeWritten.ToString('hh:mm:ss')+'</td>'>>$strLog
'<td>'+$objEventLogMessage.MachineName+' </td>'>>$strLog
'<td>'+$objEventLogMessage.UserName+' </td>'>>$strLog
'<td>'+$objEventLogMessage.Message+'</td>'>>$strLog
'</tr>'>>$strLog
}
If ($iCountOfErr -gt 0)
{
'</table>'>>$strLog
'</body>'>>$strLog
'</html>'>>$strLog
$Attach = new-object System.Net.Mail.Attachment($strLog)
$SMTPClient = new-object System.Net.Mail.SMTPClient
$Msg = new-object System.Net.Mail.MailMessage
$Msg.Attachments.add($Attach)
$Msg.To.Add($EMailTo)
$Msg.From = $EMailFrom
$Msg.Subject = $strMsg
$Msg.Body = $strMsg
$SMTPClient.Host = $SMTPHost
$SMTPClient.Port = $SMTPPort
$SMTPClient.Send($Msg)
}
}
[/more]
[more=Скрипт]
# v1.0
# =====================
# ==================== Константы - начало
# =====================
# Частота вызова скрипта
# $Interval - частота вызова в единицах, заданных в $IntervalSelector
# $IntervalSelector - временной интервал
# h - часы
# n - минуты
# d - дни (default)
# m - месяцы
$iInterval=12
$strIntervalSelector='h'
$EMailTo='Administrator@Company.com'
$EmailFrom='Server@Company.Com'
$SMTPHost='SMTP.Company.Com'
$SMTPPort=25
# =====================
# ==================== Константы - конец
# =====================
$dtNow=Date
If ($strIntervalSelector -eq 'h')
{
$dtPrev=$dtNow.AddHours(-$iInterval)
}
ElseIf ($strIntervalSelector -eq 'n')
{
$dtPrev=$dtNow.AddMinutes(-$iInterval)
}
ElseIf ($strIntervalSelector -eq 'm')
{
$dtPrev=$dtNow.AddMonths(-$iInterval)
}
Else
{
$dtPrev=$dtNow.AddDays(-$iInterval)
}
$dtPrev=$dtPrev.AddMinutes(-2)
$objEventLogs=Get-EventLog -list
For($i=0;$i -lt $objEventLogs.Count;$i++)
{
$objEventLog=$objEventLogs.Get($i)
$objEventLogMessages=Get-EventLog $objEventLog.Log
$strLog=""+$objEventLog.Log+".htm"
$iCountOfErr=0
For($j=0;$j -lt $objEventLogMessages.Count;$j++)
{
$objEventLogMessage=$objEventLogMessages[$j]
If ($objEventLogMessage.TimeWritten -lt $dtPrev) {Break}
If ($objEventLogMessage.get_EntryType().ToString() -eq 'Information') {continue}
If ($objEventLogMessage.get_EntryType().ToString() -eq '0') {continue}
$iCountOfErr=$iCountOfErr+1
$strMsg='Ошибки и предупреждения по журналу ['+$objEventLog.LogDisplayName+'] за период ['+$dtPrev.ToString('dd/MM/yyyy, hh:mm:ss')+" .. "+$dtNow.ToString('dd/MM/yyyy, hh:mm:ss')+']'
If ($iCountOfErr -eq 1)
{
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'>$strLog
'<html>'>>$strLog
'<head><title>'+$strMsg+'</title>'>>$strLog
'</head>'>>$strLog
'<h2 align="center">'+$strMsg+'</h2>'>>$strLog
'<table width="100%" border="1" cellspacing="2" cellpadding="2" align="center">'>>$strLog
'<tr><th>№</th><th>Тип</th><th>Дата</th><th>Время</th><th>Комп</th><th>Пользователь</th><th>Сообщение</th></tr>'>>$strLog
}
'<tr align="left">'>>$strLog
'<td>'+$iCountOfErr+'</td>'>>$strLog
'<td>'+$objEventLogMessage.get_EntryType().ToString()+'</td>'>>$strLog
'<td>'+$objEventLogMessage.TimeWritten.ToString('dd/MM/yyyy')+'</td>'>>$strLog
'<td>'+$objEventLogMessage.TimeWritten.ToString('hh:mm:ss')+'</td>'>>$strLog
'<td>'+$objEventLogMessage.MachineName+' </td>'>>$strLog
'<td>'+$objEventLogMessage.UserName+' </td>'>>$strLog
'<td>'+$objEventLogMessage.Message+'</td>'>>$strLog
'</tr>'>>$strLog
}
If ($iCountOfErr -gt 0)
{
'</table>'>>$strLog
'</body>'>>$strLog
'</html>'>>$strLog
$Attach = new-object System.Net.Mail.Attachment($strLog)
$SMTPClient = new-object System.Net.Mail.SMTPClient
$Msg = new-object System.Net.Mail.MailMessage
$Msg.Attachments.add($Attach)
$Msg.To.Add($EMailTo)
$Msg.From = $EMailFrom
$Msg.Subject = $strMsg
$Msg.Body = $strMsg
$SMTPClient.Host = $SMTPHost
$SMTPClient.Port = $SMTPPort
$SMTPClient.Send($Msg)
}
}
[/more]
На Складе выложил русскую документацию в формате .CHM (1Мб). Ссылку добавил в шапку.
Хорошая справочка. Я так понимаю переработанный UserGuide.doc.
Вот только не понятно. Такая мощная оболочка, а для работы с сетевыми дисками предлагается использовать объекты WSH.
Неужели, к релизу, не предложат никаких встроенных инструментов?
Вот только не понятно. Такая мощная оболочка, а для работы с сетевыми дисками предлагается использовать объекты WSH.
Неужели, к релизу, не предложат никаких встроенных инструментов?
Цитата:
Я так понимаю переработанный UserGuide.doc
В справке всё (или, пока, почти всё) из русских *.RTF, *.TXT, *.XML идущих с сабжем. Кое-что повторяющееся (типа, авторское право, введение, etc) в справке оставил в одном экземпляре.
Etalon
А что тебе надо с ними делать?
Set-Location \\Server\C$ - работает
А что тебе надо с ними делать?
Set-Location \\Server\C$ - работает
KLASS
Хорошая справка. Спасибо.
KapralBel
Да в общемто ничего особенного. Так чтобы у пользователей буковки были типа X:>, Y:>, Z:>.
Хорошая справка. Спасибо.
KapralBel
Да в общемто ничего особенного. Так чтобы у пользователей буковки были типа X:>, Y:>, Z:>.
Etalon
Слабо воспользоваться такой конструкцией
Код: New-PSDrive -name Q -PSProvider FileSystem -Root \\Srv1\C$
Слабо воспользоваться такой конструкцией
Код: New-PSDrive -name Q -PSProvider FileSystem -Root \\Srv1\C$
Цитата:
К сожалению от сессии к сессии не сохраняется
, в Проводнике и прочей файлово-навигационной дребедени не отображается.
Потому и слабо.
Хотя, в прочем это мелочь. Net Use то всё равно никуда не девается
Etalon
Понравилась фича
Код: New-PSDrive -Name RemoteDoc -PSProvider FileSystem -Root \\Srv1\C$\Net\Documents\Departaments\ASUP
Set-Location RemoteDoc:
Понравилась фича
Код: New-PSDrive -Name RemoteDoc -PSProvider FileSystem -Root \\Srv1\C$\Net\Documents\Departaments\ASUP
Set-Location RemoteDoc:
В шапке поправил ассоциацию на .PS1 в старом варианте параметры внуть скрипта не передавались
[more=Версия 2.0 скрипта, посылающего ошибки и предупреждения, возникающие в журнале событий на E-Mail]
# v2.0
# =====================
# ==================== Константы - начало
# =====================
# Частота вызова скрипта
# $Interval - частота вызова в единицах, заданных в $IntervalSelector
# $IntervalSelector - временной интервал
# h - часы
# n - минуты
# d - дни (default)
# m - месяцы
$iInterval=1
$strIntervalSelector='d'
$bLastTime='y'
$EMailTo='Administrator@Firma.Ru'
$EmailFrom='Server@Firma.Ru'
$SMTPHost='Local.Mail.Firma.Ru'
$SMTPPort=25
# =====================
# ==================== Константы - конец
# =====================
For ($i=0;$i -lt $Args.Count;$i++)
{
If ($Args[$i] -eq '-Time') { $iInterval=$Args[$i+1] }
If ($Args[$i] -eq '-S') { $strIntervalSelector=$Args[$i+1] }
If ($Args[$i] -eq '-DateTime') { $bLastTime='n' }
}
$dtNow=Date
If ($strIntervalSelector -eq 'h')
{
$dtPrev=$dtNow.AddHours(-$iInterval)
}
ElseIf ($strIntervalSelector -eq 'n')
{
$dtPrev=$dtNow.AddMinutes(-$iInterval)
}
ElseIf ($strIntervalSelector -eq 'm')
{
$dtPrev=$dtNow.AddMonths(-$iInterval)
}
Else
{
$dtPrev=$dtNow.AddDays(-$iInterval)
}
if ($bLastTime -eq 'y')
{
$FileExist = Get-ChildItem -Path C:\EL.ini -Force -ErrorAction SilentlyContinue
If ($FileExist.Exists)
{
$strTmp = Get-Content -Path C:\EL.ini -Force -ErrorAction SilentlyContinue
$DtPrev = Get-Date -Date $strTmp
}
Else
{
$dtPrev=$dtPrev.AddMinutes(-2)
}
}
Set-Content -Path C:\EL.ini $dtNow
$objEventLogs=Get-EventLog -list
$iCountErr=0
For($i=0;$i -lt $objEventLogs.Count;$i++)
{
$objEventLog=$objEventLogs.Get($i)
$objEventLogMessages=Get-EventLog $objEventLog.Log
$strLog=""+$objEventLog.Log+".htm"
$iCountOfErr=0
For($j=0;$j -lt $objEventLogMessages.Count;$j++)
{
$objEventLogMessage=$objEventLogMessages[$j]
If ($objEventLogMessage.TimeWritten -lt $dtPrev) {Break}
If ($objEventLogMessage.get_EntryType().ToString() -eq 'Information') {continue}
If ($objEventLogMessage.get_EntryType().ToString() -eq '0') {continue}
$iCountOfErr++
$iCountErr++
$strMsg='Ошибки и предупреждения по журналу ['+$objEventLog.LogDisplayName+'] за период ['+$dtPrev.ToString('dd/MM/yyyy, HH:mm:ss')+" .. "+$dtNow.ToString('dd/MM/yyyy, HH:mm:ss')+']'
$strMsg1='Ошибки и предупреждения по журналу ['+$objEventLog.LogDisplayName+']<br>за период ['+$dtPrev.ToString('dd/MM/yyyy, HH:mm:ss')+" .. "+$dtNow.ToString('dd/MM/yyyy, HH:mm:ss')+']'
If ($iCountOfErr -eq 1)
{
Out-File -FilePath $strLog -Encoding default -InputObject ('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">')
Out-File -FilePath $strLog -Encoding default -Append -InputObject ('<html>')
Out-File -FilePath $strLog -Encoding default -Append -InputObject ('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<head><title>'+$strMsg+'</title>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('</head>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<h2 align="center">'+$strMsg1+'</h2>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<table width="100%" border="1" cellspacing="2" cellpadding="2" align="center">')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<tr><th>№</th><th>Тип</th><th>Дата</th><th>Время</th><th>Комп</th><th>Пользователь</th><th>Сообщение</th></tr>')
}
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<tr align="left">')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<td>'+$iCountOfErr+'</td>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<td>'+$objEventLogMessage.get_EntryType().ToString()+'</td>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<td>'+$objEventLogMessage.TimeWritten.ToString('dd/MM/yyyy')+'</td>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<td>'+$objEventLogMessage.TimeWritten.ToString('HH:mm:ss')+'</td>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<td>'+$objEventLogMessage.MachineName+' </td>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<td>'+$objEventLogMessage.UserName+' </td>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<td>'+$objEventLogMessage.Message+'</td>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('</tr>')
}
If ($iCountOfErr -gt 0)
{
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('</table>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('</body>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('</html>')
$Attach = new-object System.Net.Mail.Attachment($strLog)
$SMTPClient = new-object System.Net.Mail.SMTPClient
$Msg = new-object System.Net.Mail.MailMessage
$Msg.Attachments.add($Attach)
$Msg.To.Add($EMailTo)
$Msg.From = $EMailFrom
$Msg.Subject = $strMsg
$Msg.Body = $strMsg
$SMTPClient.Host = $SMTPHost
$SMTPClient.Port = $SMTPPort
$SMTPClient.Send($Msg)
}
}
If ($iCountErr -eq 0)
{
$strMsg='За период ['+$dtPrev.ToString('dd/MM/yyyy, HH:mm:ss')+" .. "+$dtNow.ToString('dd/MM/yyyy, HH:mm:ss')+'] ошибок и предупреждений в журнале собыйтий нет'
$SMTPClient = new-object System.Net.Mail.SMTPClient
$Msg = new-object System.Net.Mail.MailMessage
$Msg.To.Add($EMailTo)
$Msg.From = $EMailFrom
$Msg.Subject = $strMsg
$Msg.Body = $strMsg
$SMTPClient.Host = $SMTPHost
$SMTPClient.Port = $SMTPPort
$SMTPClient.Send($Msg)
}
[/more]
История
+ По умолчанию, отрабатывает события прошедшие с момента последнего запуска
+ Управление интервалом времени для обработки событий доступы в командной строке
+ В случае ненахождения ошибок, посылается Е-Майл с информацией об этом
* Исправлена кодировка .html, посылаемая вложением
* различные мелкие правки
To-Do
1. Добавить локализацию под разные языки
# v2.0
# =====================
# ==================== Константы - начало
# =====================
# Частота вызова скрипта
# $Interval - частота вызова в единицах, заданных в $IntervalSelector
# $IntervalSelector - временной интервал
# h - часы
# n - минуты
# d - дни (default)
# m - месяцы
$iInterval=1
$strIntervalSelector='d'
$bLastTime='y'
$EMailTo='Administrator@Firma.Ru'
$EmailFrom='Server@Firma.Ru'
$SMTPHost='Local.Mail.Firma.Ru'
$SMTPPort=25
# =====================
# ==================== Константы - конец
# =====================
For ($i=0;$i -lt $Args.Count;$i++)
{
If ($Args[$i] -eq '-Time') { $iInterval=$Args[$i+1] }
If ($Args[$i] -eq '-S') { $strIntervalSelector=$Args[$i+1] }
If ($Args[$i] -eq '-DateTime') { $bLastTime='n' }
}
$dtNow=Date
If ($strIntervalSelector -eq 'h')
{
$dtPrev=$dtNow.AddHours(-$iInterval)
}
ElseIf ($strIntervalSelector -eq 'n')
{
$dtPrev=$dtNow.AddMinutes(-$iInterval)
}
ElseIf ($strIntervalSelector -eq 'm')
{
$dtPrev=$dtNow.AddMonths(-$iInterval)
}
Else
{
$dtPrev=$dtNow.AddDays(-$iInterval)
}
if ($bLastTime -eq 'y')
{
$FileExist = Get-ChildItem -Path C:\EL.ini -Force -ErrorAction SilentlyContinue
If ($FileExist.Exists)
{
$strTmp = Get-Content -Path C:\EL.ini -Force -ErrorAction SilentlyContinue
$DtPrev = Get-Date -Date $strTmp
}
Else
{
$dtPrev=$dtPrev.AddMinutes(-2)
}
}
Set-Content -Path C:\EL.ini $dtNow
$objEventLogs=Get-EventLog -list
$iCountErr=0
For($i=0;$i -lt $objEventLogs.Count;$i++)
{
$objEventLog=$objEventLogs.Get($i)
$objEventLogMessages=Get-EventLog $objEventLog.Log
$strLog=""+$objEventLog.Log+".htm"
$iCountOfErr=0
For($j=0;$j -lt $objEventLogMessages.Count;$j++)
{
$objEventLogMessage=$objEventLogMessages[$j]
If ($objEventLogMessage.TimeWritten -lt $dtPrev) {Break}
If ($objEventLogMessage.get_EntryType().ToString() -eq 'Information') {continue}
If ($objEventLogMessage.get_EntryType().ToString() -eq '0') {continue}
$iCountOfErr++
$iCountErr++
$strMsg='Ошибки и предупреждения по журналу ['+$objEventLog.LogDisplayName+'] за период ['+$dtPrev.ToString('dd/MM/yyyy, HH:mm:ss')+" .. "+$dtNow.ToString('dd/MM/yyyy, HH:mm:ss')+']'
$strMsg1='Ошибки и предупреждения по журналу ['+$objEventLog.LogDisplayName+']<br>за период ['+$dtPrev.ToString('dd/MM/yyyy, HH:mm:ss')+" .. "+$dtNow.ToString('dd/MM/yyyy, HH:mm:ss')+']'
If ($iCountOfErr -eq 1)
{
Out-File -FilePath $strLog -Encoding default -InputObject ('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">')
Out-File -FilePath $strLog -Encoding default -Append -InputObject ('<html>')
Out-File -FilePath $strLog -Encoding default -Append -InputObject ('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<head><title>'+$strMsg+'</title>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('</head>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<h2 align="center">'+$strMsg1+'</h2>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<table width="100%" border="1" cellspacing="2" cellpadding="2" align="center">')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<tr><th>№</th><th>Тип</th><th>Дата</th><th>Время</th><th>Комп</th><th>Пользователь</th><th>Сообщение</th></tr>')
}
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<tr align="left">')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<td>'+$iCountOfErr+'</td>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<td>'+$objEventLogMessage.get_EntryType().ToString()+'</td>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<td>'+$objEventLogMessage.TimeWritten.ToString('dd/MM/yyyy')+'</td>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<td>'+$objEventLogMessage.TimeWritten.ToString('HH:mm:ss')+'</td>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<td>'+$objEventLogMessage.MachineName+' </td>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<td>'+$objEventLogMessage.UserName+' </td>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('<td>'+$objEventLogMessage.Message+'</td>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('</tr>')
}
If ($iCountOfErr -gt 0)
{
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('</table>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('</body>')
Out-File -FilePath $strLog -Encoding UTF8 -Append -InputObject ('</html>')
$Attach = new-object System.Net.Mail.Attachment($strLog)
$SMTPClient = new-object System.Net.Mail.SMTPClient
$Msg = new-object System.Net.Mail.MailMessage
$Msg.Attachments.add($Attach)
$Msg.To.Add($EMailTo)
$Msg.From = $EMailFrom
$Msg.Subject = $strMsg
$Msg.Body = $strMsg
$SMTPClient.Host = $SMTPHost
$SMTPClient.Port = $SMTPPort
$SMTPClient.Send($Msg)
}
}
If ($iCountErr -eq 0)
{
$strMsg='За период ['+$dtPrev.ToString('dd/MM/yyyy, HH:mm:ss')+" .. "+$dtNow.ToString('dd/MM/yyyy, HH:mm:ss')+'] ошибок и предупреждений в журнале собыйтий нет'
$SMTPClient = new-object System.Net.Mail.SMTPClient
$Msg = new-object System.Net.Mail.MailMessage
$Msg.To.Add($EMailTo)
$Msg.From = $EMailFrom
$Msg.Subject = $strMsg
$Msg.Body = $strMsg
$SMTPClient.Host = $SMTPHost
$SMTPClient.Port = $SMTPPort
$SMTPClient.Send($Msg)
}
[/more]
История
+ По умолчанию, отрабатывает события прошедшие с момента последнего запуска
+ Управление интервалом времени для обработки событий доступы в командной строке
+ В случае ненахождения ошибок, посылается Е-Майл с информацией об этом
* Исправлена кодировка .html, посылаемая вложением
* различные мелкие правки
To-Do
1. Добавить локализацию под разные языки
PowerShellCx добавляет пункт "открыть powershell тут", не знаю, писалось ли об этом уже.
http://www.codeplex.com/Project/FileDownload.aspx?ProjectName=PowerShellCX&DownloadId=3448
программа кстати страшно медленно стартуется, так секунд 10. в шапке есть линк на инструкцию для ускорения, но там же написано, что это только для rc1, а у меня уже rc2, всё равно медленно
http://www.codeplex.com/Project/FileDownload.aspx?ProjectName=PowerShellCX&DownloadId=3448
программа кстати страшно медленно стартуется, так секунд 10. в шапке есть линк на инструкцию для ускорения, но там же написано, что это только для rc1, а у меня уже rc2, всё равно медленно
Скачать релиз Windows PowerShell 1.0
Интересно, будет ли она быстрее запускаться, а то тормоза...
Кстати есть ли возможность с помощью PS запускать, просматривать, останавливать и т.п. процессы на удаленных компутерах, работать с удаленным реестром и т.д.?
Кстати есть ли возможность с помощью PS запускать, просматривать, останавливать и т.п. процессы на удаленных компутерах, работать с удаленным реестром и т.д.?
А как заставить PowerShell понимать русские буквы?
Набираю например
PS> ipconfig | findstr "адрес"
а в ответ - пустая строка.
А если набрать
PS> ipconfig | findstr "IP"
то вместо русских букв выдаются вопросики.
Набираю например
PS> ipconfig | findstr "адрес"
а в ответ - пустая строка.
А если набрать
PS> ipconfig | findstr "IP"
то вместо русских букв выдаются вопросики.
Цитата:
релиз Windows PowerShell 1.0
Интересно, будет ли она быстрее запускаться, а то тормоза...
мда, надежда не оправдалась, медленная, собака, по сравнению с обычным cmd промптом
Скачать PowerShell Analizer (Beta 3) 1.0.1.4
WRFan
Почему же медленная - работает почти так же шустро
Может быть это поможет
Если вы "разгоняли" RC1 ngen-ом, то деинсталляция не удаляет старье из native кэша. Поэтому после деинсталляции RC1 не помешает разок для очистки запустить:
Код: cd ([Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory())
.\ngen.exe update
Почему же медленная - работает почти так же шустро
Может быть это поможет
Если вы "разгоняли" RC1 ngen-ом, то деинсталляция не удаляет старье из native кэша. Поэтому после деинсталляции RC1 не помешает разок для очистки запустить:
Код: cd ([Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory())
.\ngen.exe update
Мне тут сказали, что PS под Win2K server sp4 не устанавливаться, правда ли это и что можно сделать, чтобы он все таки заработал???
LexusSad
На сайте лежат версии под
Win2003 SP1
WinXP SP2
Так, что скорее всего только переустанавливать ось
На сайте лежат версии под
Win2003 SP1
WinXP SP2
Так, что скорее всего только переустанавливать ось
На моем комне PS как-то медленно работает.... Это мне так "повезло" или я не одинок со своей проблемой?
KapralBel
Спасибо за подтверждение этой неутешительной новости, но вроде как мне повезло и народ созрел на Win2k3...
e0ne
Мое впечателние от скорости работы PS:
- первый запуск после входа в систему действительно не скорый (мягко говоря)
- последующие запуски и сама работа претензий по скорости (по крайней мере) не вызывает
Спасибо за подтверждение этой неутешительной новости, но вроде как мне повезло и народ созрел на Win2k3...
e0ne
Мое впечателние от скорости работы PS:
- первый запуск после входа в систему действительно не скорый (мягко говоря)
- последующие запуски и сама работа претензий по скорости (по крайней мере) не вызывает
e0ne
А что ты понимаешь под медленно работает???
У меня все тип-топ
Выполни мой совет на этой=же странице про ngen
Кстати начал переводить все свои задачи по управлению сеткой - на PowerShell - шикарно
А что ты понимаешь под медленно работает???
У меня все тип-топ
Выполни мой совет на этой=же странице про ngen
Кстати начал переводить все свои задачи по управлению сеткой - на PowerShell - шикарно
Страницы: 123456789101112131415161718192021222324
Предыдущая тема: Не понятная проблема с видеокартой.
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.