如何备份和恢复服务器上的网站信息

备份

1、备份网站文件

2、备份数据库文件

3、备份IIS和应用池【IIS自带到功能】

4、备份计算机所有用户【cmd net user > c:\userlist.txt】
5 、备份 ISAPI_Rewrite3 的配置文件 

还原

1、还原IIS信息【同理还原应用池】

    “开始”---“运行”---输入“cmd”,打开命令窗口,用下面的命令,控制切换到 windows\system32 目录

cd C:\windows\system32

那么,现在就可以输入命令还原了,

iiscnfg /import /f C:\IIS\IISConfig.xml /sp /LM/W3SVC /dp /LM/W3SVC /children

这个命令,就可以把旧服务器上的IIS所有配置还原到新的IIS配置了

说明:/LM/W3SVC   这个是在你的备份里面有的,第一个配置的路径,可参考上面的新浪博客那个贴子的说明。

注意的是,如果你的新服务器,原来有了一些网站的话,就要用到合并了,上面的命令加多一个“/merge”,如下

iiscnfg /import /f C:\IIS\IISConfig.xml /sp /LM/W3SVC /dp /LM/W3SVC /children /merge

这样子,就不会影响到你原来的网站了,最后,就是自己去检查一下了,看看那里漏掉的,自已补上就好,比如你分配了每个站一个用户权限的,那你就可以去增加原来的用户和密码给这些网站了,等等。。。。

如果还原好的配置,所有网站都是停止的,这个就可以重启IIS就可以了

当然,如果服务器IP有变的话,首先要改一下原备份的XML里的IP,然后再还原。

2、批量附加还原数据库

  private void AddP(string dfspath)
        {
            DirectoryInfo d = new DirectoryInfo(dfspath);
            FileInfo[] fs = d.GetFiles();
            for (int i = 0; i < fs.Length; i++)
            {
                if (fs[i].Extension.ToLower().Contains("mdf"))
                {
                    string DbPath = dfspath+"//" + fs[i].Name;
                    string LogPath = dfspath+"//" + fs[i].Name.Substring(0, fs[i].Name.LastIndexOf('.')) + "_log.ldf";
                    string StrSql = "exec sp_attach_db @dbname='" + fs[i].Name.Substring(0, fs[i].Name.LastIndexOf('.')) + "',@filename1='" + DbPath + "',@filename2='" + LogPath + "'";
                    string strcon = "Server=(local);Integrated Security=SSPI;Database=master";
                    try
                    {
                        SqlConnection cn = new SqlConnection(strcon);
                        SqlCommand cmd = new SqlCommand(StrSql, cn);
                        cn.Open();
                        cmd.ExecuteNonQuery();
                        cn.Close();
                    }
                    catch { }
                }


            }
        }

3、批量添加计算机用户【没有找到好方法】

public void AddUser1()
        {

            FileInfo f = new FileInfo(@"C:\userlist.txt");
            StreamReader sr = new StreamReader(f.Open(FileMode.Open));
            List<string> listuser = new List<string>();
            string ouser = "";
            int j = 0;
            while (sr.Peek()>0)
            {
                string line = sr.ReadLine();
                for (int i = 0; i < line.Length; i++)
                {
                    if (line[i] != ' ')
                    {
                        j = 1;
                        ouser = ouser + line[i].ToString();
                    }
                    else
                    {
                        if (j == 0)
                        {
                        }
                        else
                        {
                            listuser.Add(ouser);
                            ouser = "";
                            j = 0;
                        }
                    }
                }
            }
            if (ouser != "")
            {
                listuser.Add(ouser);
            }
            for (int i = 0; i < listuser.Count; i++)
            {
                try
                {
                    DirectoryEntry AD = new DirectoryEntry("WinNT://" +
                                        Environment.MachineName + ",computer");
                    DirectoryEntry NewUser = AD.Children.Add(listuser[i], "user");
                    //密码123
                    NewUser.Invoke("SetPassword", new object[] { "123" });
                    NewUser.Invoke("Put", new object[] { "Description", "Test User from .NET" });
                    NewUser.CommitChanges();
                    DirectoryEntry grp;

                    grp = AD.Children.Find("web", "group");
                    if (grp != null) { grp.Invoke("Add", new object[] { NewUser.Path.ToString() }); }
                    Console.WriteLine("Account Created Successfully");
                    Console.ReadLine();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    Console.ReadLine();

                }
            }

 

        }

a、首先要解决的问题,用户的文件集合,要有你所要输入的用户的相关文件集合,我们这里采用EXCEL来存储用户信息

b、接着我们就将要到Windows自带的命令Dsadd,对AD进行批量添加,我们可以加入,以下命令
输入:for /f “tokens=1,2,3,4,5 delims=,” %a in (user.csv) do dsadd user “cn=%c,ou=财务部,ou=公司,dc=DKCOMPUTER, dc=COM” –samid %d –upn fsdfasfsdfsdf" %d@DKCOMPUTER.COM –ln %a –fn %b –pwd %e –disabled yes 然后回车

 

语法
dsadd user UserDN [-samid SAMName] [-upn UPN] [-fn FirstName] [-mi Initial] [-ln LastName] [-display DisplayName] [-empid EmployeeID] [-pwd {Password | *}] [-desc Description] [-memberof Group;...] [-office Office] [-tel PhoneNumber] [-email Email] [-hometel HomePhoneNumber] [-pager PagerNumber] [-mobile CellPhoneNumber] [-fax FaxNumber] [-iptel IPPhoneNumber] [-webpg WebPage] [-title Title] [-dept Department] [-company Company] [-mgr Manager] [-hmdir HomeDirectory] [-hmdrv DriveLetter:] [-profile ProfilePath] [-loscr ScriptPath] [-mustchpwd {yes | no}] [-canchpwd {yes | no}] [-reversiblepwd {yes | no}] [-pwdneverexpires {yes | no}] [-acctexpires NumberOfDays] [-disabled {yes | no}] [{-s Server | -d Domain}] [-u UserName] [-p {Password | *}] [-q] [{-uc | -uco | -uci}]

参数
UserDN
必需。指定要添加的用户的可分辨名称。如果省略可分辨名称,则将从标准输入 (stdin) 中获取该名称。
-samid SAMName
指定 SAM 名称作为该用户的唯一 SAM 帐户名(例如,Linda)。如果未指定,dsadd 将尝试使用 UserDN 的公用名 (CN) 值的至多前 20 个字符创建 SAM 帐户名。
-upn UPN
指定要添加的用户的用户主体名称(例如 solo@china.com)。
-fn FirstName
指定要添加的用户的名字。
-mi Initial
指定要添加的用户的中间名首字母。
-ln LastName
指定要添加的用户的姓氏。
-display DisplayName
指定要添加的用户的显示名。
-empid EmployeeID
指定要添加的用户的雇员 ID。
-pwd {Password | *}
指定将用户密码设置为 Password 或 *。如果设置为 *,将提示您输入用户密码。
-desc Description
指定要添加的用户的描述。
-memberof GroupDN ...
指定希望用户加入的组的可分辨名称。
-office Office
指定要添加的用户的办公室位置。
-tel PhoneNumber
指定要添加的用户的电话号码。
-email Email
指定要添加的用户的电子邮件地址。
-hometel HomePhoneNumber
指定要添加的用户的家庭电话号码。
-pager PagerNumber
指定要添加的用户的寻呼机号码。
-mobile CellPhoneNumber
指定要添加的用户的移动电话号码。
-fax FaxNumber
指定要添加的用户的传真号码。
-iptel IPPhoneNumber
指定要添加的用户的 IP 电话号码。
-webpg WebPage
指定要添加的用户的 Web 页的 URL。
-title Title
指定要添加的用户的称谓。
-dept Department
指定要添加的用户的部门。
-company Company
指定要添加的用户的公司信息。
-mgr ManagerDN
指定要添加的用户的管理器的可分辨名称。
-hmdir HomeDirectory
指定要添加的用户的主目录位置。如果 HomeDirectory 是作为通用命名约定 (UNC) 路径给出,则必须使用 -hmdrv 参数指定要映射到此路径的驱动器号。
-hmdrv DriveLetter:
指定要添加的用户的主目录驱动器号(例如,E:)。
-profile ProfilePath
指定要添加的用户的配置文件路径。
-loscr ScriptPath
指定要添加的用户的登录脚本路径。
-mustchpwd {yes | no}
指定用户是否必须在下次登录时更改其密码(yes 必须更改,no 不必更改)。默认情况下,用户不必更改密码 (no)。
-canchpwd {yes | no}
指定用户是否可以更改其密码(yes 可以更改,no 根本不能更改)。默认情况下,允许用户更改密码 (yes)。如果 -mustchpwd 参数的值为 yes,则该参数的值必须为 yes。
-reversiblepwd {yes | no}
指定是否应使用可逆加密来存储用户密码(yes 表示应该,no 表示不应该)。默认情况下,用户不能使用可逆加密 (no)。
-pwdneverexpires {yes | no}
指定用户密码是否永不过期(yes 表示是,no 表示不是)。默认情况下,用户密码会过期 (no)。
-acctexpires NumberOfDays
指定从今天算起用户帐户将到期的天数。0 值表示将今天的结束时间设置为到期时间。正值表示将将来的时间设置为到期时间。负值表示将以前的时间设置为到期时间。值 never 将帐户设置为永不过期。例如,0 值表示该帐户在今天结束时过期。值 -5 表示该帐户 5 天前就已经到期,并将以前的时间设置为到期日期。值 5 表示该帐户将在 5 天后到期。
-disabled {yes | no}
指定是否禁用用户帐户登录(yes 禁用登录,no 允许登录)。默认情况下,启用用户帐户登录 (no)。
{-s Server | -d Domain}
连接到指定的远程服务器或域。默认情况下,计算机与登录域中的域控制器相连接。
-u UserName
指定用户要用于登录到远程服务器的用户名。默认情况下,-u 使用用户登录时的用户名。您可以使用下列任一格式指定用户名:
用户名(例如 Linda)
域\用户名(例如 widgets\Linda)
用户主体名称 (UPN)(例如 solo@china.com)
-p {Password | *}
指定使用密码或 * 登录到远程服务器。如果键入 *,将提示您输入密码。
-q
将所有输出降低为标准输出(安静模式)。
Dsadd user的语法内容比较多大家可以参考自己的实际情况去跟相应的参数。
 

eg:添加工号test001到printer的OU,显示名及说明都是Solo,并添加ippd-printer群组,密码为China123,强制下次登录修改密码;

dsadd user "cn=test001,ou=printer,ou=desktop,dc=ecmms,dc=foxconn" -upn test001@ecmms.foxconn -desc Solo -display Solo -memberof "cn=ippdprinter,ou=user,ou=ippd,ou=rd,ou=ecmms,dc=ecmms,dc=foxconn" -pwd Foxconn123 -mustchpwd yes



© 2016-2024 阿尔佛 aerfo.com | 豫ICP备17044542号 | 豫公网安备 41010602000172