public void FillWeb() { DataView dv = Comm.GetAllWebInfo().DefaultView; string filter = " Id<>0 "; if (AppPoolId.Text != "全部") { filter += " and AppPoolId = '" + AppPoolId.Text + "'"; } if (txtWeb.Text.Trim() != "") { filter += " and Web like '%" + txtWeb.Text.Trim() + "%'"; } if (ServerAutoStart.SelectedValue.ToString() != "-1") { filter += " and ServerAutoStart = " + ServerAutoStart.SelectedValue; } dv.RowFilter = filter; dataGridView1.DataSource = dv; lblOK.Text = "总共:" + dataGridView1.Rows.Count + "条"; lblOK.ForeColor = Color.Red; dgvWeb = dataGridView1; }
private void frmLogAnalyzer_Load(object sender, EventArgs e) { cbxWeb.DataSource = Comm.GetAllWebInfo(); cbxWeb.DisplayMember = "Web"; cbxWeb.ValueMember = "Id"; dtp1.Value = dtp1.Value.AddDays(-1); dtp2.Value = dtp2.Value.AddDays(-1); dataGridView1.Columns.Add("OptTime", "时间"); dataGridView1.Columns.Add("Web", "站点"); dataGridView1.Columns.Add("All", "总流量"); dataGridView1.Columns.Add("Down", "下行"); dataGridView1.Columns.Add("Up", "上行"); dataGridView1.Columns.Add("Pic", "图片文件"); dataGridView1.Columns.Add("ASP", "动态文件"); dataGridView1.Columns.Add("HTML", "静态文件"); dataGridView1.Columns.Add("RAR", "压缩软件"); dataGridView1.Columns.Add("Music", "音频文件"); dataGridView1.Columns.Add("Movie", "视频文件"); dataGridView1.Columns.Add("500", "500错误"); dataGridView1.Columns.Add("Remark", "备注"); foreach (DataGridViewColumn item in dataGridView1.Columns) { if ("OptTime,Web,Remark".Contains(item.Name)) { continue; } item.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; } }
private void btnInFromIIS_Click(object sender, EventArgs e) { foreach (DataRowView item in Comm.GetAllWebInfo().DefaultView) { dataGridView1.Rows.Add(item["Web"].ToString()); } MessageBox.Show("OK"); }
private void btnHe_Click(object sender, EventArgs e) { if (chkListBox_S.CheckedItems.Count == 0 || chkListBox_D.CheckedItems.Count == 0) { return; } StringBuilder sb = new StringBuilder(); foreach (var item in chkListBox_S.CheckedItems) { sb.AppendFormat(",'{0}'", item); } DataView dv = Comm.GetAllWebInfo().DefaultView; dv.RowFilter = string.Format(" AppPoolId in({0})", sb.ToString().Substring(1)); IISConfig.Metabase metabase = new IISConfig.Metabase(); metabase.OpenLocalMachine(); IISConfig.Record record = new IISConfig.Record(); record.DataType = IISConfig.Record.DataTypes.String; record.UserType = IISConfig.Record.UserTypes.Server; record.Identifier = 9101; record.ChangeAttribute(IISConfig.Record.AttributeList.Inherit, true); Double p = dv.Count / chkListBox_D.CheckedItems.Count; for (int i = 0; i < dv.Count; i++) { int NumberPer = int.Parse(Math.Floor(i / p).ToString()); if (NumberPer == chkListBox_D.CheckedItems.Count) { NumberPer = chkListBox_D.CheckedItems.Count - 1; } record.Data = chkListBox_D.CheckedItems[NumberPer]; metabase.GetKeyFromPath("/LM/W3SVC/" + dv[i]["Id"] + "/root").SetRecord(record); } metabase.Close(); MessageBox.Show("OK"); }
private void 分析应用程序池对应的网站ToolStripMenuItem_Click(object sender, EventArgs e) { if (dgvProcess.Rows.Count == 0) { return; } string Intro = dgvProcess["Intro", dgvProcess.CurrentCell.RowIndex].Value.ToString(); DataView dv = Comm.GetAllWebInfo().DefaultView; dv.RowFilter = " AppPoolId = '" + Intro + "'"; if (dv.Count > 1) { MessageBox.Show("此应用程序池有多个站点,\n\n请先折分应用程序池,\n\n保证要分析的网站只在一个应用程序池里"); } frmLogTimelyView frm = new frmLogTimelyView(); frm.Id = dv[0]["Id"].ToString(); frm.Web = dv[0]["Web"].ToString(); frm.ShowDialog(); }
private void frmLogTimelyView_Load(object sender, EventArgs e) { cbxWeb.DisplayMember = "Web"; cbxWeb.ValueMember = "Id"; cbxWeb.DataSource = Comm.GetAllWebInfo(); if (!string.IsNullOrEmpty(Web)) { cbxWeb.Text = Web; } //dataGridView1.Columns.Add("OptTime", "时间"); //dataGridView1.Columns.Add("Web", "站点"); //dataGridView1.Columns.Add("time-taken", "执行时间"); //dataGridView1.Columns.Add("Remark", "备注"); dtNow.Columns.Add("时间", typeof(DateTime)); dtNow.Columns.Add("网址"); dtNow.Columns.Add("耗时(ms)", typeof(Int32)); dtNow.Columns.Add("备注"); }
private void btnBackUp_Click(object sender, EventArgs e) { if (!File.Exists(Comm.MetaBasePath())) { MessageBox.Show("配置文件不存在,没法备份,请确认您已经安装IIS"); return; } string BackUpPath = txtBackUp.Text; if (!Path.IsPathRooted(BackUpPath)) { BackUpPath = Path.Combine(Application.StartupPath, BackUpPath); } if (Directory.Exists(BackUpPath)) { Directory.Delete(BackUpPath, true); } Directory.CreateDirectory(BackUpPath); try { File.Copy(Comm.MetaBasePath(), Path.Combine(BackUpPath, "MetaBase.xml"), true); if (chkHistory.Checked) { DirectoryCopy(Environment.SystemDirectory + @"\inetsrv\History", Path.Combine(BackUpPath, "History"), "Metabase*.xml"); } if (chkMetaBack.Checked) { DirectoryCopy(Environment.SystemDirectory + @"\inetsrv\MetaBack", Path.Combine(BackUpPath, "MetaBack"), null); } if (chkACL.Checked) { Dictionary <string, string> dict = new Dictionary <string, string>(); DataTable dt = Comm.GetAllWebInfo(); for (int i = 0; i < dt.Rows.Count; i++) { string _path = dt.Rows[i]["Path"].ToString(); if (!dict.ContainsKey(_path)) { dict.Add(_path, "," + string.Join(",", NTFS.ACL.List(_path).ToArray()) + ","); } } DataSet ds = new DataSet(); DataTable dtNew = new DataTable("CrazyIIS.ACL"); dtNew.Columns.Add("Path"); dtNew.Columns.Add("ACL"); foreach (var item in dict) { dtNew.Rows.Add(item.Key, item.Value); } ds.Tables.Add(dtNew); ds.WriteXml(BackUpPath + "\\ACL.xml"); } } catch (Exception ex) { MessageBox.Show(ex.Message); return; } MessageBox.Show("备份成功"); }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { Stopwatch sp = new Stopwatch(); sp.Start(); //路径,用户名,密码 WinNT.NetUser User = new WinNT.NetUser(); DataTable dtUser = Comm.GetAllWebInfo(); dtUser.Columns["AppPoolId"].ColumnName = "U"; dtUser.Columns["ServerBindings"].ColumnName = "P"; Dictionary <string, string> AllUsers = new Dictionary <string, string>(); for (int i = 0; i < dtUser.Rows.Count; i++) { string AnonymousUserName = txtUserNamePre.Text.Trim() + Regex.Replace(dtUser.Rows[i]["Web"].ToString(), @"\.|-", "_"); string AnonymousUserPass = ""; if (AnonymousUserName.Length > 20) { AnonymousUserName = AnonymousUserName.Substring(0, 20); } if (AllUsers.ContainsKey(AnonymousUserName)) { AnonymousUserPass = AllUsers[AnonymousUserName]; } else { AnonymousUserPass = Comm.Random(Convert.ToInt32(txtPasswordNumber.Value)); AllUsers.Add(AnonymousUserName, AnonymousUserPass); } dtUser.Rows[i]["U"] = AnonymousUserName; dtUser.Rows[i]["P"] = AnonymousUserPass; } #region 除所有要删除的用户 { backgroundWorker1.ReportProgress(25, "将要删除用户" + sp.ElapsedMilliseconds.ToString()); List <String> _NowUsers = WinNT.User.List(); foreach (string item in AllUsers.Keys) { if (_NowUsers.Contains(item)) { backgroundWorker1.ReportProgress(25, "正在删除用户:" + item); User.UserDelete(item); } } _NowUsers = null; backgroundWorker1.ReportProgress(28, "删除用户完成" + sp.ElapsedMilliseconds.ToString()); } #endregion #region 创建所有要创建的用户 { backgroundWorker1.ReportProgress(25, "将要创建用户" + sp.ElapsedMilliseconds.ToString()); foreach (KeyValuePair <string, string> item in AllUsers) { backgroundWorker1.ReportProgress(50, "正在创建匿名用户:" + item.Key); User.UserAdd(item.Key, item.Value, null); } backgroundWorker1.ReportProgress(50, "创建匿名用户OK" + sp.ElapsedMilliseconds.ToString()); } #endregion #region 匿名用户给网站 { backgroundWorker1.ReportProgress(50, "将要 给网站添加匿名用户" + sp.ElapsedMilliseconds.ToString()); IISConfig.Metabase metabase = new IISConfig.Metabase(); metabase.OpenLocalMachine(); IISConfig.IKey key = metabase.GetKeyFromPath("/LM/W3SVC"); IISConfig.Record recordU = key.GetRecord(6020); IISConfig.Record recordP = key.GetRecord(6021); for (int i = 0; i < dtUser.Rows.Count; i++) { key = metabase.GetKeyFromPath("/LM/W3SVC/" + dtUser.Rows[i]["Id"].ToString() + "/root"); //用户名存在时,设置密码 recordU.Data = dtUser.Rows[i]["U"].ToString(); recordP.Data = dtUser.Rows[i]["P"].ToString(); key.SetRecord(recordU); key.SetRecord(recordP); } backgroundWorker1.ReportProgress(50, "给网站添加匿名用户完成" + sp.ElapsedMilliseconds.ToString()); } #endregion #region 取网站路径及对应的用户名,如果路径存在,则加权限 { backgroundWorker1.ReportProgress(50, "将要给目录加权限" + sp.ElapsedMilliseconds.ToString()); for (int i = 0; i < dtUser.Rows.Count; i++) { string NowPath = dtUser.Rows[i]["Path"].ToString(); if (Directory.Exists(NowPath)) { backgroundWorker1.ReportProgress(50, "正在给目录 “" + NowPath + "” 加权限" + sp.ElapsedMilliseconds.ToString()); NTFS.ACL.Add(NowPath, dtUser.Rows[i]["U"].ToString(), NTFS.ACL.Roles.FullControl); NTFS.ACL.DelErr(NowPath); } } backgroundWorker1.ReportProgress(50, "给目录加权限完成" + sp.ElapsedMilliseconds.ToString()); } #endregion sp.Stop(); backgroundWorker1.ReportProgress(100, "操作完成 共用时:" + sp.ElapsedMilliseconds / 1000 + "s"); }