posts - 72, comments - 66, trackbacks - 0, articles - 0

          SUMMARY

          This article contains information about registry entries that relate to the Kerberos version 5 authentication protocol in Microsoft Windows Server 2003.


          INTRODUCTION

          Kerberos is an authentication mechanism that is used to verify user or host identity. Kerberos is the preferred authentication method for services in Windows Server 2003.

          If you are running Windows Server 2003, you can modify Kerberos parameters to help troubleshoot Kerberos authentication issues or to test the Kerberos protocol. To do this, add or modify the registry entries that are listed in the "More Information" section.

          MORE INFORMATION

          Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
          322756 (http://support.microsoft.com/kb/322756/) How to back up and restore the registry in Windows
          Note After you finish troubleshooting or testing the Kerberos protocol, remove any registry entries that you add. Otherwise, performance of your computer may be affected.

          Registry entries and values under the Parameters key

          The registry entries that are listed in this section must be added to the following registry subkey:
          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
          Note If the Parameters key is not listed under Kerberos, you must create the key.
          Entry: SkewTime
          Type: REG_DWORD
          Default Value: 5 (minutes)

          This value is the maximum time difference that is permitted between the client computer and the server that accepts Kerberos authentication. In Windows 2000 checked build version, the default SkewTime value is 2 hours.

          Note A checked build version of the Windows operating system is used in production and testing environments. (A checked build is also known as a debug version.) A checked build has many compiler optimizations turned off. This kind of build helps trace the cause of problems in system software. A checked build turns on many debugging checks in the operating system code and in the system drivers. These debugging checks help the checked build identify internal inconsistencies as soon as they occur. A checked build is larger and is slower to run than an end-user version of Windows.

          An end-user version of Windows is also known as a free build version or a retail-build version. In a free build version, debugging information is removed, and Windows is built with full compiler optimizations. A free build version is faster and uses less memory than a checked build version.
          Entry: LogLevel
          Type: REG_DWORD
          Default Value: 0

          This value indicates whether events are logged in the system event log. If this value is set to any non-zero value, all Kerberos-related events are logged in the system event log.
          Entry: MaxPacketSize
          Type: REG_DWORD
          Default Value: 1465 (bytes)

          This value is the maximum User Datagram Protocol (UDP) packet size. If the packet size exceeds this value, TCP is used.
          Entry: StartupTime
          Type: REG_DWORD
          Default Value: 120 (seconds)

          This value is the time that Windows waits for the Key Distribution Center (KDC) to start before Windows gives up.
          Entry: KdcWaitTime
          Type: REG_DWORD
          Default Value: 10 (seconds)

          This value is the time Windows waits for a response from a KDC.
          Entry: KdcBackoffTime
          Type: REG_DWORD
          Default Value: 10 (seconds)


          This value is the time between successive calls to the KDC if the previous call failed.
          Entry: KdcSendRetries
          Type: REG_DWORD
          Default Value: 3

          This value is the number of times that a client will try to contact a KDC.
          Entry: DefaultEncryptionType
          Type: REG_DWORD
          Default Value: 23 (decimal) or 0x17 (hexadecimal)

          This value indicates the default encryption type for pre-authentication.
          Entry: FarKdcTimeout
          Type: REG_DWORD
          Default Value: 10 (minutes)

          This is the time-out value that is used to invalidate a domain controller from a different site in the domain controller cache.
          Entry: NearKdcTimeout
          Type: REG_DWORD
          Default Value: 30 (minutes)

          This is the time-out value that is used to invalidate a domain controller in the same site in the domain controller cache.
          Entry: StronglyEncryptDatagram
          Type: REG_BOOL
          Default Value: FALSE

          This value contains a flag that indicates whether to use 128-bit encryption for datagram packets.
          Entry: MaxReferralCount
          Type: REG_DWORD
          Default Value: 6

          This value is the number of KDC referrals that a client pursues before the client gives up.
          Entry: KerbDebugLevel
          Type: REG_DWORD
          Default Value: 0xFFFFFFFF

          This value is a list of flags that indicate the type and the level of logging that is requested. This kind of logging can be collected on the component level of Kerberos by bitwise or by one or more of the macros that are described in the following table.
          Macro NameValueNote
          DEB_ERROR 0x00000001 This is the default InfoLevel for checked builds. This produces error messages across components.
          DEB_WARN 0x00000002 This macro generates warning messages across components. In some cases, these messages can be ignored.
          DEB_TRACE 0x00000004 This macro enables general tracing events.
          DEB_TRACE_API 0x00000008 This macro enables user API tracing events that are usually logged on entry and on exit to an externally exported function that is implemented through SSPI.
          DEB_TRACE_CRED 0x00000010 This macro enables credentials tracing.
          DEB_TRACE_CTXT 0x00000020 This macro enables context tracing.
          DEB_TRACE_LSESS 0x00000040 This macro enables logon session tracing.
          DEB_TRACE_TCACHE 0x00000080 Not implemented
          DEB_TRACE_LOGON 0x00000100 This macro enables logon tracing such as in LsaApLogonUserEx2().
          DEB_TRACE_KDC 0x00000200 This macro enables tracing before and after calls to KerbMakeKdcCall().
          DEB_TRACE_CTXT2 0x00000400 This macro enables additional context tracing.
          DEB_TRACE_TIME 0x00000800 This macro enables the time skew tracing that is found in Timesync.cxx.
          DEB_TRACE_USER 0x00001000 This macro enables user API tracing that is used together with DEB_TRACE_API and that is found mostly in Userapi.cxx.
          DEB_TRACE_LEAKS 0x00002000
          DEB_TRACE_SOCK 0x00004000 This macro enables Winsock-related events.
          DEB_TRACE_SPN_CACHE 0x00008000 This macro enables events that are related to SPN cache hits and misses.
          DEB_S4U_ERROR 0x00010000 Not implemented
          DEB_TRACE_S4U 0x00020000
          DEB_TRACE_BND_CACHE 0x00040000
          DEB_TRACE_LOOPBACK 0x00080000
          DEB_TRACE_TKT_RENEWAL 0x00100000
          DEB_TRACE_U2U 0x00200000
          DEB_TRACE_LOCKS 0x01000000
          DEB_USE_LOG_FILE 0x02000000 Not implemented
          Entry: MaxTokenSize
          Type: REG_DWORD
          Default Value: 12000 (Decimal)

          This value is the maximum value of the Kerberos token. Microsoft recommends that you set this value to less than 65535.
          Entry: SpnCacheTimeout
          Type: REG_DWORD
          Default Value: 15 minutes

          This value is the lifetime of the Service Principal Names (SPN) cache entries. On domain controllers, the SPN cache is disabled.
          Entry: S4UCacheTimeout
          Type: REG_DWORD
          Default Value: 15 minutes

          This value is the lifetime of the S4U negative cache entries that are used to restrict the number of S4U proxy requests from a particular computer.
          Entry: S4UTicketLifetime
          Type: REG_DWORD
          Default Value: 15 minutes

          This value is the lifetime of tickets that are obtained by S4U proxy requests.
          Entry: RetryPdc
          Type: REG_DWORD
          Default Value: 0 (false)
          Possible values: 0 (false) or any non-zero value (true)

          This value indicates whether the client will contact the primary domain controller for Authentication Service Requests (AS_REQ) if the client receives a password expiration error.
          Entry: RequestOptions
          Type: REG_DWORD
          Default Value: Any RFC 1510 value

          This value indicates whether there are additional options that must be sent as KDC options in Ticket Granting Service requests (TGS_REQ).
          Entry: ClientIpAddress
          Type: REG_DWORD
          Default Value: 0 (This setting is 0 because of Dynamic Host Configuration Protocol and network address translation issues.)
          Possible values: 0 (false) or any non-zero value (true)

          This value indicates whether a client IP address will be added in AS_REQ to force the Caddr field to contain IP addresses in all tickets.
          Entry: TgtRenewalTime
          Type: REG_DWORD
          Default Value: 600 seconds

          This value is the time that Kerberos waits before it tries to renew a Ticket Granting Ticket (TGT) before the ticket expires.
          Entry: AllowTgtSessionKey
          Type: REG_DWORD
          Default Value: 0
          Possible values: 0 (false) or any non-zero value (true)

          This value indicates whether session keys are exported with initial or with cross realm TGT authentication. The default value is false for security reasons.

          Registry entries and values under the Kdc key

          The registry entries that are listed in this section must be added to the following registry subkey:
          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc
          Note If the Kdc key is not listed under Services, you must create the key.
          Entry: KdcUseClientAddresses
          Type: REG_DWORD
          Default Value: 0
          Possible values: 0 (false) or any non-zero value (true)

          This value indicates whether IP addresses will be added in the Ticket-Granting Service Reply (TGS_REP).
          Entry: KdcDontCheckAddresses
          Type: REG_DWORD
          Default Value: 1
          Possible values: 0 (false) or any non-zero value (true)

          This value indicates whether IP addresses for the TGS_REQ and the TGT Caddr field will be checked.
          Entry: NewConnectionTimeout
          Type: REG_DWORD
          Default Value: 50 (seconds)

          This value is the time that an initial TCP endpoint connection will be kept open to receive data before it disconnects.
          Entry: MaxDatagramReplySize
          Type: REG_DWORD
          Default Value: 1465 (decimal, bytes)

          This value is the maximum UDP packet size in TGS_REP and Authentication Service Replies (AS_REP) messages. If the packet size exceeds this value, the KDC returns a KRB_ERR_RESPONSE_TOO_BIG message that requests that the client switch to TCP.
          Entry: KdcExtraLogLevel
          Type: REG_DWORD
          Default Value: 2
          Possible values:
          1 (decimal) or 0x1 (hexadecimal): Audit SPN unknown errors.
          2 (decimal) or 0x2 (hexadecimal): Log PKINIT errors. (PKINIT is an Internet Engineering Task Force (IETF) Internet draft for "Public Key Cryptography for Initial Authentication in Kerberos.")
          4 (decimal) or 0x4 (hexadecimal): Log all KDC errors.
          This value indicates what information the KDC will write to event logs and to audits.
          Entry: KdcDebugLevel
          Type: REG_DWORD
          Default Value: 1 for checked build, 0 for free build

          This value indicates whether debug logging is on (1) or off (0).

          If the value is set to 0x10000000 (hexadecimal) or 268435456 (decimal), specific file or line information will be returned in the edata field of KERB_ERRORS as PKERB_EXT_ERROR errors during a KDC processing failure.

          摘自:http://support.microsoft.com/?scid=kb%3Ben-us%3B837361&x=11&y=18

          posted @ 2008-07-01 16:49 Fingki.li 閱讀(1006) | 評論 (0)編輯 收藏

          CAPICOM  
              Windows系統中的安全組件.
          CAPICOM是一個COM模型的組件,可以在Windows環境下各種語言中使用。而且,CAPICOM中的大多數接口都是“腳本安全”的,這意味著你可以在瀏覽器網頁腳本中安全地使用這些接口所提供的功能。

          目前,CAPICOM共有兩個版本:1.0版和 2.0版。其中,后者在前者的基礎上,提供了一些額外的功能。

          CAPICOM v1.0提供如下功能:

          1、產生和驗證PKCS#7格式的數字簽名;

          2、使用證書加密/解密數據;

          3、使用口令加密/解密數據;

          CAPICOM v2.0額外提供如下功能:

          1、產生和驗證代碼簽名;

          2、支持文件形式的證書;

          3、快速證書搜索;

          4、產生任意數據的哈希值;

          5、支持AES算法(需要Windows .NET Server 2003 Windows XP支持);

          6、支持高級證書屬性,例如:政策、模板。

          CAPICOM是重分發組件,也就是說它沒有被包含在操作系統的中,需要單獨安裝注冊該組件(可以從MS那里免費下載);CAPICOM v1.0 要求Win95WinNT 4.0或更高版本,CAPICOM v2.0 要求Win98 、WinNT 4.0 + SP4 或更高版本

          MSDN中有對CAPICOM的詳細描述,以下提供兩個連接地址:

          CAPICOM使用參考:msdn""Security"" Security(General)""SDK Documentation""Cryptography"" Cryptography Reference""CAPICOM Reference

          CAPICOM例子程序:msdn""Security"" Security(General)""SDK Documentation""Cryptography""

          Using Cryptography""Using CAPICOM

          下載最新的CAPICOM

          http://download.microsoft.com/download/7/7/0/7708ec16-a770-4777-8b85-0fcd05f5ba60/CC2RINST.EXE

          摘自:http://blog.csdn.net/brave1/archive/2005/06/07/389778.aspx

          posted @ 2008-06-30 22:57 Fingki.li 閱讀(470) | 評論 (0)編輯 收藏

          最近越發感到日志對于軟件調試的重要,尤其是遠程調試。
          Log4j有三個主要的組件:Loggers,Appenders和Layouts.
          Loggers:日志類別
          Appenders日志要輸出的地方
          Layouts日志以何種形式輸出。
          1.Loggers 日志類別
          Loggers組件在此系統中被分為五個級別:DEBUG、INFO、WARN、ERROR和FATAL。
          這五個級別是有順序的,DEBUG < INFO < WARN < ERROR < FATAL
          說明:假設你的Logger級別為A,則所有級別大于等于A的方法的參數信息都將輸出到指定位置。
          (舉個例子更易懂)如果你的Logger級別為INFO,則所有用.info(somemessage),.warn(somemessage),.error(somemessage),.fatal(somemessage)方法的參數信息都將輸出到指定位置;但調用.debug(somemessage)方法參數信息不會輸出。
          2.Appenders 日志要輸出的地方
          Log4j日志系統允許把日志輸出到不同的地方,如控制臺(Console)、文件(Files)、根據天數或者文件大小產生新的文件、以流的形式發送到其它地方等等。
          org.apache.log4j.ConsoleAppender(控制臺)
          org.apache.log4j.FileAppender(文件)
          org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件)
          org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)
          org.apache.log4j.WriterAppender(將日志信息以流格式發送到任意指定的地方)
          3.Layouts 日志以何種形式輸出
          Layouts提供了四種日志輸出樣式,如根據HTML樣式、自由指定樣式、包含日志級別與信息的樣式和包含日志時間、線程、類別等信息的樣式等等。
          org.apache.log4j.HTMLLayout(以HTML表格形式布局)
          org.apache.log4j.PatternLayout(可以靈活地指定布局模式)
          org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串)
          org.apache.log4j.TTCCLayout(包含日志產生的時間、線程、類別等等信息)

          log4j的具體使用請參照http://logging.apache.org/log4j/1.2/apidocs/index.html(log4j API)

          posted @ 2008-06-25 12:15 Fingki.li 閱讀(304) | 評論 (0)編輯 收藏

          要使用 Kerberos 身份驗證,某種服務必須注冊其名稱(稱為服務主體名稱 (SPN)),以及運行該服務所使用的帳戶。默認情況下,Active Directory® 目錄服務注冊 NetBIOS 或者計算機名,并允許計算機帳戶使用 Kerberos。如果要以不同帳戶或使用不同名稱(例如,如果計算機使用其他的 WINS 或 DNS 名)運行服務,那么您可以使用 Setspn.exe 命令行工具設置 SPN。要設置 SPN,您必須是域管理員。
          Setspn.exe 命令行實用程序可以在 Windows Server 2003 CD-ROM 內的支持工具包中獲得。在window2003中可以運行support tools中的suptools.msi來安裝。

          使用 Setspn.exe

          下面是使用 Setspn.exe 命令行實用程序的基本語法,其中“accountname”可以是單獨的名稱,也可以是域\名稱。

          setspn [parameter] accountname



          Setspn.exe 可以使用下列參數:

          參數 功能 示例
          -R 重置 HOST ServicePrincipalName。 setspn -R computername
          -A 添加任意的 SPN。 setspn -A SPN computername
          -D 刪除任意的 SPN。 setspn -D SPN computername
          -L 列出已注冊的 SPN。 setspn -L SPN computername

          下面的示例使用 Setspn.exe 命令行實用程序注冊以 Domain\UserAccount 運行的應用程序池:

          SETSPN.EXE -A HOST/<your computer name> Domain\UserAccount

          下面的示例注冊 SPN“HOST/daserver1”和“HOST/{DNS of daserver1}”:

          setspn -R daserver1

          下面的示例為計算機“daserver1”注冊 SPN“http/daserver”:

          setspn -A http/daserver daserver1

          下面的示例從計算機“daserver1”刪除 SPN“http/daserver”:

          setspn -D http/daserver daserver1

          posted @ 2008-06-23 17:17 Fingki.li 閱讀(570) | 評論 (0)編輯 收藏

          今天一個朋友問題我一個CVS ERROR。
          ?The server reported an error while performing the "cvs commit" command.
          ccookteammeal: cvs [server aborted]: cannot rename file /web/***/WebRoot/WEB-INF/,web.xml, to /web/***/WebRoot/WEB-INF/web.xml,v: Permission denied

          回想之前用CVS時也遇到過這個經典問題,用戶權限問題:
              問題就出現在目錄的權限上.我們安裝CVS服務器時一般都用的是混合模式登錄,需要windows和CVS共同驗證。
          要登錄CVS,必須同時是CVS用戶和WINDOW用戶,并且這個用戶要對CVS目錄有讀寫權限。
          一般我們新建的CVS用戶,默認在WINDOW里只是普通用戶,對CVS目錄只有讀權限,但沒有寫權限,所以可以獲取文件,但當CVS 提交commit時,會報錯 Permission denied.
              所以,遇到這種情況,就把你的CVS用戶在window(CVS服務器所在的機器)上修改為Administrator權限。
          在網上又摘錄一些問題及解決如下:
          癥狀1:
          cvs chacl default:n
          cvs [chacl aborted]: server does not support chacl
          ***** CVS exited normally with code 1 *****
          解決:是python跟wincvs不兼容,最后用python221+cvsnt-2.0.41+wincvs1.3中文版

          癥狀2:無法checkout模塊
          cvs checkout 大狼的工作目錄 (in directory E:\CVS\sssss)
          cvs server: User user4 cannot access lxwDIR
          ***** CVS exited normally with code 1 *****
          解決:沒有給user4的用戶此工作目錄的讀寫權限

          癥狀3:無法提交修改,加文件等
          cvs commit -m "no message" "新建 文本文檔.txt" (in directory E:\CVS\sssss\zylDIR\)
          cvs [server aborted]: "commit" requires write access to the repository
          ***** CVS exited normally with code 1 *****
          解決:沒有把user4加到writers中去

          癥狀4:無法提交修改,加文件等
          cvs add: Empty password used - try 'cvs login' with a real password
          cvs [add aborted]: authorization failed: server 192.168.0.105 rejected access to E:/cvs/KHRoot for user user2
          ***** CVS exited normally with code 1 *****
          解決:應為我用user1用戶checkout了模塊,但用user2修改文件并提交,或加文件,重新用user2再在其他目錄checkout一下模塊,修改提交就可以了

          癥狀5:無法給模塊附用戶
          cvs chacl user4:rcw
          ***** CVS exited normally with code 1 *****
          cvs [server aborted]: "chacl" requires write access to the repository
          解決,我用user4登錄了,只有administrator有此權限



          posted @ 2008-06-05 14:27 Fingki.li 閱讀(6221) | 評論 (1)編輯 收藏

          一、關于工作與生活

          我有個有趣的觀察,外企公司多的是25-35歲的白領,40歲以上的員工很少,二三十歲的外企員工是意氣風發的, 但外企公司40歲附近的經理人是很尷尬的。我見過的40歲附近的外企經理人大多在一直跳槽,最后大多跳到民企,比方說,唐駿。外企員工的成功很大程度上是 公司的成功,并非個人的成功,西門子的確比國美大,但并不代表西門子中國經理比國美的老板強,甚至可以說差得很遠。而進外企的人往往并不能很早理解這一 點,把自己的成功90%歸功于自己的能力,實際上,外企公司隨便換個中國區總經理并不會給業績帶來什么了不起的影響。好了問題來了,當這些經理人40多歲 了,他們的薪資要求變得很高,而他們的才能其實又不是那么出眾,作為外企公司的老板,你會怎么選擇?有的是只要不高薪水的,要出位的精明強干精力沖沛的年 輕人,有的是,為什么還要用你?

          從上面這個例子,其實可以看到我們的工作軌跡,二三十歲的時候,生活的壓力還比較小,身體還比較好, 上面的父母身體還好,下面又沒有孩子,不用還房貸,也沒有孩子要上大學,當個外企小白領還是很光鮮的,掙得不多也夠花了。但是人終歸要結婚生子,終歸會 老,到了40歲,父母老了,要看病要吃藥,要有人看護,自己要還房貸,要過基本體面的生活,要養小孩……那個時候需要掙多少錢才夠花才重要。所以,看待工 作,眼光要放遠一點,一時的誰高誰低并不能說明什么。

          從這個角度上來說,我不太贊成過于關注第一份工作的薪水,更沒有必要攀比第一份 工作的薪水,這在剛剛出校園的學生中間是很常見的。正常人大概要工作35年,這好比是一場馬拉松比賽,和真正的馬拉松比賽不同的是,這次比賽沒有職業選 手,每個人都只有一次機會。要知到,有很多人甚至堅持不到終點,大多數人最后是走到終點的,只有少數人是跑過終點的,因此在剛開始的時候,去搶領先的位置 并沒有太大的意義。剛進社會的時候如果進500強公司,大概能拿到3k-6k/月的工資,有些特別技術的人才可能可以到8k/月,可問題是,5年以后拿多 少?估計5k-10k了不起了。起點雖然高,但增幅有限,而且,后面的年輕人追趕的壓力越來越大。

          我前兩天問我的一個銷售,你會的這些東西一個新人2年就都學會了,但新人所要求的薪水卻只是你的一半,到時候,你怎么辦?

          職業生涯就像一場體育比賽,有初賽、復賽、決賽。初賽的時候大家都剛剛進社會,大多數都是實力一般的人,這時候努力一點認真一點很快就能讓人脫穎而出, 于是有的人二十多歲做了經理,有的人遲些也終于贏得了初賽,三十多歲成了經理。然后是復賽,能參加復賽的都是贏得初賽的,每個人都有些能耐,在聰明才智上 都不成問題,這個時候再想要勝出就不那么容易了,單靠一點點努力和認真還不夠,要有很強的堅忍精神,要懂得靠團隊的力量,要懂得收服人心,要有長遠的眼 光……

          看上去贏得復賽并不容易,但,還不是那么難。因為這個世界的規律就是給人一點成功的同時讓人驕傲自滿,剛剛贏得初賽的人往往不 知道自己贏得的僅僅是初賽,有了一點小小的成績大多數人都會驕傲自滿起來,認為自己已經懂得了全部,不需要再努力再學習了,他們會認為之所以不能再進一步 已經不是自己的原因了。雖然他們仍然不好對付,但是他們沒有耐性,沒有容人的度量,更沒有清晰長遠的目光。就像一只憤怒的斗牛,雖然猛烈,最終是會敗的, 而贏得復賽的人則象斗牛士一樣,不急不躁,跟隨著自己的節拍,慢慢耗盡對手的耐心和體力。贏得了復賽以后,大約已經是一位很了不起的職業經理人了,當上了 中小公司的總經理,大公司的副總經理,主管著每年幾千萬乃至幾億的生意。

          最終的決賽來了,說實話我自己都還沒有贏得決賽,因此對于決 賽的決勝因素也只能憑自己的猜測而已,這個時候的輸贏或許就像武俠小說里寫得那樣,大家都是高手,只能等待對方犯錯了,要想輕易擊敗對手是不可能的,除了 使上渾身解數,還需要一點運氣和時間。世界的規律依然發揮著作用,贏得復賽的人已經不只是驕傲自滿了,他們往往剛愎自用,聽不進去別人的話,有些人的脾氣 變得暴躁,心情變得浮躁,身體變得糟糕,他們最大的敵人就是他們自己,在決賽中要做的只是不被自己擊敗,等著別人被自己擊敗。這和體育比賽是一樣的,最后 高手之間的比賽,就看誰失誤少誰就贏得了決賽。

          二、根源

          你工作快樂么?你的工作好么?

          有沒 有覺得干了一段時間以后工作很不開心?有沒有覺得自己入錯了行?有沒有覺得自己沒有得到應有的待遇?有沒有覺得工作像一團亂麻每天上班都是一種痛苦?有沒 有很想換個工作?有沒有覺得其實現在的公司并沒有當初想象得那么好?有沒有覺得這份工作是當初因為生存壓力而找的,實在不適合自己?你從工作中得到你想要 得到的了么?你每天開心么?

          天涯上憤怒的人很多,你有沒有想過,你為什么不快樂?你為什么憤怒?

          其實,你不快樂的根源,是因為你不知道要什么!你不知道要什么,所以你不知道去追求什么,你不知道追求什么,所以你什么也得不到。

          我總覺得,職業生涯首先要關注的是自己,自己想要什么?大多數人大概沒想過這個問題,唯一的想法只是——我想要一份工作,我想要一份不錯的薪水,我知道 所有人對于薪水的渴望,可是,你想每隔幾年重來一次找工作的過程么?你想每年都在這種對于工作和薪水的焦急不安中度過么?不想的話,就好好想清楚。飲鴆止 渴,不能因為口渴就拼命喝毒藥。越是焦急,越是覺得自己需要一份工作,越饑不擇食,越想不清楚,越容易失敗,你的經歷越來越差,下一份工作的人看著你的簡 歷就皺眉頭。于是你越喝越渴,越渴越喝,陷入惡性循環。最終只能哀嘆世事不公或者生不逢時,只能到天涯上來發泄一把,在失敗者的共鳴當中尋求一點心理平衡 罷了。大多數人都有生存壓力,我也是,有生存壓力就會有很多焦慮,積極的人會從焦慮中得到動力,而消極的人則會因為焦慮而迷失方向。所有人都必須在壓力下 做出選擇,這就是世道,你喜歡也罷不喜歡也罷。

          一般我們處理的事情分為重要的事情和緊急的事情,如果不做重要的事情就會常常去做緊急 的事情。比如鍛煉身體保持健康是重要的事情,而看病則是緊急的事情。如果不鍛煉身體保持健康,就會常常為了病痛煩惱。又比如防火是重要的事情,而救火是緊 急的事情,如果不注意防火,就要常常救火。找工作也是如此,想好自己究竟要什么是重要的事情,找工作是緊急的事情,如果不想好,就會常常要找工作。往往緊 急的事情給人的壓力比較大,迫使人們去趕緊做,相對來說重要的事情反而沒有那么大的壓力,大多數人做事情都是以壓力為導向的,壓力之下,總覺得非要先做緊 急的事情,結果就是永遠到處救火,永遠沒有停歇的時候。(很多人的工作也像是救火隊一樣忙碌痛苦,也是因為工作中沒有做好重要的事情。)那些說自己活在水 深火熱為了生存顧不上那么多的朋友,今天找工作困難是當初你們沒有做重要的事情,是結果不是原因。如果今天你們還是因為急于要找一份工作而不去思考,那么 或許將來要繼續承受痛苦找工作的結果。

          我始終覺得我要說的話題,沉重了點,需要很多思考,遠比唐笑打武警的話題來的枯燥乏味,但是,天下沒有輕松的成功,成功,要付代價。請先忘記一切的生存壓力,想想這輩子你最想要的是什么?所以,最要緊的事情,先想好自己想要什么。

          三、什么是好工作

          當初微軟有個唐駿,很多大學里的年輕人覺得這才是他們向往的職業生涯,我在清華bbs里發的帖子被這些學子們所不屑,那個時候學生們只想出國或者去外 企,不過如今看來,我還是對的,唐駿去了盛大,陳天橋創立的盛大,一家民營公司。一個高學歷的海歸在500強的公司里拿高薪水,這大約是很多年輕人的夢 想,問題是,每年畢業的大學生都在做這個夢,好的職位卻只有500個。

          人都是要面子的,也是喜歡攀比的,即使在工作上也喜歡攀比,不 管那是不是自己想要的。大家認為外企公司很好,可是好在哪里呢?好吧,他們在比較好的寫字樓,這是你想要的么?他們出差住比較好的酒店,這是你想要的么? 別人會羨慕一份外企公司的工作,這是你想要的么?那一切都是給別人看的,你干嗎要活得那么辛苦給別人看?另一方面,他們薪水福利一般,并沒有特別了不起, 他們的晉升機會比較少,很難做到很高階的主管,他們雖然厭惡常常加班,卻不敢不加班,因為“你不干有得是人干”,大部分情況下會找個臺灣人香港人新加坡人 來管你,而這些人又往往有些莫名其妙的優越感。你想清楚了么?500強一定好么?找工作究竟是考慮你想要什么,還是考慮別人想看什么?

          我的大學同學們大多數都到美國了,甚至畢業這么多年了,還有人最近到國外去了。出國真的有那么好么?我的大學同學們,大多數還是在博士、博士后、訪問學 者地掙扎著,至今只有一個正經在一個美國大學里拿到個正式的教職。國內的教授很難當么?我有幾個表親也去了國外了,他們的父母獨自在國內,沒有人照顧,有 好幾次人在家里昏倒都沒人知道,出國,真的這么光彩么?就像有人說的“很多事情就像看A片,看的人覺得很爽,做的人未必。”

          人總想找到那個最好的,可是,什么是最好的?你覺得是最好的那個,是因為你的確了解,還是因為別人說他是最好的?即使他對于別人是最好的,對于你也一定是最好的么?

          對于自己想要什么,自己要最清楚,別人的意見并不是那么重要。很多人總是常常被別人的意見所影響,親戚的意見,朋友的意見,同事的意見……問題是,你究 竟是要過誰的一生?人的一生不是父母一生的續集,也不是兒女一生的前傳,更不是朋友一生的外篇,只有你自己對自己的一生負責,別人無法也負不起這個責任。 自己做的決定,至少到最后,自己沒什么可后悔。對于大多數正常智力的人來說,所做的決定沒有大的對錯,無論怎么樣的選擇,都是可以嘗試的。比如你沒有考自 己上的那個學校,沒有入現在這個行業,這輩子就過不下去了?就會很失???不見得。

          我想,好工作,應該是適合你的工作,具體點說,應該 是能給你帶來你想要的東西的工作,你或許應該以此來衡量你的工作究竟好不好,而不是拿公司的大小,規模,外企還是國企,是不是有名,是不是上市公司來衡 量。小公司,未必不是好公司,賺錢多的工作,也未必是好工作。你還是要先弄清楚你想要什么,如果你不清楚你想要什么,你就永遠也不會找到好工作,因為你永 遠只看到你得不到的東西,你得到的,都是你不想要的。

          可能,最好的,已經在你的身邊,只是,你還沒有學會珍惜。人們總是盯著得不到的東西,而忽視了那些已經得到的東西。

          四、普通人

          我發現中國人的勵志和國外的勵志存在非常大的不同,中國的勵志比較鼓勵人立下大志愿,臥薪嘗膽,有朝一日成富成貴。而國外的勵志比較鼓勵人勇敢面對現實 生活,面對普通人的困境,雖然結果也是成富成貴,但起點不一樣,相對來說,我覺得后者在操作上更現實,而前者則需要用999個失敗者來堆砌一個成功者的故 事。

          我們都是普通人,普通人的意思就是,概率這件事是很準的。因此,我們不會買彩票中500萬,我們不會成為比爾蓋茨或者李嘉誠,我們不會坐飛機掉下來,我們當中很少的人會創業成功,我們之中有30%的人會離婚,我們之中大部分人會活過65歲……

          所以請你在想自己要什么的時候,要得“現實”一點,你說我想要做李嘉誠,抱歉,我幫不上你。成為比爾蓋茨或者李嘉誠這種人,是靠命的,看我寫的這篇文章 絕對不會讓你成為他們,即使你成為了他們,也絕對不是我這篇文章的功勞。“王侯將相寧有種乎”但真正當皇帝的只有一個人,王侯將相,人也不多。目標定得高 些對于喜歡挑戰的人來說有好處,但對于大多數普通人來說,反而比較容易灰心沮喪,很容易就放棄了。

          回過頭來說,李嘉誠比你有錢大致 50萬倍,他比你更快樂么?或許。有沒有比你快樂50萬倍,一定沒有。他比你最多也就快樂一兩倍,甚至有可能還不如你快樂。尋找自己想要的東西不是和別人 比賽,比誰要得更多更高,比誰的目標更遠大。雖然成為李嘉誠這個目標很宏大,但你并不見得會從這個目標以及追求目標的過程當中獲得快樂,而且基本上你也做 不到。你必須聽聽你內心的聲音,尋找真正能夠使你獲得快樂的東西,那才是你想要的東西。

          你想要的東西,或者我們把它稱之為目標,目標 其實并沒有高低之分,你不需要因為自己的目標沒有別人遠大而不好意思,達到自己的目標其實就是成功,成功有大有小,快樂卻是一樣的。我們追逐成功,其實追 逐的是成功帶來的快樂,而非成功本身。職業生涯的道路上,我們常常會被攀比的心態蒙住眼睛,忘記了追求的究竟是什么,忘記了是什么能使我們更快樂。

          社會上一夜暴富的新聞很多,這些消息,總會在我們的心里面掀起很多漣漪,漣漪多了就變成驚濤駭浪,心里的驚濤駭浪除了打翻承載你目標的小船,并不會使得 你也一夜暴富。“只見賊吃肉,不見賊挨揍。”我們這些普通人既沒有當賊的勇氣,又缺乏當賊的狠辣絕決,雖然羨慕吃肉,卻更害怕挨揍,偶爾看到幾個沒挨揍的 賊就按奈不住,或者心思活動,或者大感不公,真要叫去做賊,卻也不敢。

          我還是過普通人的日子,要普通人的快樂,至少,晚上睡得著覺。

          五、跳槽與積累

          首先要說明,工作是一件需要理智的事情,所以不要在工作上耍個性,天涯上或許會有人覺得你很有個性而叫好,煤氣公司電話公司不會因為覺得你很有個性而免 了你的帳單。當你很帥地炒掉了你的老板,當你很酷地挖苦了一番招聘的HR,賬單還是要照付,只是你賺錢的時間更少了,除了你自己,沒人受損失。

          我并不反對跳槽,但跳槽決不是解決問題的辦法,而且頻繁跳槽的后果是讓人覺得沒有忠誠度可言,而且不能安心工作?,F在很多人從網上找工作,很多找工作的 網站常常給人出些餿主意,要知道他們是盈利性企業,當然要從自身盈利的角度來考慮,大家越是頻繁跳槽頻繁找工作他們越是生意興隆,所以鼓動人們跳槽是他們 的工作。所以他們會常常告訴你,你拿的薪水少了,你享受的福利待遇差了,又是“薪情快報”又是“贊嘆自由奔放的靈魂”。至于是否會因此讓你不能安心,你跳 了槽是否解決問題,是否更加開心,那個,他們管不著。

          要跳槽肯定是有問題,一般來說問題發生了,躲是躲不開的,很多人跳槽是因為這樣 或者那樣的不開心,如果這種不開心,在現在這個公司不能解決,那么在下一個公司多半也解決不掉。你必須相信,90%的情況下,你所在的公司并沒有那么爛, 你認為不錯的公司也沒有那么好。就像圍城里說的,“城里的人拼命想沖出來,而城外的人拼命想沖進去。”每個公司都有每個公司的問題,沒有問題的公司是不存 在的。換個環境你都不知道會碰到什么問題,與其如此,不如就在當下把問題解決掉。很多問題當你真的想要去解決的時候,或許并沒有那么難。有的時候你覺得問 題無法解決,事實上,那只是“你覺得”。

          人生的曲線應該是曲折向上的,偶爾會遇到低谷但大趨勢總歸是曲折向上的,而不是象脈沖波一樣 每每回到起點,我見過不少面試者,30多歲了,四五份工作經歷,每次多則3年,少則1年,30多歲的時候回到起點從一個初級職位開始干起,拿基本初級的薪 水,和20多歲的年輕人一起競爭,不覺得有點辛苦么?這種日子好過么?

          我非常不贊成在一個行業超過3年以后換行業,基本上,35歲以 前我們的生存資本靠打拼,35歲以生存的資本靠的就是積累,這種積累包括人際關系,經驗,人脈,口碑……如果常常更換行業,代表幾年的積累付之東流,一切 從頭開始,如果換了兩次行業,35歲的時候大概只有5年以下的積累,而一個沒有換過行業的人至少有了10年的積累,誰會占優勢?工作到2-3年的時候,很 多人覺得工作不順利,好像到了一個瓶頸,心情煩悶,就想辭職,乃至換一個行業,覺得這樣所有一切煩惱都可以拋開,會好很多。其實這樣做只是讓你從頭開始, 到了時候還是會發生和原來行業一樣的困難,熬過去就向上跨了一大步,要知道每個人都會經歷這個過程,每個人的職業生涯中都會碰到幾個瓶頸,你熬過去了而別 人沒有熬過去你就領先了。跑長跑的人會知道,開始的時候很輕松,但是很快會有第一次的難受,但過了這一段又能跑很長一段,接下來會碰到第二次的難受,堅持 過了以后又能跑一段,如此往復,難受一次比一次厲害,直到堅持不下去了。大多數人第一次就堅持不了了,一些人能堅持到第二次,第三次雖然大家都堅持不住 了,可是跑到這里的人也沒幾個了,這點資本足夠你安穩活這一輩子了。

          一份工作到兩三年的時候,大部分人都會變成熟手,這個時候往往會 陷入不斷的重復,有很多人會覺得厭倦,有些人會覺得自己已經搞懂了一切,從而懶得去尋求進步了。很多時候的跳槽是因為覺得失去興趣了,覺得自己已經完成比 賽了。其實這個時候比賽才剛剛開始,工作兩三年的人,無論是客戶關系,人脈,手下,和領導的關系,在業內的名氣……還都是遠遠不夠的,但稍有成績的人總是 會自我感覺良好的,每個人都覺得自己跟客戶關系鐵得要命,覺得自己在業界的口碑好得很。其實可以肯定地說,一定不是,這個時候,還是要拿出前兩年的干勁 來,穩扎穩打,積累才剛剛開始。

          你足夠了解你的客戶嗎?你知道他最大的煩惱是什么嗎?你足夠了解你的老板么?你知道他最大的煩惱是什 么嗎?你足夠了解你的手下么?你知道他最大的煩惱是什么嗎?如果你不知道,你憑什么覺得自己已經積累夠了?如果你都不了解,你怎么能讓他們幫你的忙,做你 想讓他們做的事情?如果他們不做你想讓他們做的事情,你又何來的成功?

          六、等待

          這是個浮躁的人們最不喜歡的話題,本來不想說這個話題,因為會引起太多的爭論,而我又無意和人爭論這些,但是考慮到對于職業生涯的長久規劃,這是一個躲避不了的話題,還是決定寫一寫,不愛看的請離開吧。

          并不是每次穿紅燈都會被汽車撞,并不是每個罪犯都會被抓到,并不是每個錯誤都會被懲罰,并不是每個貪官都會被槍斃,并不是你的每一份努力都會得到回報, 并不是你的每一次堅持都會有人看到,并不是你每一點付出都能得到公正的回報,并不是你的每一個善意都能被理解……這個,就是世道。好吧,世道不夠好,可 是,你有推翻世道的勇氣么?如果沒有,你有更好的解決辦法么?有很多時候,人需要一點耐心,一點信心。每個人總會輪到幾次不公平的事情,而通常,安心等待 是最好的辦法。

          有很多時候我們需要等待,需要耐得住寂寞,等待屬于你的那一刻。周潤發等待過,劉德華等待過,周星馳等待過,王菲等待 過,張藝謀也等待過……看到了他們如今的功成名就的人,你可曾看到當初他們的等待和耐心?你可曾看到金馬獎影帝在街邊擺地攤?你可曾看到德云社一群人在劇 場里給一位觀眾說相聲?你可曾看到周星馳的角色甚至連一句臺詞都沒有?每一個成功者都有一段低沉苦悶的日子,我幾乎能想象得出來他們借酒澆愁的樣子,我也 能想象得出他們為了生存而掙扎的窘迫。在他們一生最中燦爛美好的日子里,他們渴望成功,但卻兩手空空,一如現在的你。沒有人保證他們將來一定會成功,而他 們的選擇是耐住寂寞。如果當時的他們總念叨著“成功只是屬于特權階級的”,你覺得他們今天會怎樣?

          曾經我也不明白有些人為什么并不比 我有能力卻要坐在我的頭上,年紀比我大就一定要當我的領導么?為什么有些爛人不需要努力就能賺錢?為什么剛剛改革開放的時候的人能那么容易賺錢,而輪到我 們的時候,什么事情都要正規化了?有一天我突然想,我還在上學的時候他們就在社會里掙扎奮斗了,他們在社會上奮斗積累了十幾二十年,我們新人來了,他們有 的我都想要,我這不是在要公平,我這是在要搶劫。因為我要得太急,因為我忍不住寂寞。二十多歲的男人,沒有錢,沒有事業,卻有蓬勃的欲望。

          人總是會遇到挫折的,人總是會有低潮的,人總是會有不被人理解的時候的,人總是有要低聲下氣的時候,這些時候恰恰是人生最關鍵的時候,因為大家都會碰到 挫折,而大多數人過不了這個門檻,你能過,你就成功了。在這樣的時刻,我們需要耐心等待,滿懷信心地去等待,相信,生活不會放棄你,機會總會來的。至少, 你還年輕,你沒有坐牢,沒有生治不了的病,沒有欠還不起的債。比你不幸的人遠遠多過比你幸運的人,你還怕什么?路要一步步走,雖然到達終點的那一步很激動 人心,但大部分的腳步是平凡甚至枯燥的,但沒有這些腳步,或者耐不住這些平凡枯燥,你終歸是無法迎來最后的那些激動人心。

          逆境,是上帝幫你淘汰競爭者的地方。要知道,你不好受,別人也不好受,你堅持不下去了,別人也一樣,千萬不要告訴別人你堅持不住了,那只能讓別人獲得堅持的信心,讓競爭者看著你微笑的面孔,失去信心,退出比賽。勝利屬于那些有耐心的人。

          在最絕望的時候,我會去看電影《ThePursuitofHappyness》《JerryMaguire》,讓自己重新鼓起勇氣,因為,無論什么時 候,我們總還是有希望。當所有的人離開的時候,我不失去希望,我不放棄。每天下班坐在車里,我喜歡哼著《隱形的翅膀》看著窗外,我知道,我在靜靜等待,等 待屬于我的那一刻。

          原貼里伊吉網友的話我很喜歡,抄錄在這里:

          每個人都希望,自己是獨一無二的特殊者

          含著金匙出生、投胎到好家庭、工作安排到電力局拿1w月薪這樣的小概率事件,當然最好輪到自己

          紅軍長征兩萬五、打成右派反革命、胼手胝足犧牲尊嚴去奮斗,最好留給祖輩父輩和別人

          自然,不是每個吃過苦的人都會得到回報

          但是,任何時代,每一個既得利益者身后,都有他的祖輩父輩奮斗掙扎乃至流血付出生命的身影

          羨慕別人有個好爸爸,沒什么不可以

          問題是,你的下一代,會有一個好爸爸嗎?

          至于問到為什么不能有同樣的贏面概率?我只能問:為什么物種競爭中,人和猴子不能有同樣的贏面概率?

          物競天擇。猴子的靈魂不一定比你卑微,但你身后有幾十萬年的類人猿進化積淀。

          七、入對行跟對人

          在中國,大概很少有人是一份職業做到底的,雖然如此,第一份工作還是有些需要注意的地方,有兩件事情格外重要,第一件是入行,第二件事情是跟人。第一份 工作對人最大的影響就是入行,現代的職業分工已經很細,我們基本上只能在一個行業里成為專家,不可能在多個行業里成為專家。很多案例也證明即使一個人在一 個行業非常成功,到另外一個行業,往往完全不是那么回事情,“你想改變世界,還是想賣一輩子汽水?”是喬布斯邀請百事可樂總裁約翰·斯考利加盟蘋果時所說 的話,結果這位在百事非常成功的約翰,到了蘋果表現平平。其實沒有哪個行業特別好,也沒有哪個行業特別差,或許有報道說哪個行業的平均薪資比較高,但是他 們沒說的是,那個行業的平均壓力也比較大。看上去很美的行業一旦進入才發現很多地方其實并不那么完美,只是外人看不見。

          說實話,我自 己都沒有發大財,所以我的建議只是讓人快樂工作的建議,不是如何發大財的建議,我們只討論一般普通打工者的情況。我認為選擇什么行業并沒有太大關系,看問 題不能只看眼前。比如,從前年開始,國家開始整頓醫療行業,很多醫藥公司開不下去,很多醫藥行業的銷售開始轉行。其實醫藥行業的不景氣是針對所有公司的, 并非針對一家公司,大家的日子都不好過,這個時候跑掉是非常不劃算的,大多數正規的醫藥公司即使不做新生意撐個兩三年總是能撐的,大多數醫藥銷售靠工資撐 個兩三年也是可以撐的,國家不可能永遠捏著醫藥行業不放的,兩三年以后光景總歸還會好起來的,那個時候別人都跑了而你沒跑,那時的日子應該會好過很多。有 的時候覺得自己這個行業不行了,問題是,再不行的行業,做得人少了也變成了好行業,當大家都覺得不好的時候,往往卻是最好的時候。大家都覺得金融行業好, 金融行業門檻高不說,有多少人削尖腦袋要鉆進去,競爭激勵,進去以后還要時時提防,一個疏忽,就被后來的人給擠掉了,壓力巨大,又如何談得上快樂?也就未 必是“好”工作了。

          太陽能這個東西至今還不能進入實際應用的階段,但是中國已經有7家和太陽能有關的公司在紐交所上市了,國美蘇寧永 樂其實是貿易型企業,也能上市,魯泰紡織連續10年利潤增長超過50%,賣茶的一茶一座,賣衣服的海瀾之家都能上市……其實選什么行業真的不重要,關鍵是 怎么做。事情都是人做出來的,關鍵是人。

          有一點是需要記住的,這個世界上,有史以來直到我們能夠預見得到的未來,成功的人總是少數, 有錢的人總是少數,大多數人是一般的,普通的,不太成功的。因此,大多數人的做法和看法,往往都不是距離成功最近的做法和看法。因此大多數人說好的東西不 見得好,大多數人說不好的東西不見得不好。大多數人都去炒股的時候說明跌只是時間問題,大家越是熱情高漲的時候,跌的日子越近。大多數人買房子的時候,房 價不會漲,而房價漲的差不多的時候,大多數人才開始買房子。不會有這樣一件事情讓大家都變成功,發了財,歷史上不曾有過,將來也不會發生。有些東西即使一 時運氣好得到了,還是會在別的時候別的地方失去的。

          年輕人在職業生涯的剛開始,尤其要注意的是,要做對的事情,不要讓自己今后幾十年 的人生總是提心吊膽,更不值得為了一份工作賠上自己的青春年華。我的公司是個不行賄的公司,以前很多人不理解,甚至自己的員工也不理解,不過如今,我們是 同行中最大的企業,客戶樂意和我們打交道,尤其是在國家打擊腐敗的時候,每個人都知道我們做生意不給錢的名聲,都敢于和我們做生意。而勇于給錢的公司,不 是倒了,就是跑了,要不就是每天睡不好覺,人還是要看長遠一點。很多時候,看起來最近的路,其實是最遠的路,看起來最遠的路,其實是最近的路。

          跟對人是說,入行后要跟個好領導好老師,剛進社會的人做事情往往沒有經驗,需要有人言傳身教。對于一個人的發展來說,一個好領導是非常重要的。所謂“好”的標準,不是他讓你少干活多拿錢,而是以下三個。

          首先,好領導要有寬廣的心胸,如果一個領導每天都會發脾氣,那幾乎可以肯定他不是個心胸寬廣的人,能發脾氣的時候卻不發脾氣的領導,多半是非常厲害的領 導。中國人當領導最大的毛病是容忍不了能力比自己強的人,所以常常可以看到的一個現象是,領導很有能力,手下一群庸才或者手下一群閑人。如果看到這樣的環 境,還是不要去的好。

          其次,領導要愿意從下屬的角度來思考問題,這一點其實是從面試的時候就能發現的,如果這位領導總是從自己的角度 來考慮問題,幾乎不聽你說什么,這就危險了。從下屬的角度來考慮問題并不代表同意下屬的說法,但他必須了解下屬的立場,下屬為什么要這么想,然后他才有辦 法說服你,只關心自己怎么想的領導往往難以獲得下屬的信服。

          第三,領導敢于承擔責任,如果出了問題就把責任往下推,有了功勞就往自己身上攬,這樣的領導不跟也罷。選擇領導,要選擇關鍵時刻能抗得住的領導,能夠為下屬的錯誤買單的領導,因為這是他作為領導的責任。

          有可能,你碰不到好領導,因為,中國的領導往往是屁股決定腦袋的領導,因為他坐領導的位置,所以他的話就比較有道理,這是傳統觀念官本位的誤區,可能有 大量的這種無知無能的領導,只是,這對于你其實是好事,如果將來有一天你要超過他,你希望他比較聰明還是比較笨?相對來說這樣的領導其實不難搞定,只是你 要把自己的身段放下來而已。多認識一些人,多和比自己強的人打交道,同樣能找到好的老師,不要和一群同樣郁悶的人一起控訴社會,控訴老板,這幫不上你,只 會讓你更消極。和那些比你強的人打交道,看他們是怎么想的,怎么做的,學習他們,然后跟更強的人打交道。

          八、選擇

          我們每天做的最多的事情,其實是選擇,因此在談職業生涯的時候不得不提到這個話題。

          我始終認為,在很大的范圍內,我們究竟會成為一個什么樣的人,決定權在我們自己,每天我們都在做各種各樣的選擇,我可以不去寫這篇文章,去別人的帖子拍 拍磚頭,也可以寫下這些文字,幫助別人的同時也整理自己的思路,我可以多注意下格式讓別人易于閱讀,也可以寫成一堆,我可以就這樣發上來,也可以在發以前 再看幾遍,你可以選擇不刮胡子就去面試,也可以選擇出門前照照鏡子……每天,每一刻我們都在做這樣那樣的決定,我們可以漫不經心,也可以多花些心思,成千 上萬的小選擇累計起來,就決定了最終我們是個什么樣的人。

          從某種意義上來說我們的未來不是別人給的,是我們自己選擇的,很多人會說我 命苦啊,沒得選擇阿,如果你認為“去微軟還是去IBM”“上清華還是上北大”“當銷售副總還是當廠長”這種才叫選擇的話,的確你沒有什么選擇,大多數人都 沒有什么選擇。但每天你都可以選擇是否為客戶服務更周到一些,是否對同事更耐心一些,是否把工作做得更細致一些,是否把情況了解得更清楚一些,是否把不清 楚的問題再弄清楚一些……你也可以選擇在是否在痛苦中繼續堅持,是否拋棄掉自己的那些負面的想法,是否原諒一個人的錯誤,是否相信我在這里寫下的這些話, 是否不要再犯同樣的錯誤……生活每天都在給你選擇的機會,每天都在給你改變自己人生的機會,你可以選擇賴在地上撒潑打滾,也可以選擇咬牙站起來。你永遠都 有選擇。有些選擇不是立桿見影的,需要累積,比如農民可以選擇自己常常去澆地,也可以選擇讓老天去澆地,誠然你今天澆水下去苗不見得今天馬上就長出來,但 常常澆水,大部分苗終究會長出來的,如果你不澆,收成一定很糟糕。

          每天生活都在給你機會,他不會給你一疊現金也不會拱手送你個好工 作,但實際上,他還是在給你機會。我的家庭是一個普通的家庭,沒有任何了不起的社會關系,我的父親在大學畢業以后就被分配到了邊疆,那個小縣城只有一條馬 路,他們那一代人其實比我們更有理由抱怨,他們什么也沒得到,年輕的時候文化大革命,書都沒得讀,支援邊疆插隊落戶,等到老了,卻要給年輕人機會了。他有 足夠的理由象成千上萬那樣的青年一樣坐在那里抱怨生不逢時,怨氣沖天。然而在分配到邊疆的十年之后,國家恢復招研究生,他考回了原來的學校。研究生畢業, 他被分配到了安徽一家小單位里,又是3年以后,國家第一屆招收博士生,他又考回了原來的學校,成為中國第一代博士,那時的他比現在的我年紀還大。生活并沒 有放棄他,他也沒有放棄生活。10年的等待,他做了他自己的選擇,他沒有放棄,他沒有破罐子破摔,所以時機到來的時候,他改變了自己的人生。你最終會成為 什么樣的人,就決定在你的每個小小的選擇之間。

          你選擇相信什么?你選擇和誰交朋友?你選擇做什么?你選擇怎么做?……我們面臨太多的 選擇,而這些選擇當中,意識形態層面的選擇又遠比客觀條件的選擇來得重要得多,比如選擇做什么產品其實并不那么重要,而選擇怎么做才重要。選擇用什么人并 不重要,而選擇怎么帶這些人才重要。大多數時候選擇客觀條件并不要緊,大多數關于客觀條件的選擇并沒有對錯之分,要緊的是選擇怎么做。一個大學生畢業了, 他要去微軟也好,他要賣豬肉也好,他要創業也好,他要做游戲代練也好,只要不犯法,不害人,都沒有什么關系,要緊的是,選擇了以后,怎么把事情做好。

          除了這些,你還可以選擇時間和環境,比如,你可以選擇把這輩子最大的困難放在最有體力最有精力的時候,也可以走一步看一步,等到了40歲再說,只是到了 40多歲,那正是一輩子最脆弱的時候,上有老下有小,如果在那個時候碰上了職業危機,實在是一件很苦惱的事情。與其如此不如在20多歲30多歲的時候吃點 苦,好讓自己脆弱的時候活得從容一些。你可以選擇在溫室里成長,也可以選擇到野外磨礪,你可以選擇在辦公室吹冷氣的工作,也可以選擇40度的酷熱下,去見 你的客戶,只是,這一切最終會累積起來,引導你到你應得的未來。

          我不敢說所有的事情你都有得選擇,但是絕大部分事情你有選擇,只是往往你不把這當作一種選擇。認真對待每一次選擇,才會有比較好的未來。

          九、選擇職業

          職業的選擇,總的來說,無非就是銷售、市場、客服、物流、行政、人事、財務、技術、管理幾個大類,有個有趣的現象就是,500強的CEO當中最多的是銷 售出身,第二多的人是財務出身,這兩者加起來大概超過95%?,F代IT行業也有技術出身成為老板的,但實際上,后來他們還是從事了很多銷售和市場的工作, 并且表現出色,公司才獲得了成功,完全靠技術能力成為公司老板的,幾乎沒有。這是有原因的,因為銷售就是一門跟人打交道的學問,而管理其實也是跟人打交道 的學問,這兩者之中有很多相通的東西,他們的共同目標就是“讓別人去做某件特定的事情。”而財務則是從數字的層面了解生意的本質,從宏觀上看待生意的本 質,對于一個生意是否掙錢,是否可以正常運作有著最深刻的認識。

          公司小的時候是銷售主導公司,而公司大的時候是財務主導公司,銷售的 局限性在于只看人情不看數字,財務的局限性在于只看數字不看人情。公司初期,運營成本低,有訂單就活得下去,跟客戶也沒有什么談判的條件,別人肯給生意做 已經謝天謝地了,這個時候訂單壓倒一切,客戶的要求壓倒一切,所以當然要顧人情。公司大了以后,一切都要規范化,免得因為不規范引起一些不必要的風險,同 時運營成本也變高,必須提高利潤率,把有限的資金放到最有產出的地方。對于上市公司來說,股東才不管你客戶是不是最近出國,最近是不是那個省又在搞嚴打, 到了時候就要把業績拿出來,拿不出來就拋股票,這個時候就是數字壓倒一切。

          前兩天聽到有人說一句話覺得很有道理,開始的時候我們想“ 能做什么?”,等到公司做大了有規模了,我們想“不能做什么。”很多人在工作中覺得為什么領導這么保守,這也不行那也不行,錯過很多機會。很多時候是因 為,你還年輕,你想的是“能做什么”,而作為公司領導要考慮的方面很多,他比較關心“不能做什么”。

          我并非鼓吹大家都去做銷售或者財 務,究竟選擇什么樣的職業,和你究竟要選擇什么樣的人生有關系,有些人就喜歡下班按時回家,看看書聽聽音樂,那也挺好,但就不適合找個銷售的工作了,否則 會是折磨自己。有些人就喜歡出風頭,喜歡成為一群人的中心,如果選擇做財務工作,大概也干不久,因為一般老板不喜歡財務太積極,也不喜歡財務話太多。先想 好自己要過怎樣的人生,再決定要找什么樣的職業。有很多的不快樂,其實是源自不滿足,而不滿足,很多時候是源自于心不定,而心不定則是因為不清楚究竟自己 要什么,不清楚要什么的結果就是什么都想要,結果什么都沒得到。

          我想,我們還是因為生活而工作,不是因為工作而生活,生活是最要緊 的,工作只是生活中的一部分。我總是覺得生活的各方方面都是相互影響的,如果生活本身一團亂麻,工作也不會順利。所以要有娛樂、要有社交、要鍛煉身體,要 有和睦的家庭……最要緊的,要開心,我的兩個銷售找我聊天,一肚子苦水,我問他們,2年以前,你什么都沒有,工資不高,沒有客戶關系,沒有業績,處于被開 的邊緣,現在的你比那時條件好了很多,為什么現在卻更加不開心了?如果你做得越好越不開心,那你為什么還要工作?首先的首先,人還是要讓自己高興起來,讓 自己心態好起來,這種發自內心的改變會讓你更有耐心,更有信心,更有氣質,更能包容……否則,看看鏡子里的你,你滿意么?

          有人會說, 你說得容易,我每天加班,不加班老板就會把我炒掉,每天累得要死,哪有時間娛樂、社交、鍛煉?那是人們把目標設定太高的緣故,如果你還在動不動就會被老板 炒掉的邊緣,那么你當然不能設立太高的目標,難道你還想每天去打高爾夫?你沒時間去健身房鍛煉身體,但是上下班的時候多走幾步可以吧,有樓梯的時候走走樓 梯不走電梯可以吧?辦公的間隙扭扭脖子拉拉肩膀做做俯臥撐可以吧?誰規定鍛煉就一定要拿出每天2個小時去健身房?你沒時間社交,每月參加郊游一次可以吧, 周末去參加個什么音樂班,繪畫班之類的可以吧,去嘗試認識一些同行,和他們找機會交流交流可以吧?開始的時候總是有些難的,但邁出這一步就會向良性循環的 方向發展。而每天工作得很苦悶,剩下的時間用來咀嚼苦悶,只會陷入惡性循環,讓生活更加糟糕。

          雖然離開惠普僅有十五天,但感覺上惠普已經離我很遠。我的心思更多放在規劃自己第二階段的人生,這并非代表我對惠普沒有任何眷戀,主要還是想以此驅動自己往前走。

          萬科王石登珠穆朗瑪峰的體驗給我很多啟發,雖然在出發時攜帶大量的物資,但是登頂的過程中,必須不斷減輕負荷,最終只有一個氧氣瓶和他登上峰頂。登山如此,漫長的人生又何嘗不是。

          我宣布退休后,接到同事朋友同學的祝賀。大部分人都認為我能夠在這樣的職位上及年齡選擇退休,是一種勇氣,也是一種福氣。

          還有一部分人懷疑我只是借此機會換個工作,當然還有一些人說我在HP做不下去了,趁此機會離開。

          我多年來已經習慣別人對我的說三道四,但對于好友,我還是挺關心大家是否真正理解我的想法,這也是寫這篇文章的目的。

          由于受我父親早逝的影響,我很早就下定決心,要在有生之年實現自己的愿望,我不要像我父親一樣,為家庭生活忙碌一輩子,臨終前感傷,懊惱自己有很多沒有實現的理想。

          一本雜志的文章提到我們在生前就應該思考自己的墓志銘,因為那代表你自己對完美人生的定義,我們應該盡可能在有生之年去實現它。

          我希望我的墓志銘上除了與家人及好友有關的內容外,是這樣寫著:

          1.這個人曾經服務于一家全球最大的IT公司(HP)25年,和她一起經歷過數次重大的變革,看著她從以電子儀表為主要的業務變革成全球最大的IT公司。

          2.這個人曾經在全球發展最快的國家(中國)工作16年,并擔任HP中國區總裁7年,見證及經歷過中國改革開放的關鍵最新突破階段,與中國一起成長。

          3.這個人熱愛飛行,曾經是一個有執照的飛行員,累積飛行時數超過X小時,曾經在X個機場起降過。

          4.這個人曾經獲得管理碩士學位,在領導管理上特別關注中國企業的組織行為及績效,并且在這個領域上獲得中國企業界的認可。

          我費時25年才總結1和2兩項成果,我不知還要費時多久才能達成3和4的愿望,特別是第4個愿望需要經歷學術的訓練,才能將我的經驗總結成知識。

          否則我的經驗將無法有效影響及傳授他人。因此重新進入學校學習,拿一個管理學位是有必要的,更何況這是我一個非常重要的愿望。

          另一方面,我25年的時間都花在運營(operation)的領域,兢兢業業的做好職業人士的工作,它是一份好工作,特別是在HP,這份工作也幫助我建立財務的基礎,支持家庭的發展。

          但是我不想終其一生,都陷入在運營的領域,我想象企業家一樣,有機會靠一些點子(ideas)賺錢,雖然風險很高,但是值得一試,即使失敗,也不枉走一回,這也是第4個愿望其中的一部份。

          CarlyFiorina曾經對我說過“這個世界上有好想法的人很多,但有能力去實現的人很少”,2007年5月21日在北大演講時,有人問起那些書對 我影響較大,我想對我人生觀有影響的其中一本書叫“TriggerPoint”,它的主要觀點是:人生最需要的不是規劃,而是在適當的時機掌握機會,采取 行動。

          我這些愿望在我心中已經醞釀一段很長的時間,開始的時候,也許一年想個一兩次,過了也就忘掉,但逐漸的,這個心中的聲音,愈來愈大,出現的頻率也愈來愈高,當它幾乎每一個星期都會來與我對話時,我知道時機已經成熟。

          但和任何人一樣,要丟掉自己現在所擁有的,所熟悉的環境及穩定的收入,轉到一條自己未曾經歷過,存在未知風險的道路,需要絕大的勇氣,家人的支持和好友的鼓勵。有舍才有得,真是知易行難,我很高興自己終于跨出了第一步。

          我要感謝HP的EER提前退休優惠政策,它是其中一個關鍵的TriggerPoints,另一個關鍵因素是在去年五六月發生的事。

          當時我家老大從大學畢業,老二從高中畢業,在他們繼續工作及求學前,這是一個黃金時段,讓我們全家可以相聚一段較長的時間,我為此很早就計劃休一個長假,帶著他們到各地游玩。

          但這個計劃因為工作上一件重要的事情(MarkHurd訪華)不得不取消。這個事件刺激了我必須嚴肅的去對待那心中的聲音,我會不會繼續不斷的錯失很多關鍵的機會?

          我已經年過50,我會不會走向和我父親一樣的道路?人事部老總Charles跟我說,很多人在所有對他有利的星星都排成一列時,還是錯失時機。

          我知道原因,因為割舍及改變對人是多么的困難,我相信大部分的人都有自己人生的理想,但我也相信很多人最終只是把這些理想當成是

          幻想,然后不斷的為自己尋找不能實現的藉口,南非前總統曼德拉曾經說過,“與改變世界相比,改變自己更困難”,真是一針見血。

          什么是快樂及有意義的人生?我相信每一個人的定義都不一樣,對我來說,能實現我墓志銘上的內容就是我的定義。

          在中國惠普總裁的位置上固然可以吸引很多的關注及眼球,但是我太太及較親近的好友,都知道那不是我追求的,那只是為扮演好這個角色必須盡力做好的地方。

          做一個沒有名片的人士,雖然只有十多天的時間,但我發現我的腦袋里已經空出很多空間及能量,讓我可以靜心的為我ChapterII的新生活做細致的調研及規劃。

          我預訂以兩年的時間來完成轉軌的準備工作,并且花多點時間與家人共處。這兩年的時間我希望拿到飛行執照,拿到管理有關的碩士學位,提升英文的水平,建立新的網絡,多認識不同行業的人,保持與大陸的聯系。希望兩年后,我可以順利回到大陸去實現我第四個愿望。

          毫不意外,在生活上,我發現很多需要調整的地方。

          二十多年來,我生活的步調及節奏,幾乎完全被公司及工作所左右,不斷涌出的deadline及任務驅動我每天的安排,一旦離開這樣的環境,第一個需要調 整的就是要依靠自己的自律及意志力來驅動每天的活動,睡覺睡到自然醒的態度絕對不正確,放松自己,不給事情設定目標及時間表,或者對錯失時間目標無所謂, 也不正確,沒有年度,季度,月及周計劃也不正確。

          擔任高層經理多年,已經養成交待事情的習慣,自己的時間主要花在思考,決策及追蹤項目的進展情況,更多是依靠一個龐大的團隊來執行具體的事項及秘書來處理很多協調及繁瑣的事情。

          到美國后,很多事情需要打800號電話聯系,但這些電話很忙,常讓你在waitingline上等待很長的時間,當我在等待時,我可以體會以前秘書工作辛苦的地方,但同時也提醒我自己,在這個階段要改變態度,培養更大的耐性及自己動手做的能力。

          生活的內容也要做出很大的調整,多出時間鍛煉身體,多出時間關注家人,多出時間關注朋友,多出時間體驗不同的休閑活動及飛行,一步步的,希望生活逐步調整到我所期望的軌道上,期待這兩年的生活既充實又充滿樂趣及意義。

          第一個快樂的體驗就是準備及參加大兒子的訂婚禮,那種全心投入,不需擔憂工作數字的感覺真好。同時我也租好了公寓,買好了家具及車子,陪家人在周末的時 候到Reno及LakeTahoe玩了一趟,LakeTahoe我去了多次,但這次的體驗有所不同,我從心里欣賞到它的美麗。

          但同時我也在加緊調研的工作,為申請大學及飛行學校做準備,這段時間也和在硅谷的朋友及一些風險投資公司見面,了解不同的產業。

          我的人生觀是“完美的演出來自充分的準備”,“勇于改變自己,適應不斷變化的環境,機會將不斷出現”,“快樂及有意義的人生來自于實現自己心中的愿望,而非外在的掌聲”。

          我離開時,有兩位好朋友送給我兩個不同的祝語,Baron的是“多年功過化煙塵”,楊華的是“莫春者,風乎舞雩,詠而歸”,它們分別代表了我離開惠普及走向未來的心情。

          我總結人生有三個階段,一個階段是為現實找一份工作,一個階段是為現實,但可以選擇一份自己愿意投入的工作,一個階段是為理想去做一些事情。

          我珍惜我的福氣,感激HP及同事、好朋友給我的支持,鼓勵及協助,這篇文字化我心聲的文章與好友分享。

          posted @ 2008-05-23 17:14 Fingki.li 閱讀(223) | 評論 (0)編輯 收藏

          最近收到一個ticket,用ant寫個build.xml,用到condition,作筆記如下:

              basic elements: istrue isfalse not and or xor available isset equals  filesmatch
              1、istrue isfalse:斷言 真 假
          <project name="testCondition">
              <target name="test">
                  <condition property="scondition">
                      <istrue value="true"/>                   
                  </condition>
                  <antcall target="isTrue"></antcall>
                  <antcall target="isFalse"></antcall>       
              </target>
              <target name="isTrue" if="scondition">
                  <echo>is ture</echo>
              </target>
              <target name="isFalse" unless="scondition">
                  <echo>is false</echo>
              </target>
          </project>

              2、邏輯運算
              2.1、not 邏輯非 
          <project name="testCondition">
              <target name="test">
                  <condition property="scondition">
                      <not>
                          <istrue value="true"/>                   
                      </not>
                  </condition>
                  <antcall target="isTrue"></antcall>
                  <antcall target="isFalse"></antcall>       
              </target>
              <target name="isTrue" if="scondition">
                  <echo>is ture</echo>
              </target>
              <target name="isFalse" unless="scondition">
                  <echo>is false</echo>
              </target>
          </project>
              2.2、and 邏輯與
          <project name="testCondition">
              <target name="test">
                  <condition property="scondition">
                      <and>
                          <istrue value="true"/>
                          <istrue value="false"/>                   
                      </and>
                  </condition>
                  <antcall target="isTrue"></antcall>
                  <antcall target="isFalse"></antcall>       
              </target>
              <target name="isTrue" if="scondition">
                  <echo>is ture</echo>
              </target>
              <target name="isFalse" unless="scondition">
                  <echo>is false</echo>
              </target>
          </project>
              2.3、or 邏輯或 xor異或 (語法上與and類似)

              3、available 是否可用
          <project name="testCondition">
              <path id="all.test.classes">        
                   <pathelement location="bin"/>
               </path>
              <target name="test">
                  <condition property="scondition">
                      <!--在指定的classpath路徑下是否存在資源 TestTest.class-->
                      <available resource="TestTest.class">
                          <classpath refid="all.test.classes" />       
                      </available>
                  </condition>
                  <antcall target="isTrue"></antcall>
                  <antcall target="isFalse"></antcall>       
              </target>
              <target name="isTrue" if="scondition">
                  <echo>is ture</echo>
              </target>
              <target name="isFalse" unless="scondition">
                  <echo>is false</echo>
              </target>
          </project>

              4、isset 指定屬性是否存在
          <project name="testCondition">
              <!--屬性也可以通過ant參數-D來設置-->
              <property name="name" value="this is name"/>   
              <target name="test">
                  <condition property="scondition">
                      <!--如果屬性name不存在則返回false-->
                      <isset property="name"/>
                  </condition>
                  <antcall target="isTrue"></antcall>
                  <antcall target="isFalse"></antcall>       
              </target>
              <target name="isTrue" if="scondition">
                  <echo>is ture</echo>
              </target>
              <target name="isFalse" unless="scondition">
                  <echo>is false</echo>
              </target>
          </project>
              5、equals 是否相等
          <project name="testCondition">
              <!--屬性也可以通過ant參數-D來設置-->
              <property name="name" value="this is name"/>   
              <target name="test">
                  <condition property="scondition">
                      <!--如果arg1的值與arg2的值相等返回true,否則為false-->
                      <equals arg1="${name}" arg2="this is name"/>
                  </condition>
                  <antcall target="isTrue"></antcall>
                  <antcall target="isFalse"></antcall>       
              </target>
              <target name="isTrue" if="scondition">
                  <echo>is ture</echo>
              </target>
              <target name="isFalse" unless="scondition">
                  <echo>is false</echo>
              </target>
          </project>   
              6、filesmatch 比較文件
          <project name="testCondition">       
              <target name="test">
                  <condition property="scondition">
                      <!--如果file1所代表的文件與file2所代表的文件相等返回true,否則為false-->
                      <filesmatch file1="testfile1.txt" file2="testfile2.txt"/>
                  </condition>
                  <antcall target="isTrue"></antcall>
                  <antcall target="isFalse"></antcall>       
              </target>
              <target name="isTrue" if="scondition">
                  <echo>is ture</echo>
              </target>
              <target name="isFalse" unless="scondition">
                  <echo>is false</echo>
              </target>
          </project>   


          更多內容可以參考:http://ant.apache.org/manual/CoreTasks/conditions.html

          posted @ 2008-05-21 15:26 Fingki.li 閱讀(10643) | 評論 (0)編輯 收藏

          請參照
          openfire:http://www.igniterealtime.org/community/docs/DOC-1020
          spark:http://www.igniterealtime.org/community/docs/DOC-1040

          Openfire plugin 開發:http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/plugin-dev-guide.html

          posted @ 2008-05-19 16:58 Fingki.li 閱讀(280) | 評論 (0)編輯 收藏

          今天是全國哀悼日,向逝者祈福,為生者祝福!

          posted @ 2008-05-19 14:44 Fingki.li 閱讀(155) | 評論 (0)編輯 收藏

          今天升級系統到ubuntu8,重裝vmware時,發現一些問題,浪費我不少時間,記錄下來,希望大家可以省些時間。
          1、下載vmware:http://www.vmware.com/download/eula.doVMware 6.0.3 build-80004
          2、解壓
          3、執行安裝
             在其解壓目錄中執行:sudo ./vmware-install.pl
             一路回車,最后報錯:
          在包含自 include/asm/bitops.h:2 的文件中,
              從 /tmp/vmware-config1/vmmon-only/./include/vcpuset.h:74,
              從 /tmp/vmware-config1/vmmon-only/./include/modulecall.h:23,
              從 /tmp/vmware-config1/vmmon-only/common/vmx86.h:18,
              從 /tmp/vmware-config1/vmmon-only/common/hostif.h:18,
              從 /tmp/vmware-config1/vmmon-only/common/cpuid.c:14:
              include/asm/bitops_32.h:9:2: 錯誤: #error only
              can be included directly
              make[2]: *** [/tmp/vmware-config1/vmmon-only/common/cpuid.o] 錯誤 1
              make[1]: *** [_module_/tmp/vmware-config1/vmmon-only] 錯誤 2
              make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-16-generic’
              make: *** [vmmon.ko] 錯誤 2
              make: Leaving directory `/tmp/vmware-config1/vmmon-only’
              Unable to build the vmmon module.

              For more information on how to troubleshoot module-related problems, please
              visit our Web site at “http://www.vmware.com/download/modules/modules.html” and
              “http://www.vmware.com/support/reference/linux/prebuilt_modules_linux.html”.
              Execution aborted.
          4、網上搜了一下,找到解決辦法如下:
            4.1
              cd /usr/lib/vmware/modules/source
              sudo cp vmmon.tar vmmon.tar.backup
              sudo tar xvf vmmon.tar
              sudo gedit vmmon-only/include/vcpuset.h
            4.2
              將# #include “asm/bitops.h” 改為 #include “linux/bitops.h”
            4.3
              sudo tar cvf vmmon.tar vmmon-only
              sudo rm -rf vmmon-only
          5、接下來可以正常安裝了。
          你可能還會遇到這樣的出錯信息:
          Version mismatch with vmmon module: expecting 167.0, got 161.0.Version mismatch with vmmon module
          這可能是因為你運行了vmware-any-any-update-115,你需要運行vmware-any-any-update-116(可以在這下載:http://vmkernelnewbies.googlegroups.com/web/vmware-any-any-update-116.tgz)
          (網上有說可以用vmware-any-any-update來解決第一個報錯,但不能用115,而應用vmware-any-any-update116)
          ****************************************
          后續問題:
          當ubuntu更新一些軟件包后,有時vmware就無法啟動。這時按照 step 4 查看相關文件,無異常,(#include "linux/bitops.h").
          此時只需再執行一下vmware-any-any-update116就可以了。(至少我是這樣解決的,呵呵)


          posted @ 2008-05-13 17:21 Fingki.li 閱讀(637) | 評論 (0)編輯 收藏

          僅列出標題
          共8頁: 上一頁 1 2 3 4 5 6 7 8 下一頁 
          主站蜘蛛池模板: 贵德县| 乐至县| 阳曲县| 阿拉善左旗| 利辛县| 清水河县| 巴彦淖尔市| 海盐县| 甘泉县| 琼中| 江津市| 霍林郭勒市| 吴旗县| 腾冲县| 安国市| 伊春市| 和静县| 哈巴河县| 洞头县| 桂平市| 石门县| 西乌珠穆沁旗| 雅江县| 溧阳市| 政和县| 哈尔滨市| 松溪县| 西城区| 达州市| 南康市| 乌海市| 商洛市| 曲沃县| 中卫市| 台东县| 安溪县| 安图县| 贵溪市| 青河县| 浙江省| 广水市|