سؤال

أنا أحاول تشغيل الأمر بوويرشيل التالية ضد بلدي تبادل 2010 سب 1 الخادم:

$colItems = Get-Mailbox -Filter {office -eq "ExportPST"}
ForEach($objItem in $colItems)
{
New-MailboxExportRequest -Mailbox $objItem -FilePath \\server\share$\"$objItem".pst
}

عندما أفعل هذا أتلقى الخطأ:

تعذر تحديد موقع قاعدة بيانات مناسبة لتخزين هذا الطلب.+ الفئةالمعلومات :باطلحجة:د / جون دو: ميلبوكسورمايلوسيريدباراميتر), قاعدة بيانات صندوق البريد...ماننتكسيبتيون + بالكاملالمؤهلإساءة :9322 سي بي 6 دي ، مايكروسوفت.تبادل.إدارة.المستلمالمهام.صندوق بريد جديدصدرطلب

ما أحاول القيام به هو البحث عبر مستخدمي إعلاني ، وتحديد موقع المستخدمين الذين لديهم سلسلة إكسبورتبست في حقل أوفيس ، ثم تصدير الأمر نيو ميلبوكس إكسبورتركيست لتصدير محتويات صندوق بريد المستخدم إلى توقيت المحيط الهادي لكل مستخدم عاد.

عند إضافة مضيف كتابة إلى ما سبق ، تكون القيم التي تم إخراجها صحيحة:

جديد-ميلبوكس إكسبورتركست-علبة البريد جدو-فيليباث " \\خادم\حصة John\جون دو.توقيت المحيط الهادي"

يتضمن الإخراج أيضا مسافة إضافية بين مسار الملفات " و \ ، والتي أتصور أنها ستسبب مشكلة بمجرد حل المشكلة المذكورة أعلاه ، هل هناك طريقة للاتصال بالسلاسل دون إضافة هذه المساحة الإضافية?

شكرا,

مات

هل كانت مفيدة؟

المحلول

أعتقد أن الاقتباس الخاص بك هو قليلا.يعمل توسيع سلسلة مزدوجة مزدوجة عندما تحيط بالسلسلة تماما، وليس فقط الجزء المتغير.

giveacodicetagpre.

إليك بناء جملة بديل يستخدم تنسيق / استبدال السلسلة .NET:

giveacodicetagpre.

لجعل استكشاف الأخطاء وإصلاحها / تصحيح الأخطاء أسهل، يمكنك تعيين مسار الملف إلى متغير، ثم قم بتمرير المتغير في معلمة GransoDicetagCode.وبهذه الطريقة يمكنك أن ترى بالضبط ما هي القيمة التي يتم تمريرها.

giveacodicetagpre.

نصائح أخرى

إذا $objItem هو سلسلة يمكنك القيام به:

-FilePath "\\server\share$\${objItem}.pst"

يمكنك معرفة ما إذا كانت سلسلة من خلال القيام بذلك:

$objItem.GetType().FullName

حتى لو لم تكن سلسلة ، فقد تعمل إذا كانت الكائنات ToString() يوفر الأسلوب القيمة التي تحتاج إليها لأن بوويرشيل سوف ندعو تلقائيا ToString() طريقة الكائن ووضعها في سلسلة الخاص بك.لذلك إذا كان هذا يمنحك القيمة التي تريدها: $objItem.ToString() ثم يمكنك أيضا استخدامه.إذا كان هناك خاصية ولكن مثل like objItem.Name أن لديك للوصول ثم سوف تحتاج إلى استخدام سلسلة سلسلة ، سوبكسريسيون أو تنسيق سلسلة صافي.

  • سلسلة: -FilePath ("\\server\share$\" + $objItem.Name + ".pst")
  • التعبير الفرعي: -FilePath "\\server\share$\$($objItem.Name).pst"
  • تنسيق سلسلة صافي: -FilePath ("\\server\share$\{0}.pst" -f $objItem.Name)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top