Задача: есть самописная программа, обновляемая перезаписью нового exe-файла. Установлена у более 10 пользователей в сетевую папку для каждого пользователя вида \\programs\userN\programma. Также в папку programma вложена папка install, в которой есть установочный файл с таким же именем, который требуется обновлять. Требуется из папки, в которой будет лежат новый файл и сам скрипт, запускать копирование в сетевые папки пользователей, причем в папке install не перезаписывать, обновленные файлы также не перезаписывать. То что файл обновлен, сверяем по размеру файла. Процесс нужно логировать.
Решение:
# сетевой каталог, в котором папки пользователей с программами
$PathToPrograms = "\\dfs\programs"
# файл должен лежать в каталоге запуска *.ps1
$FileForUpdate = "file.exe"
# вычисляем размер нового файла
$SizeFileForUpdate = (ls $FileForUpdate).Length
# формируем имя лога
$CurrentDate = Get-Date -Format "dd-MM-yyyy"
$PathLOG = "backup-" + $CurrentDate +".log"
# Создание пустого файла лога, с перезаписью при наличии старого
New-Item $PathLOG -ItemType file -Force
# не обновлять в папке install, не обновлять уже обновленные. Для лога печатаем полный путь и размер
ls $PathToPrograms -File $FileForUpdate -Recurse -Force | foreach `
# исключаем файлы, в пути содержащие install
{ if( -Not ([string]$_.FullName).Contains("install") -and `
$_.Length -ne $SizeFileForUpdate) `
# логирование полного пути и размера файла до копирования
{Out-File -FilePath $PathLOG -InputObject $_.Fullname, "Было: ", $_.Length `
-Append -encoding unicode
# логирование через конвеер, PassThru - выводит подробную информацию
Copy-Item $FileForUpdate -Destination $_.FullName -PassThru | `
Out-File -FilePath $PathLOG -Append -encoding unicode } }
вторник, 14 июля 2015 г.
понедельник, 13 июля 2015 г.
Windows XP включение NAT
Используем для создания софтового роутера. Есть VPN, поднятый на компьютере с XP с помощью клиента CiscoVPN, который нужно раздать по сети. На компьютерах в сети прописываем постоянный маршрут сети VPN и шлюз - софтроутер. Далее, настройки для этого роутера:
- проверяем что запущен сервис "Маршрутизация и удалённый доступ" ("Routing and Remote Access"), и его режим запуска - "Авто".
- HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\Tcpip\Parameters "IPEnableRouter=1"
- netsh routing ip nat install
- netsh routing ip nat show global если сообщение "NAT должен быть установлен первым" , то перезагрузка
- netsh routing ip nat add interface "VPN" full где "VPN" - название сетевого соединения, которое нужно раздать. Его можно посмотреть и скопировать в сетевых подключениях. Данную команду можно выполнить для более чем одного интерфейса, организовав маршрутизацию для нескольких сетей.
- netsh routing ip nat add interface "LAN" private где "LAN" - название сетевого соединения для локальной сети, которая натится.
взято отсюда
Подписаться на:
Сообщения (Atom)