الخميس، 26 أبريل، 2012

طلب تسجيل الدخول عند الضغط على ملف اكسل 2010 في شيربوينت 2010


عند محاولة تحميل ملف اكسل 2010 يحمل الامتداد xlsx ضمن شيربوينت 2010, يُطلب من المستخدم تسجيل الدخول للحصول لتحميل الملف, طبعاً الملف متاح للتحميل من قبل المستخدمين الغير مسجلين أي متاح لجميع زوار الموقع.

كيف يتم حل المشكلة
افتح الملف serverfilesExcelServer.xml من المسار التالي على جميع خوادم بيئة عمل شيربوينت 2010:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\XML

احذف السطر التالي أو ضعه ضمن إشارة تعليق comment:

<Mapping FileExtension="xlsx" RedirectUrlTemplate="/_layouts/xlviewer.aspx?id=|0" NoGetRedirect="TRUE" CreateRedirectUrlTemplate="/_layouts/xlviewer.aspx?new=1"/>

تأكد من تنفيذ iisreset على جميع الخوادم.

الخميس، 19 أبريل، 2012

موعد النسخة التجريبية لشيربوينت 2013


من المتوقع إصدار النسخة التجريبية من الإصدار الجديد من شيربوينت (2013 أو 15) في حزيران القادم, وذلك لوجود أكثر من حدث لمايكروسوفت في هذا الشهر, ويعتقد بأنه الوقت الأفضل لتفجير قنبلة الإصدار الجديد, الذي سيحتوي على تحديثات كبيرة جداً.

الجمعة، 13 أبريل، 2012

دليل برمجة تطبيقات يوتيوب باستخدام واجهة برمجية التطبيقات api


تم بحمد الله إصدار الترجمة الكاملة لدليل برمجة تطبيقات يوتيوب باستخدام واجهة برمجة التطبيقات API, والتي توفرها شركة Google.

تحميل الملف المرفق

الجمعة، 6 أبريل، 2012

تثبيت شيربوينت 2010 بدون خدمات المجلد النشط


مقدمة
إن استخدام خادم شيربوينت 2010 في بناء البوابات الإلكترونية غالباً ما يتزامن مع وجود مجموعة من الخوادم الأخرى, مثل خادم المجلد النشط Active Directory وخادم قواعد البيانات SQL Server إضافة إلى وجود خوادم مساعدة أخرى. لكن في بعض الأحيان قد نضطر لبناء البوابات الإلكترونية باستخدام خادم شيربوينت 2010 لكن بدون استخدام خادم المجلد النشط, وإنما الاعتماد فقط على خادم واحد هو في نفس الوقت خادم شيربوينت 2010 وخادم قواعد البيانات, وفي هذه المقالة سنتعرف إلى كيفية تثبيت شيربوينت 2010 على خادم واحد فقط يحتوي شيربوينت 2010 وقواعد البيانات.

تثبيت شيربوينت 2010
إن تثبيت الملفات الثنائية Binaries لخادم شيربوينت 2010 على خادم بدون استخدام المجلد النشط لا يختلف في حال استخدام المجلد النشط وخطوات تثبيت خادم شيربوينت 2010 هي ذاتها كما يلي:












ومن ثم يتم تثبيت الملفات الثنائية للغة العربية 2. SharePoint Server 2010 Arabic Language Pack حيث يمكن الحصول عليه من الرابط التالي:


وإلى تاريخ كتابة هذه المقالة فإن حزمة آخر تعديلات متوفرة لخادم شيربوينت 2010 هي SharePoint Server 2010 cumulative update package (SharePoint server-package): March 7, 2012 ويمكن الحصول عليها من الرابط التالي:


بعد تثبيت جميع البرمجيات المطلوبة لخادم شيربوينت 2010, يجب التأكد من تثبيت خادم قواعد البيانات وذلك للبدء بتنفيذ عملية ضبط إعدادات خادم شيربوينت 2010.

ضبط إعدادات خادم شيربوينت 2010
عادة يتم تشغيل الأداة Configures SharePoint Products and Technologies. لضبط إعدادات خادم شيربوينت 2010 وذلك في حال وجود خادم للمجلد النشط Active Directory, لكن بما أنه في حالتنا هذا الخادم غير متوفر فيجب استخدام سطر الأوامر Power Shell لضبط إعدادات خادم الشيربوينت, وسنبدأ بعملية إنشاء قاعدة بيانات إعدادات بيئة عمل شيربوينت 2010 كما يلي:

كود PHP:
New-SPConfigurationDatabase -DatabaseName "CONFIG_DB_NAME" -DatabaseServer "DB_SERVER" -Passphrase (ConvertTo-SecureString "PASS_PHRASE" -AsPlainText -force) -FarmCredentials (Get-Credential
يجب تنفيذ الأمر السابق باستخدام الأداة SharePoint 2010 Management Shell, حيث يجب الانتباه إلى القيم التالية:

  • CONFIG_DB_NAME: هو اسم قاعدة البيانات التي ستحتوي على إعدادات بيئة عمل شيربوينت 2010.
  • DB_SERVER: اسم خادم قواعد البيانات مثل MachineName\sql2008.
  • PASS_PHRASE: كلمة السر التي يجب إدخالها في كل مرة يتم فيها ضم خادم جديد إلى بيئة عمل شيربوينت 2010.


عند تنفيذ الأمر السابق ستظهر شاشة مشابهة للشكل التالي:


حيث يجب إدخال اسم المستخدم الذي تم إنشاؤه على الجهاز المحلي وكلمة المرور الخاصة به, حيث سيتم استخدامه للاتصال بقواعد البيانات, لذلك يجب التأكد من أن هذا المستخدم لديه الصلاحية المناسبة للاتصال بخادم قواعد البيانات وإنشاء قاعدة بيانات جديدة. بعد إدخال بيانات المستخدم اللازمة, سيتم إنشاء قاعدة إعدادات بيئة عمل شيربوينت 2010 مع إنشاء قاعدة البيانات الخاصة بموقع الإدارة المركزي Central Administration. بعد الانتهاء من تنفيذ الأمر السابق بنجاح يجب الآن الانتقال إلى الخطوة التالية وهي تشغيل الأداة Configures SharePoint Products and Technologies.

تشغيل الأداة Configures SharePoint Products and Technologies
بعد الانتهاء من تنفيذ الخطوة السابقة بنجاح يجب تشغيل الأداة Configures SharePoint Products and Technologies وذلك لإنهاء عملية ضبط إعدادات خادم شيربوينت 2010. وبعد تشغيل الأداة يجب تحديد رقم المنفذ Port الذي سيعمل عليه موقع الإدارة المركزي:




بعد تنفيذ الخطوة الأخيرة سيتم ضبط إعدادات بيئة عمل شيربوينت 2010 بشكل كامل, وسيكون شيربوينت 2010 جاهز للاستخدام.

إضافة حساب مدار Managed Account
لاعتبارات لها علاقة بالأمان وتطبيق الممارسات الأفضل في بيئة عمل شيربوينت 2010, يُنصح باستخدام حسابات مستخدمين مختلفة لتشغيل الخدمات المختلفة في شيربوينت 2010, وقد وفرت بيئة عمل شيربوينت 2010 إمكانية إضافة ما يُسمى حساباً مداراً Managed Account وذلك من خلال اتباع الخطوات التالية:

  • افتح موقع الإدارة المركزي Central Administration.
  • من القائمة اليسرى اختر Security.
  • من المجموعة General Security اختر Configure managed accounts.
  • اضغط على الرابط Register Managed Account .
  • أدخل المعلومات المطلوبة في الشاشة التالية:



بعد إدخال المعلومات المطلوبة اضغط OK عندها سيظهر الخطأ التالي:

The specified user USER_NAME is a local account. Local accounts should only be used in standalone mode.

والسبب هو أنك يمكن إضافة حساباً مداراً من خلال هذه الشاشة فقط في حالة وجود خادم للمجلد النشط أو تم تثبيت الشيربوينت من خلال النمط Standalone, ولحل هذه المشكلة يمكن تنفيذ الأمر التالي في الأداة SharePoint 2010 Management Shell:

كود PHP:
$ma Get-Credential MachineName\UserName 
عندها ستظهر الشاشة التالية حيث يجب إدخال كلمة المرور الخاصة بالمستخدم:


ومن ثم نفذ الأمر التالي مباشرة:

كود PHP:
New-SPManagedAccount -Credential $ma 
بعدها سيتم تسجيل المستخدم الجديد على أنه حساب مدار Managed Account ويمكن استخدامه لتشغيل خدمات شيربوينت 2010.

الخميس، 5 أبريل، 2012

ميزة تراخيص التطبيقات في شيربوينت 2013


تقدم مايكروسوفت إمكانية دعم التطبيقات بالرخص اللازم لتشغيلها, هذا يعني أن كل من يوفر تطبيقاً على سوق مايكروسوفت بإمكانه تحديد سعره وبيعه مباشرة على السوق, وأول دليل على وجود هذه الميزة هو التابع IsUserLicensedForEntity ضمن الصف SPWebApplication. علماً أنه يمكن توفير التطبيقات بدون أي حاجة للرخصة أي برمجية مجانية على سوق مايكروسوفت. ويتوفر أربعة أنواع من الرخص هي:

  • PerpetualMultiUser: تعني رخصة دائماً لمجموعة مستخدمين على نفس الموقع.
  • PerpetualAllUsers: تعني رخصة دائماً لجميع المستخدمين على نفس الموقع.
  • TrialMultiUser: تعني نسخة تجريبية لمجموعة مستخدمين على نفس الموقع.
  • TrialAllUsers: تعني نسخة تجريبية لجميع المستخدمين على نفس الموقع.


كما ستوفر ميزة رخص التطبيقات ما يسمى بمدير الرخصة, وهو عبارة عن شخص أو أكثر بإمكانه إسناد الرخص لمستخدمين محددين. على سبيل المثال قد تشتري الشركة رخصة لعشرة مستخدمين, بينما يستخدم موقعها 50 مستخدم, عندها يمكن لمدير الرخصة اختيار 10 مستخدمين يمكنهم الاستفادة من التطبيق. كما يمكن أن تكون صلاحية الرخصة مرتبطة بالوقت أي يمكن أن تنتهي الرخصة بعد فترة من الزمن, لذلك يوجد نوع من الرخص هو الرخص التجريبية.

أين تجد القيمة الأصلية لـ قيمة العنصر MachineKey


تحدثنا في موضوع سابق على تغيير قيمة العنصر machinekey بشكل تلقائي مما يؤدي إلى مشاكل في إعدادات مصادقة النماذج, وقد قلنا بأن الطريقة التي اتبعناها هي برأينا ليست الأفضل, ومن خلال البحث بشكل أكبر وجدنا بأن القيمة الأصلية للعنصر machinekey في الملف web.config الموجود في المسار التالي:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\WebServices\SecurityToken

تخزن في قاعدة بيانات إعدادات بيئة عمل شيربوينت 2010 في الجدول Objects, ومن خلال تنفيذ الاستعلام التالي ستجد القيمة الأصلية للعنصر machinekey:

كود HTML:
SELECT     Id, ClassId, ParentId, Name, Status, Version, Properties
FROM         Objects WHERE     (Properties LIKE '%YOUR_KEY%')
طبعاً يجب استبدال القيمة YOUR_KEY بالقيمة المخزنة في الملف web.config ضمن العنصر machinekey.

ما سبق يزيل غموض من أين يتم إعادة تعيين القيمة الأصلية لأنها أصلاً مخزنة في قواعد بيانات شيربوينت 2010, لكن السؤال الذي يجب أن نجيب عليه الآن هو كيف يمكننا تغيير هذه القيمة بطريقة صحيحة بدون الحاجة إلى تغييرها مباشرة مضن قواعد البيانات, لأن مايكروسوفت توصي بعدم التعديل على قواعد البيانات مباشرة.

لعل الموضوع القادم يكون عن كيفية تغيير هذه القيمة بالشكل الصحيح وعدم تطبيق الحل الذي قدمناه في الموضوع السابق.

الاثنين، 2 أبريل، 2012

مشكلة تغيير قيمة العنصر MachineKey في الملف web.config


إحدى خطوات تفعيل نماذج المصادقة Forms Based Authentication على شيربوينت 2010 هي تحديد قيمة العنصر machinekey في الملف web.config للتطبيق الخاص بك, وتغيير أو إضافة قيم العنصر machinekey في الملف web.config للخدمة Security Token Service تحت المسار التالي:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\WebServices\SecurityToken

بعد عمل كل شيء بشكل صحيح, تكتشف في اليوم التالي وعند محاولة الدخول بأي مستخدم جديد, بأن عملية الدخول لا تنجح, ولا يظهر أي خطأ فقط قد يظهر الخطأ التالي في سجلات ويندوز:

An exception occurred when trying to issue security token: The security token username and password could not be validated.

طبعاً هذا الخطأ يوضح بأن معلومات الدخول مثل اسم المستخدم أو كلمة المرور خطأ أو الاثنين هما خطأ, لكن غالباً نكون متأكدين من معلومات الدخول, إذا ما السبب؟

بعد بحث طويل تبين بأن قيمة العنصر machinekey للخدمة Security Token Service تحت المسار التالي:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\WebServices\SecurityToken

أعد القيمة المتغيرة إلى القيمة القديمة التي تم تعيينها في بداية ضبط إعدادات نماذج المصادقة, عندها سيعود كل شيء للعمل بشكل صحيح, ويمكنك الآن تسجيل دخول على الموقع بشكل ناجح مرة أخرى, لكن تبين أن عملية دخول تعود لتفشل مرة أخرى في اليوم التالي! بسبب تغير قيمة العنصر machinekey في الملف web.config السابق!, إذا ما لذي يغير هذه القيمة.

تبين بعد بعض تنفيذ عمليات البحث بأن هناك مهمة يتم تنفيذها كل يوم ضمن مهام شيربوينت 2010 المجدولة تغير هذه القيمة, ولإيقاف عملية تغيير هذه القيمة يجب اتباع الخطوات التالية:

1. افتح موقع الإدارة المركزية Central Administration.
2. اضغط على الرابط Monitoring في القائمة اليسرى.
3. من المجموعة Health Analyzer اختر الرابط Review rule definitions.
4. تحت التصنيف Configuration ابحث عن القاعدة التالية:
Web.config files are not identical on all machines in the farm.
5. اضغط على Edit Item وألغي تحديد الخيار Repair Automatically واضغط حفظ.

الحل المقترح برأيي ليس هو الحل الأفضل لأن مايكروسوفت توصي بعدم إيقاف أو تغيير أي من قواعد العمل المعرفة كما فعلنا سابقاً, لذلك سنفرد مقالة أخرى لطرح الحل الأفضل فيما يخص هذه المشكلة.

استمتع :)