Показаны сообщения с ярлыком powershell. Показать все сообщения
Показаны сообщения с ярлыком powershell. Показать все сообщения

вторник, 19 июня 2018 г.

Windows. PowerShell. Add/Replace value of Key in Web.config

Есть Web.config.
В нем есть строчка

   

По сути нужно заменить значение OldValue на новое.
Здесь пример - если ключ существует - заменить значение на новое, если не существует - создать новый ключ:

$webConfig = 'c:\work\Web.config'
$doc = (Get-Content $webConfig) -as [Xml]
$obj = $doc.configuration.appSettings.add | where {$_.Key -eq 'DB_NAME'}
if ($obj) {
  $obj.value = "NewValue2"
} else {
 $newAppSetting = $doc.CreateElement("add")
 $doc.configuration.appSettings.AppendChild($newAppSetting)
 $newAppSetting.SetAttribute("key","SCVMMIPAdress");
 $newAppSetting.SetAttribute("value","10.10.10.10");
}

$doc.Save($webConfig)

четверг, 29 декабря 2016 г.

Windows 2008R2. Создать и настроить SMTP relay

PowerShell as Administrator
>get-WindowsFeature smtp-server
> import-module servermanager
>add-windowsfeature smtp-server

Установка закончится и управление из графики будет доступно как оснастка inetmgr6
Далее скрипт (один из вариантов) для его настройки:

Import-Module ServerManager
$smtpconf=Get-WMIObject IISSMTPServerSetting -Namespace root/MicrosoftIISv2
$smtpconf.AuthAnonymous=1
$smtpconf.AllowAnonymous=1
$smtpconf.BadMailDirectory="C:\inetpub\mailroot\Badmail"
$smtpconf.DefaultDomain="mydomain.ru"
$smtpconf.FullyQualifiedDomainName="serverok.mydomain.ru"
$smtpconf.MasqueradeDomain="mydomain.ru"
$smtpconf.RelayForAuth=-1
$smtpconf.RouteAction=268 ( этот код включает также TLS!, если не нужно то поставит 264)
$smtpconf.RoutePassword="superPassword"
$smtpconf.RouteUserName="usernameForAuth"
$smtpconf.SendNdrTo="allemailtome@mydomain.ru"
$smtpconf.ServerAutoStart=1
$smtpconf.SmartHost="email-smarthost.go-go.ru"
$smtpconf.SmartHostType=2
$smtpconf.SmtpDisableRelay=1
$smtpconf.SmtpHeloNoDomain=1
$smtpconf.UpdatedDefaultDomain=1
$smtpconf.UpdatedFQDN=1
$smtpconf.SmtpMailNoHelo=1
## не поверите! Строчка ниже добавляет в релей список только ОДИН адрес 127.0.0.1
$relayIPs = @( 24, 0, 0, 128, 32, 0, 0, 128, 60, 0, 0, 128, 68, 0, 0, 128, 1, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 127, 0, 0, 1 )
$smtpconf.RelayIpList=$relayIPs

$smtpconf.put()


Если на запрос Get-WMIObject IISSMTPServerSetting -Namespace root/MicrosoftIISv2
получаем Invalid NameSpace root/MicrosoftIISv2, это означает, что не установлена служебная роль WMI IIS6 Compatible.

PowerShell. Полезное для работы

Сравнить два файла (аналог diff): Compare-Object (gc $file1) (gc $file2)