随笔-23  评论-5  文章-0  trackbacks-0
  2009年8月3日

 

.NET framework 2.0开始,可以使用 EventLog构造函数在Windows日志里添加内容,一切看上去是如此的简单。只是……

会涉及到一点点的权限问题,必须要注意一下。

使用 EventLog时,涉及到一个叫做“来源”(source)的参数(一般用来记录消息的出处)。比如将该参数设为“MyEXE”,那么写系统日志的时候,EventLog.WriteEntry就会去注册表里找这个叫做“MyEXE”的节点,如果找不到,那它会创建一个 MyEXE”节点作为来源,然后开始写入系统日志。的确是很人性化的处理办法。只是,要在注册表里建立一个节点,没有相当的权限是不行的,比如说系统管理员的权限。偏偏写系统日志的通常是一些服务账户(例如:NET SERVICE),这些账户往往不会有这么大的权限。

解决方案的话。

1. 事先在注册表里创建要使用的事件源。
  1. 点击“开始”,再点击“运行”。
  2. 在“打开”框中输入“regedit”。
  3. 找到下列子键:
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLogs\Application
  4. 右击“Application”点击“新建”再点“项”(各个参数可以参照同层的其他节点。)
  5. 关闭注册表编辑器

2. 代码中模拟管理员权限(个人不是很喜欢,因为要输入密码……

 

下面是使用 EventLog的一个例子。

using System;

using System.Diagnostics;

using System.Collections.Generic;

using System.Security;

using System.Text;

 

namespace ConsoleApplication2

{

    /// <summary>

    /// 写系日志

    /// </summary>

    public class AppLog

    {

        /// <summary>

        /// 日志所在的主机名。当前定:本地电脑

        /// </summary>

        public const string MACHINE_NAME = ".";

        /// <summary>

        /// 日志名。当前定:用程序

        /// </summary>

        public const string LOG_NAME = "Application";

        /// <summary>

        /// 消息事件型。当前定:无

        /// 该值为0候分类为

        /// </summary>

        public const short CATEGORY = 0;

 

        /// <summary>

        /// 消息事件的种类:信息(Information),警告(Warning),重大错误(Error)

        /// </summary>       

        public enum LogType

        {

            /// <summary>

            /// 重大错误

            /// </summary>

            Error = 1,

            /// <summary>

            /// 警告

            /// </summary>

            Warning = 2,

            /// <summary>

            /// 情報

            /// </summary>

            Information = 4

        }

 

        /// <summary>

        ///

        /// </summary>

        static AppLog()

        {

        }

 

        /// <summary>

        /// 向日志管理器写入系日志

        /// </summary>

        /// <param name="source">消息事件来源</param>

        /// <param name="message">要在消息事件中写入的信息</param>

        /// <param name="type">消息事件</param>       

        /// <param name="eventID">消息事件的事件ID。(0~65535)</param>

        /// <exception cref="System.ComponentModel.Win32Exception">日志存不足</exception>

        /// <exception cref="System.Security.SecurityException">操作系日志限不足</exception>

        static public void WriteEntry(string source, string message, LogType type, int eventID)

        {

            try

            {

                if (!EventLog.SourceExists(source))

                {

                    EventLog.CreateEventSource(source, LOG_NAME);                   

                }

                EventLog.WriteEntry(source, message, GetLogEntryType(type), eventID, CATEGORY);

            }

            catch (SecurityException)

            {

                //碰到限不无法操作系日志的情况时,模本地管理员权行操作。

                //提示:当注册表中没有消息事件来源,会例外

                //ImpersonateAccount的代参考鄙人另一篇文章C#模拟AD用户
                //不要指望可以使用System.Diagnostics.EventLogInstaller类,使用它也需要本地系统管理员的权限

                using (ImpersonateAccount sa = new ImpersonateAccount("<>", "<域>", "<>"))

                {

                    if (!EventLog.SourceExists(source))

                    {

                        EventLog.CreateEventSource(source, LOG_NAME);

                    }

                    EventLog.WriteEntry(source, message, GetLogEntryType(type), eventID, CATEGORY);

                }

            }

        }

 

        /// <summary>

        /// 向日志管理器写入系日志

        /// </summary>

        /// <param name="source">消息事件来源</param>       

        /// <param name="ex">要在消息事件中写入的信息</param>

        /// <param name="eventID">消息事件的事件ID。(0~65535)</param>       

        static public void WriteEntry(string source, Exception ex, int eventID)

        {

            StringBuilder sb = new StringBuilder();

            if (ex != null)

            {

                sb.AppendFormat("[Message]"n{0}"n", ex.Message);

                sb.AppendFormat("[Source]"n{0}"n", ex.Source);

                sb.AppendFormat("[TargetSite]"n{0}"n", ex.TargetSite);

                sb.AppendFormat("[ToString]"n{0}"n", ex.ToString());

                if (ex.Data.Count > 0)

                {

                    sb.Append("[Data]"n");

                    foreach (System.Collections.DictionaryEntry var in ex.Data)

                    {

                        sb.AppendFormat(""t[{0}]:{1}"n", var.Key, var.Value);

                    }

                }

            }

            WriteEntry(source, sb.ToString(), LogType.Error, eventID);

        }

 

        /// <summary>

        /// 将LogType转换EventLogEntryType

        /// </summary>

        /// <param name="type">LogType</param>

        /// <returns>EventLogEntryType</returns>

        /// <exception cref="System.ApplicationException">转换错误时抛出例外</exception>

        static private EventLogEntryType GetLogEntryType(LogType type)

        {

            Type t = typeof(EventLogEntryType);

            if (Enum.IsDefined(t, (int)type))

            {

                return (EventLogEntryType)Enum.Parse(t, ((int)type).ToString());

            }

            else

            {

                StringBuilder sb = new StringBuilder();

                sb.Append("LogType型无法转换为EventLogEntryType");

                sb.AppendFormat("(LogType:{0})", type);

                throw new ApplicationException(sb.ToString());

            }

        }

    }

}

 

posted @ 2009-08-03 10:51 阿米巴原虫 阅读(906) 评论(0) 编辑
  2009年7月30日

代码模拟某个用户的权限。只要你知道用户名,密码。呵呵,这点真的非常讨厌。

调用结束后自动恢复为原先用户。前提是使用using

或者手动恢复。需要调用.Dispose()方法。

 

使用方法如下:

using (ImpersonateAccount sa = new ImpersonateAccount("<>", "<域>", "<>"))

{ 

    //入上面这位同志要行的代 

}

 

ImpersonateAccount 类的代码如下:

  

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Security.Principal;

using System.Runtime.InteropServices;

 

namespace ConsoleApplication2

{

    public class ImpersonateAccount : IDisposable

    {

 

        private WindowsIdentity current;

 

        public const int LOGON32_LOGON_INTERACTIVE = 2;

 

        public const int LOGON32_PROVIDER_DEFAULT = 0;

 

        private WindowsImpersonationContext impersonationContext;

 

        [DllImport("advapi32.dll")]

        public static extern int LogonUserA(String lpszUserName,

        String lpszDomain,

        String lpszPassword,

        int dwLogonType,

        int dwLogonProvider,

        ref IntPtr phToken);

 

        [DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)]

        public static extern int DuplicateToken(IntPtr hToken,

        int impersonationLevel,

        ref IntPtr hNewToken);

 

        [DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)]

        public static extern bool RevertToSelf();

 

        [DllImport("kernel32.dll", CharSet = CharSet.Auto)]

        public static extern bool CloseHandle(IntPtr handle);

 

        /// <summary>

        /// 指定用

        /// </summary>

        /// <param name="userName"></param>

        /// <param name="domain"></param>

        /// <param name="password"></param>

        /// <returns>true/false</returns>

        public ImpersonateAccount(String userName, String domain, String password)

        {

 

            // 保存当前用

            current = WindowsIdentity.GetCurrent();

 

            WindowsIdentity tempWindowsIdentity;

            IntPtr token = IntPtr.Zero;

            IntPtr tokenDuplicate = IntPtr.Zero;

 

            if (RevertToSelf())

            {

                if (LogonUserA(userName, domain, password, LOGON32_LOGON_INTERACTIVE,

                LOGON32_PROVIDER_DEFAULT, ref token) != 0)

               {

                    if (DuplicateToken(token, 2, ref tokenDuplicate) != 0)

                    {

                        tempWindowsIdentity = new WindowsIdentity(tokenDuplicate);

                        impersonationContext = tempWindowsIdentity.Impersonate();

                        if (impersonationContext != null)

                        {

                            CloseHandle(token);

                            CloseHandle(tokenDuplicate);

                        }

                    }

                }

            }

 

            if (token != IntPtr.Zero)

                CloseHandle(token);

 

            if (tokenDuplicate != IntPtr.Zero)

                CloseHandle(tokenDuplicate);

 

        }

 

        /// <summary>

        /// ,返回操作前的用户权限。

        /// </summary>

        public void Dispose()

        {

            impersonationContext.Undo();           

        }

 

        // ,返回操作前的用户权限。

        void IDisposable.Dispose()

        {

            impersonationContext.Undo();

        }

 

 

        /// <summary>

        /// 返回为执行模操作前的用

        /// </summary>

        private void Undo()

        {

            if (current != null)

            {

                current.Impersonate();

                current = null;

            }

        }

     }

}

本文地址:http://www.cnblogs.com/Kenr/archive/2009/07/30/1535104.html

posted @ 2009-07-30 15:24 阿米巴原虫 阅读(343) 评论(0) 编辑
  2009年7月27日

下面代码根据用户名,在AD中查询该用户的ID。(需要AD用户阅览权限)

 

        using System.DirectoryServices;

 

        private string GetUserAccount(string userDisplayName)

        {

            string userAccount = string.Empty;

            string DomainName = ConfigurationSettings.AppSettings["DomainName"];

            string FilterStr = "(DisplayName=" + userDisplayName + ")";

            DirectorySearcher FindMe = new DirectorySearcher(DomainName);

            FindMe.Filter = FilterStr;

            System.DirectoryServices.SearchResult FindRes = FindMe.FindOne();

 

            if (FindRes != null)

            {

                userAccount =

                    DomainName + @"\" +

                    FindRes.GetDirectoryEntry().Properties["samAccountname"].Value;

            }

 

            return userAccount;

        }

 

附上域内user所拥有的各种属性一览(根据域的不同而不同)

·         Mandatory attributes:
 
1 cn (Syntax: DirectoryString) Single-valued
 
2 instanceType (Syntax: INTEGER) Single-valued
 
3 nTSecurityDescriptor (Syntax: ObjectSecurityDescriptor) Single-valued
 
4 objectCategory (Syntax: DN) Single-valued
 
5 objectClass (Syntax: OID) Multivalued
 
6 objectSid (Syntax: OctetString) Single-valued
 
7 sAMAccountName (Syntax: DirectoryString) Single-valued

·         Optional attributes:
8 accountExpires [Syntax: INTEGER8] Single-valued
9 accountNameHistory [Syntax: DirectoryString] Multivalued
10 aCSPolicyName [Syntax: DirectoryString] Single-valued
11 adminCount [Syntax: INTEGER] Single-valued
12 adminDescription [Syntax: DirectoryString] Single-valued
13 adminDisplayName [Syntax: DirectoryString] Single-valued
14 allowedAttributes [Syntax: OID] Multivalued
15 allowedAttributesEffective [Syntax: OID] Multivalued
16 allowedChildClasses [Syntax: OID] Multivalued
17 allowedChildClassesEffective [Syntax: OID] Multivalued
18 altRecipient [Syntax: DN] Single-valued
19 altRecipientBL [Syntax: DN] Multivalued
20 altSecurityIdentities [Syntax: DirectoryString] Multivalued
21 assistant [Syntax: DN] Single-valued
22 attributeCertificate [Syntax: OctetString] Multivalued
23 attributeCertificateAttribute [Syntax: OctetString] Multivalued
24 audio [Syntax: OctetString] Multivalued
25 authOrig [Syntax: ORName] Multivalued
26 authOrigBL [Syntax: DN] Multivalued
27 autoReply [Syntax: Boolean] Single-valued
28 autoReplyMessage [Syntax: DirectoryString] Single-valued
29 badPasswordTime [Syntax: INTEGER8] Single-valued
30 badPwdCount [Syntax: INTEGER] Single-valued
31 bridgeheadServerListBL [Syntax: DN] Multivalued
32 businessCategory [Syntax: DirectoryString] Multivalued
33 businessRoles [Syntax: OctetString] Single-valued
34 c [Syntax: DirectoryString] Single-valued
35 canonicalName [Syntax: DirectoryString] Multivalued
36 carLicense [Syntax: DirectoryString] Multivalued
37 co [Syntax: DirectoryString] Single-valued
38 codePage [Syntax: INTEGER] Single-valued
39 comment [Syntax: DirectoryString] Single-valued
40 company [Syntax: DirectoryString] Single-valued
41 controlAccessRights [Syntax: OctetString] Multivalued
42 countryCode [Syntax: INTEGER] Single-valued
43 createTimeStamp [Syntax: GeneralizedTime] Single-valued
44 dBCSPwd [Syntax: OctetString] Single-valued
45 defaultClassStore [Syntax: DN] Multivalued
46 deletedItemFlags [Syntax: INTEGER] Single-valued
47 delivContLength [Syntax: INTEGER] Single-valued
48 deliverAndRedirect [Syntax: Boolean] Single-valued
49 deliveryMechanism [Syntax: INTEGER] Single-valued
50 delivExtContTypes [Syntax: OctetString] Multivalued
51 department [Syntax: DirectoryString] Single-valued
52 departmentNumber [Syntax: DirectoryString] Multivalued
53 description [Syntax: DirectoryString] Multivalued
54 desktopProfile [Syntax: DirectoryString] Single-valued
55 destinationIndicator [Syntax: PrintableString] Multivalued
56 directReports [Syntax: DN] Multivalued
57 displayName [Syntax: DirectoryString] Single-valued
58 displayNamePrintable [Syntax: PrintableString] Single-valued
59 distinguishedName [Syntax: DN] Single-valued
60 division [Syntax: DirectoryString] Single-valued
61 dLMemDefault [Syntax: INTEGER] Single-valued
62 dLMemRejectPerms [Syntax: ORName] Multivalued
63 dLMemRejectPermsBL [Syntax: DN] Multivalued
64 dLMemSubmitPerms [Syntax: ORName] Multivalued
65 dLMemSubmitPermsBL [Syntax: DN] Multivalued
66 dnQualifier [Syntax: DirectoryString] Single-valued
67 dSASignature [Syntax: OctetString] Single-valued
68 dSCorePropagationData [Syntax: GeneralizedTime] Multivalued
69 dynamicLDAPServer [Syntax: DN] Single-valued
70 employeeID [Syntax: DirectoryString] Single-valued
71 employeeNumber [Syntax: DirectoryString] Single-valued
72 employeeType [Syntax: DirectoryString] Single-valued
73 enabledProtocols [Syntax: INTEGER] Single-valued
74 expirationTime [Syntax: UTCTime] Single-valued
75 extensionAttribute1 [Syntax: DirectoryString] Single-valued
76 extensionAttribute10 [Syntax: DirectoryString] Single-valued
77 extensionAttribute11 [Syntax: DirectoryString] Single-valued
78 extensionAttribute12 [Syntax: DirectoryString] Single-valued
79 extensionAttribute13 [Syntax: DirectoryString] Single-valued
80 extensionAttribute14 [Syntax: DirectoryString] Single-valued
81 extensionAttribute15 [Syntax: DirectoryString] Single-valued
82 extensionAttribute2 [Syntax: DirectoryString] Single-valued
83 extensionAttribute3 [Syntax: DirectoryString] Single-valued
84 extensionAttribute4 [Syntax: DirectoryString] Single-valued
85 extensionAttribute5 [Syntax: DirectoryString] Single-valued
86 extensionAttribute6 [Syntax: DirectoryString] Single-valued
87 extensionAttribute7 [Syntax: DirectoryString] Single-valued
88 extensionAttribute8 [Syntax: DirectoryString] Single-valued
89 extensionAttribute9 [Syntax: DirectoryString] Single-valued
90 extensionData [Syntax: OctetString] Multivalued
91 extensionName [Syntax: DirectoryString] Multivalued
92 facsimileTelephoneNumber [Syntax: DirectoryString] Single-valued
93 flags [Syntax: INTEGER] Single-valued
94 folderPathname [Syntax: DirectoryString] Single-valued
95 formData [Syntax: OctetString] Single-valued
96 forwardingAddress [Syntax: DirectoryString] Single-valued
97 fromEntry [Syntax: Boolean] Multivalued
98 frsComputerReferenceBL [Syntax: DN] Multivalued
99 fRSMemberReferenceBL [Syntax: DN] Multivalued
100 fSMORoleOwner [Syntax: DN] Single-valued
101 garbageCollPeriod [Syntax: INTEGER] Single-valued
102 generationQualifier [Syntax: DirectoryString] Single-valued
103 givenName [Syntax: DirectoryString] Single-valued
104 groupMembershipSAM [Syntax: OctetString] Single-valued
105 groupPriority [Syntax: DirectoryString] Multivalued
106 groupsToIgnore [Syntax: DirectoryString] Multivalued
107 heuristics [Syntax: INTEGER] Single-valued
108 homeDirectory [Syntax: DirectoryString] Single-valued
109 homeDrive [Syntax: DirectoryString] Single-valued
110 homeMDB [Syntax: DN] Single-valued
111 homeMTA [Syntax: DN] Single-valued
112 homePhone [Syntax: DirectoryString] Single-valued
113 homePostalAddress [Syntax: DirectoryString] Single-valued
114 houseIdentifier [Syntax: DirectoryString] Multivalued
115 importedFrom [Syntax: DirectoryString] Single-valued
116 info [Syntax: DirectoryString] Single-valued
117 initials [Syntax: DirectoryString] Single-valued
118 internationalISDNNumber [Syntax: NumericString] Multivalued
119 internetEncoding [Syntax: INTEGER] Single-valued
120 ipPhone [Syntax: DirectoryString] Single-valued
121 isCriticalSystemObject [Syntax: Boolean] Single-valued
122 isDeleted [Syntax: Boolean] Single-valued
123 isPrivilegeHolder [Syntax: DN] Multivalued
124 jpegPhoto [Syntax: OctetString] Multivalued
125 kMServer [Syntax: DN] Single-valued
126 l [Syntax: DirectoryString] Single-valued
127 labeledURI [Syntax: DirectoryString] Multivalued
128 language [Syntax: DirectoryString] Single-valued
129 languageCode [Syntax: INTEGER] Single-valued
130 lastKnownParent [Syntax: DN] Single-valued
131 lastLogoff [Syntax: INTEGER8] Single-valued
132 lastLogon [Syntax: INTEGER8] Single-valued
133 lastLogonTimestamp [Syntax: INTEGER8] Single-valued
134 legacyExchangeDN [Syntax: CaseIgnoreString] Single-valued
135 lmPwdHistory [Syntax: OctetString] Multivalued
136 localeID [Syntax: INTEGER] Multivalued
137 lockoutTime [Syntax: INTEGER8] Single-valued
138 logonCount [Syntax: INTEGER] Single-valued
139 logonHours [Syntax: OctetString] Single-valued
140 logonWorkstation [Syntax: OctetString] Single-valued
141 mail [Syntax: DirectoryString] Single-valued
142 mailNickname [Syntax: DirectoryString] Single-valued
143 managedObjects [Syntax: DN] Multivalued
144 manager [Syntax: DN] Single-valued
145 mAPIRecipient [Syntax: Boolean] Single-valued
146 masteredBy [Syntax: DN] Multivalued
147 maxStorage [Syntax: INTEGER8] Single-valued
148 mDBOverHardQuotaLimit [Syntax: INTEGER] Single-valued
149 mDBOverQuotaLimit [Syntax: INTEGER] Single-valued
150 mDBStorageQuota [Syntax: INTEGER] Single-valued
151 mDBUseDefaults [Syntax: Boolean] Single-valued
152 memberOf [Syntax: DN] Multivalued
153 mhsORAddress [Syntax: DirectoryString] Multivalued
154 middleName [Syntax: DirectoryString] Single-valued
155 mobile [Syntax: DirectoryString] Single-valued
156 modifyTimeStamp [Syntax: GeneralizedTime] Single-valued
157 mS-DS-ConsistencyChildCount [Syntax: INTEGER] Single-valued
158 mS-DS-ConsistencyGuid [Syntax: OctetString] Single-valued
159 mS-DS-CreatorSID [Syntax: OctetString] Single-valued
160 msCOM-PartitionSetLink [Syntax: DN] Multivalued
161 msCOM-UserLink [Syntax: DN] Multivalued
162 msCOM-UserPartitionSetLink [Syntax: DN] Single-valued
163 msDRM-IdentityCertificate [Syntax: OctetString] Multivalued
164 msDS-AllowedToDelegateTo [Syntax: DirectoryString] Multivalued
165 msDS-Approx-Immed-Subordinates [Syntax: INTEGER] Single-valued
166 msDS-Cached-Membership [Syntax: OctetString] Single-valued
167 msDS-Cached-Membership-Time-Stamp [Syntax: INTEGER8] Single-valued
168 msDS-KeyVersionNumber [Syntax: INTEGER] Single-valued
169 msDs-masteredBy [Syntax: DN] Multivalued
170 msDS-MembersForAzRoleBL [Syntax: DN] Multivalued
171 msDS-NCReplCursors [Syntax: DirectoryString] Multivalued
172 msDS-NCReplInboundNeighbors [Syntax: DirectoryString] Multivalued
173 msDS-NCReplOutboundNeighbors [Syntax: DirectoryString] Multivalued
174 msDS-NonMembersBL [Syntax: DN] Multivalued
175 msDS-ObjectReferenceBL [Syntax: DN] Multivalued
176 msDS-OperationsForAzRoleBL [Syntax: DN] Multivalued
177 msDS-OperationsForAzTaskBL [Syntax: DN] Multivalued
178 msDS-ReplAttributeMetaData [Syntax: DirectoryString] Multivalued
179 msDS-ReplValueMetaData [Syntax: DirectoryString] Multivalued
180 msDS-Site-Affinity [Syntax: OctetString] Multivalued
181 msDS-TasksForAzRoleBL [Syntax: DN] Multivalued
182 msDS-TasksForAzTaskBL [Syntax: DN] Multivalued
183 msDS-User-Account-Control-Computed [Syntax: INTEGER] Single-valued
184 msExchADCGlobalNames [Syntax: DirectoryString] Multivalued
185 msExchALObjectVersion [Syntax: INTEGER] Single-valued
186 msExchAssistantName [Syntax: DirectoryString] Single-valued
187 msExchConferenceMailboxBL [Syntax: DN] Single-valued
188 msExchControllingZone [Syntax: DN] Single-valued
189 msExchCustomProxyAddresses [Syntax: DirectoryString] Multivalued
190 msExchExpansionServerName [Syntax: DirectoryString] Single-valued
191 msExchFBURL [Syntax: DirectoryString] Single-valued
192 msExchHideFromAddressLists [Syntax: Boolean] Single-valued
193 msExchHomeServerName [Syntax: DirectoryString] Single-valued
194 msExchHouseIdentifier [Syntax: DirectoryString] Single-valued
195 msExchIMACL [Syntax: OctetString] Multivalued
196 msExchIMAddress [Syntax: PrintableString] Single-valued
197 msExchIMAPOWAURLPrefixOverride [Syntax: DirectoryString] Single-valued
198 msExchIMMetaPhysicalURL [Syntax: PrintableString] Single-valued
199 msExchIMPhysicalURL [Syntax: PrintableString] Single-valued
200 msExchIMVirtualServer [Syntax: DN] Single-valued
201 msExchInconsistentState [Syntax: INTEGER] Single-valued
202 msExchLabeledURI [Syntax: DirectoryString] Multivalued
203 msExchMailboxFolderSet [Syntax: INTEGER] Single-valued
204 msExchMailboxGuid [Syntax: OctetString] Single-valued
205 msExchMailboxSecurityDescriptor [Syntax: ObjectSecurityDescriptor] Single-valued
206 msExchMailboxUrl [Syntax: DirectoryString] Single-valued
207 msExchMasterAccountSid [Syntax: OctetString] Single-valued
208 msExchOmaAdminExtendedSettings [Syntax: DirectoryString] Multivalued
209 msExchOmaAdminWirelessEnable [Syntax: INTEGER] Single-valued
210 msExchOriginatingForest [Syntax: DirectoryString] Multivalued
211 msExchPfRootUrl [Syntax: DirectoryString] Single-valued
212 msExchPoliciesExcluded [Syntax: DirectoryString] Multivalued
213 msExchPoliciesIncluded [Syntax: DirectoryString] Multivalued
214 msExchPolicyEnabled [Syntax: Boolean] Single-valued
215 msExchPolicyOptionList [Syntax: OctetString] Multivalued
216 msExchPreviousAccountSid [Syntax: OctetString] Single-valued
217 msExchProxyCustomProxy [Syntax: DirectoryString] Multivalued
218 msExchQueryBaseDN [Syntax: DN] Single-valued
219 msExchRecipLimit [Syntax: INTEGER] Single-valued
220 msExchRequireAuthToSendTo [Syntax: Boolean] Single-valued
221 msExchResourceGUID [Syntax: DirectoryString] Multivalued
222 msExchResourceProperties [Syntax: DirectoryString] Multivalued
223 msExchTUIPassword [Syntax: OctetString] Single-valued
224 msExchTUISpeed [Syntax: INTEGER] Single-valued
225 msExchTUIVolume [Syntax: INTEGER] Single-valued
226 msExchUnmergedAttsPt [Syntax: OctetString] Single-valued
227 msExchUseOAB [Syntax: DN] Single-valued
228 msExchUserAccountControl [Syntax: INTEGER] Single-valued
229 msExchVoiceMailboxID [Syntax: DirectoryString] Single-valued
230 msIIS-FTPDir [Syntax: DirectoryString] Single-valued
231 msIIS-FTPRoot [Syntax: DirectoryString] Single-valued
232 mSMQDigests [Syntax: OctetString] Multivalued
233 mSMQDigestsMig [Syntax: OctetString] Multivalued
234 mSMQSignCertificates [Syntax: OctetString] Single-valued
235 mSMQSignCertificatesMig [Syntax: OctetString] Single-valued
236 msNPAllowDialin [Syntax: Boolean] Single-valued
237 msNPCallingStationID [Syntax: IA5String] Multivalued
238 msNPSavedCallingStationID [Syntax: IA5String] Multivalued
239 msRADIUSCallbackNumber [Syntax: IA5String] Single-valued
240 msRADIUSFramedIPAddress [Syntax: INTEGER] Single-valued
241 msRADIUSFramedRoute [Syntax: IA5String] Multivalued
242 msRADIUSServiceType [Syntax: INTEGER] Single-valued
243 msRASSavedCallbackNumber [Syntax: IA5String] Single-valued
244 msRASSavedFramedIPAddress [Syntax: INTEGER] Single-valued
245 msRASSavedFramedRoute [Syntax: IA5String] Multivalued
246 msRTCSIP-ArchivingEnabled [Syntax: INTEGER] Single-valued
247 msRTCSIP-FederationEnabled [Syntax: Boolean] Single-valued
248 msRTCSIP-InternetAccessEnabled [Syntax: Boolean] Single-valued
249 msRTCSIP-OriginatorSid [Syntax: OctetString] Single-valued
250 msRTCSIP-PrimaryHomeServer [Syntax: DN] Single-valued
251 msRTCSIP-PrimaryUserAddress [Syntax: DirectoryString] Single-valued
252 msRTCSIP-TargetHomeServer [Syntax: DN] Single-valued
253 msRTCSIP-UserEnabled [Syntax: Boolean] Single-valued
254 msRTCSIP-UserExtension [Syntax: DirectoryString] Multivalued
255 name [Syntax: DirectoryString] Single-valued
256 netbootSCPBL [Syntax: DN] Multivalued
257 networkAddress [Syntax: CaseIgnoreString] Multivalued
258 nonSecurityMemberBL [Syntax: DN] Multivalued
259 ntPwdHistory [Syntax: OctetString] Multivalued
260 o [Syntax: DirectoryString] Multivalued
261 objectGUID [Syntax: OctetString] Single-valued
262 objectVersion [Syntax: INTEGER] Single-valued
263 operatorCount [Syntax: INTEGER] Single-valued
264 otherFacsimileTelephoneNumber [Syntax: DirectoryString] Multivalued
265 otherHomePhone [Syntax: DirectoryString] Multivalued
266 otherIpPhone [Syntax: DirectoryString] Multivalued
267 otherLoginWorkstations [Syntax: DirectoryString] Multivalued
268 otherMailbox [Syntax: DirectoryString] Multivalued
269 otherMobile [Syntax: DirectoryString] Multivalued
270 otherPager [Syntax: DirectoryString] Multivalued
271 otherTelephone [Syntax: DirectoryString] Multivalued
272 otherWellKnownObjects [Syntax: DNWithBinary] Multivalued
273 ou [Syntax: DirectoryString] Multivalued
274 ownerBL [Syntax: DN] Multivalued
275 pager [Syntax: DirectoryString] Single-valued
276 partialAttributeDeletionList [Syntax: OctetString] Single-valued
277 partialAttributeSet [Syntax: OctetString] Single-valued
278 personalPager [Syntax: DirectoryString] Single-valued
279 personalTitle [Syntax: DirectoryString] Single-valued
280 photo [Syntax: OctetString] Multivalued
281 physicalDeliveryOfficeName [Syntax: DirectoryString] Single-valued
282 pOPCharacterSet [Syntax: DirectoryString] Single-valued
283 pOPContentFormat [Syntax: DirectoryString] Single-valued
284 possibleInferiors [Syntax: OID] Multivalued
285 postalAddress [Syntax: DirectoryString] Multivalued
286 postalCode [Syntax: DirectoryString] Single-valued
287 postOfficeBox [Syntax: DirectoryString] Multivalued
288 preferredDeliveryMethod [Syntax: INTEGER] Multivalued
289 preferredLanguage [Syntax: DirectoryString] Single-valued
290 preferredOU [Syntax: DN] Single-valued
291 primaryGroupID [Syntax: INTEGER] Single-valued
292 primaryInternationalISDNNumber [Syntax: DirectoryString] Single-valued
293 primaryTelexNumber [Syntax: DirectoryString] Single-valued
294 profilePath [Syntax: DirectoryString] Single-valued
295 protocolSettings [Syntax: DirectoryString] Multivalued
296 proxiedObjectName [Syntax: DNWithBinary] Single-valued
297 proxyAddresses [Syntax: DirectoryString] Multivalued
298 publicDelegates [Syntax: DN] Multivalued
299 publicDelegatesBL [Syntax: DN] Multivalued
300 pwdLastSet [Syntax: INTEGER8] Single-valued
301 queryPolicyBL [Syntax: DN] Multivalued
302 registeredAddress [Syntax: OctetString] Multivalued
303 replicatedObjectVersion [Syntax: INTEGER] Single-valued
304 replicationSensitivity [Syntax: INTEGER] Single-valued
305 replicationSignature [Syntax: OctetString] Single-valued
306 replPropertyMetaData [Syntax: OctetString] Single-valued
307 replUpToDateVector [Syntax: OctetString] Single-valued
308 repsFrom [Syntax: OctetString] Multivalued
309 repsTo [Syntax: OctetString] Multivalued
310 revision [Syntax: INTEGER] Single-valued
311 rid [Syntax: INTEGER] Single-valued
312 roomNumber [Syntax: DirectoryString] Multivalued
313 sAMAccountType [Syntax: INTEGER] Single-valued
314 scriptPath [Syntax: DirectoryString] Single-valued
315 sDRightsEffective [Syntax: INTEGER] Single-valued
316 secretary [Syntax: DN] Multivalued
317 securityIdentifier [Syntax: OctetString] Single-valued
318 securityProtocol [Syntax: OctetString] Multivalued
319 seeAlso [Syntax: DN] Multivalued
320 serialNumber [Syntax: PrintableString] Multivalued
321 serverReferenceBL [Syntax: DN] Multivalued
322 servicePrincipalName [Syntax: DirectoryString] Multivalued
323 showInAddressBook [Syntax: DN] Multivalued
324 showInAdvancedViewOnly [Syntax: Boolean] Single-valued
325 sIDHistory [Syntax: OctetString] Multivalued
326 siteObjectBL [Syntax: DN] Multivalued
327 sn [Syntax: DirectoryString] Single-valued
328 st [Syntax: DirectoryString] Single-valued
329 street [Syntax: DirectoryString] Single-valued
330 streetAddress [Syntax: DirectoryString] Single-valued
331 structuralObjectClass [Syntax: OID] Multivalued
332 submissionContLength [Syntax: INTEGER] Single-valued
333 subRefs [Syntax: DN] Multivalued
334 subSchemaSubEntry [Syntax: DN] Multivalued
335 supplementalCredentials [Syntax: OctetString] Multivalued
336 supportedAlgorithms [Syntax: OctetString] Single-valued
337 systemFlags [Syntax: INTEGER] Single-valued
338 targetAddress [Syntax: DirectoryString] Single-valued
339 telephoneAssistant [Syntax: DirectoryString] Single-valued
340 telephoneNumber [Syntax: DirectoryString] Single-valued
341 teletexTerminalIdentifier [Syntax: OctetString] Multivalued
342 telexNumber [Syntax: OctetString] Multivalued
343 terminalServer [Syntax: OctetString] Single-valued
344 textEncodedORAddress [Syntax: DirectoryString] Single-valued
345 thumbnailLogo [Syntax: OctetString] Single-valued
346 thumbnailPhoto [Syntax: OctetString] Single-valued
347 title [Syntax: DirectoryString] Single-valued
348 tokenGroups [Syntax: OctetString] Multivalued
349 tokenGroupsGlobalAndUniversal [Syntax: OctetString] Multivalued
350 tokenGroupsNoGCAcceptable [Syntax: OctetString] Multivalued
351 uid [Syntax: DirectoryString] Multivalued
352 unauthOrig [Syntax: ORName] Multivalued
353 unauthOrigBL [Syntax: DN] Multivalued
354 unicodePwd [Syntax: OctetString] Single-valued
355 unmergedAtts [Syntax: OctetString] Single-valued
356 url [Syntax: DirectoryString] Multivalued
357 userAccountControl [Syntax: INTEGER] Single-valued
358 userCert [Syntax: OctetString] Single-valued
359 userCertificate [Syntax: OctetString] Multivalued
360 userParameters [Syntax: DirectoryString] Single-valued
361 userPassword [Syntax: OctetString] Multivalued
362 userPKCS12 [Syntax: OctetString] Multivalued
363 userPrincipalName [Syntax: DirectoryString] Single-valued
364 userSharedFolder [Syntax: DirectoryString] Single-valued
365 userSharedFolderOther [Syntax: DirectoryString] Multivalued
366 userSMIMECertificate [Syntax: OctetString] Multivalued
367 userWorkstations [Syntax: DirectoryString] Single-valued
368 uSNChanged [Syntax: INTEGER8] Single-valued
369 uSNCreated [Syntax: INTEGER8] Single-valued
370 uSNDSALastObjRemoved [Syntax: INTEGER8] Single-valued
371 USNIntersite [Syntax: INTEGER] Single-valued
372 uSNLastObjRem [Syntax: INTEGER8] Single-valued
373 uSNSource [Syntax: INTEGER8] Single-valued
374 versionNumber [Syntax: INTEGER] Single-valued
375 wbemPath [Syntax: DirectoryString] Multivalued
376 wellKnownObjects [Syntax: DNWithBinary] Multivalued
377 whenChanged [Syntax: GeneralizedTime] Single-valued
378 whenCreated [Syntax: GeneralizedTime] Single-valued
379 wWWHomePage [Syntax: DirectoryString] Single-valued
380 x121Address [Syntax: NumericString] Multivalued
381 x500uniqueIdentifier [Syntax: OctetString] Multivalued

posted @ 2009-07-27 13:17 阿米巴原虫 阅读(241) 评论(0) 编辑
  2009年7月9日

当在文档库或者列表内上传新的项目时,系统会自己在新项目的后面或者前面(英文版,中文版服务器位置不同)加上【!New】或者【! 新】,如下。

默认的话,新建列表项两天内都会挂着这个标识。

修改默认天数的方法

1.    使用STSADM.EXE

stsadm.exe -o setproperty -propertyname days-to-show-new-icon -propertyvalue [标识表示天数,例:3 ] -url [服务器地址,例:http://abc:9527 ]

如果单纯查询标识表示天数,可以用下列命令

stsadm -o getproperty -propertyname days-to-show-new-icon –url [服务器地址,例:http://abc:9528]

2.    使用MOSSAPI

修改下列参数

SPWebApplication.DaysToShowNewIndicator

 

无论使用上面中的哪一个,如果把值设为“0”,那么标识将不再表示。

顺便一提,【!New】标识默认保存在MOSS服务器的下列地址

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\下面的TEMPLATE\LAYOUTS\1041\IMAGES文件夹里的“New.gif”图片文件。

posted @ 2009-07-09 16:28 阿米巴原虫 阅读(247) 评论(0) 编辑
  2009年6月29日

五月末微软爆出的重大bugMOSS2007等一系列Server产品在升级为SP2之后,成为试用版问题-----已经解决。

 

具体参考Microsoft SharePoint Team Blog

http://blogs.msdn.com/sharepoint/archive/2009/06/25/service-pack-2-update.aspx

posted @ 2009-06-29 14:09 阿米巴原虫 阅读(313) 评论(0) 编辑
  2009年6月24日
摘要: 之前有写过能发送邮件的小工具,基本做法就是先在代码中写死一封HTML邮件的格式,然后用适当的方法取得外部的几个值填到预设的参数里,最后把合体后的string类型邮件发出去。简单的邮件还好,当内容稍微多一点,比如输出数据库的一个表,又或者邮件格式经常要变动的,就感觉很麻烦很受拘束。后来看到了别人用XSLT做的一个邮件模板,很受启发。自己也尝试了一下,就有了这篇文章。下面这个方法是从数据库里搜索符合条...阅读全文
posted @ 2009-06-24 13:33 阿米巴原虫 阅读(306) 评论(0) 编辑
  2009年6月22日
摘要: MOSS2007使用了多达26个不同的CSS文件,其中CORE.CSS为主要的CSS文件,被母板页使用并向下继承。默认的CORE.CSS文件保存在MOSS服务器的如下地址C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\1041\STYLES\CORE.CSS可以修改CO...阅读全文
posted @ 2009-06-22 14:04 阿米巴原虫 阅读(380) 评论(0) 编辑
  2009年6月2日
摘要: 引用请注明出处,谢谢!by. 阿米巴原虫 “SPSiteDataQuery”,可以用来进行跨站多列表混合查询,检索同一个网站集的或者指定网站中符合某项条件的所有列表项的集合。每个SPWeb对象都包含一个GetSiteData方法,通过传递一个SPSiteDataQuery实例作为方法的参数,返回一个DataTable类型的结果。 当我们使用SPSiteDataQuery查询...阅读全文
posted @ 2009-06-02 09:57 阿米巴原虫 阅读(604) 评论(2) 编辑
  2009年4月28日
posted @ 2009-04-28 09:47 阿米巴原虫 阅读(142) 评论(0) 编辑
  2009年4月27日
posted @ 2009-04-27 15:00 阿米巴原虫 阅读(114) 评论(0) 编辑
昵称:阿米巴原虫
园龄:2年11个月
粉丝:2
关注:1
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

搜索

 
 

常用链接

我的标签

随笔分类

随笔档案

最新评论

阅读排行榜

评论排行榜

推荐排行榜