Назад | Перейти на главную страницу

Миграция FTP-сервера IIS в Windows 2003 с учетными записями пользователей

Я пытаюсь найти лучший способ перенести FTP-сервер со старого оборудования на новое. Сервер находится в домене, но не все пользователи, настроенные на сервере (для использования FTP), являются учетными записями домена, некоторые являются локальными для сервера.

Например, у меня есть оба пользователя:

домен \ имя пользователя имя машины \ имя пользователя

Имя новой машины будет другим.

Поэтому мне нужно скопировать все файлы с разрешениями со старого сервера на новый. Затем мне нужно преобразовать все учетные записи пользователей со старого сервера на новый сервер. Затем мне нужно изменить права доступа к файлам, чтобы они больше не были oldserver \ username, а newserver \ username.

Можно ли этого добиться с помощью CALCS? Есть ли простой способ, который, возможно, мне не хватает?

Самый простой способ - использовать программное обеспечение IIS Sites Transfer или IIS Easy Migration Tool из http://www.hoststools.com Есть бесплатные версии. Эти инструменты помогают переносить FTP-сайты, учетные записи FTP с разрешениями ACL.

«Простого» решения этой проблемы не существует - ACL для локальных учетных записей теряются при перемещении на новый сервер, потому что SID, связанный с этим пользователем, больше не отображается на действительную учетную запись пользователя.

Однако есть способ сделать это, не уничтожая вашу систему. Я собираюсь пройти через то, что я считаю самым простым, с использованием Powershell (с WMI), icacls и некоторого редактирования текста.

  1. Создать всех новых пользователей на новом сервере
  2. Как на старом, так и на новом сервере получите список всех сопоставлений имени пользователя и SID. Для этого откройте Powershell и выполните команду (на каждом сервере):

    get-wmiobject win32_useraccount | где {$ _. localaccount} | экспорт-csv serverusers.csv

  3. Теперь вам нужно выполнить некоторую ручную работу - вам нужно взять обе электронные таблицы и сопоставить SIDS от старых пользователей сервера к новым. Создайте это в новом CSV (c:\sids.csv) с форматом примерно так: oldusername,newusername,oldsid,newsid

  4. На старом сервере сохраните ACL для файлов, которые вам нужны с помощью icacls. Например, если ваши файлы находятся в папке с именем c:\ftproot\ вы бы зашли в эту папку и сделали:

    icacls * / сохранить c: \ acls.bak / T

  5. Теперь вам нужно выполнить поиск и заменить в файле acls.bak - для каждой строки в CSV найдите все экземпляры oldsid и замените их на newsid. Вот сценарий PowerShell для этого:

    $ file = get-content C: \ acls.bak -кодирование юникода
    $ csv = импорт-csv c: \ sids.csv
    foreach ($ row в $ csv) {
    $ file = $ file-заменить $ row.oldsid, $ row.newsid
    }
    set-content c: \ acls2.bak $ file - кодирование Unicode

  6. Скопируйте все файлы на новый сервер

  7. Восстановите ACL для файлов на новом сервере (опять же, предполагая, что это находится в c: \ ftproot):

    icacls. / восстановить c: \ acls2.bak / T

И это должно сделать это - теперь файлы должны иметь разрешения, установленные с использованием новых локальных учетных записей пользователей.

Восстановите из резервной копии на новом оборудовании, тогда вы получите локальных пользователей и все файлы. Затем вы можете просто изменить имя сервера на новое.