بوويرشيل كيفية فتح جميع سيتكولكتيونس
-
10-12-2019 - |
سؤال
أحاول بناء برنامج نصي بوويرشيل ، الذي يتكرر على جميع سيتكولكتيونس والشيكات إذا كانوا على تأمين.
هذا لأنه في بعض الأحيان لا تعود بعض المجموعات من القراءة فقط ، بعد النسخ الاحتياطي الليلي.إذا كان سك على للقراءة فقط ، أريد أن تعيينه إلى unlock
.
هذا هو رمز بلدي حتى الآن:
$sites = get-spsite -limit all | foreach
{
write-host "Site Collection: " $_.RootWeb.Title
if ( $_.ReadOnly -eq $true)
{
write-host "Site Collection: "$_.RootWeb.Title "--- Read-only"
//How to unlock?
//Set-SPSite -identity $_.RootWeb -lockstate unlock
//$_.ReadOnly = $false
}
}
لا يمكنني التحقق مما إذا كان رمز إلغاء القفل الخاص بي يعمل ، لأنه ليس لدي بيئة اختبار في متناول اليد الآن.أحتاج إلى مساعدة للخط المعلق حول كيفية إلغاء القفل بشكل صحيح $_.RootWeb
أطيب التحيات
/ تحرير:لجعل الأمور واضحة.المشكلة ليست ، أن ليس لدي بيئات الاختبار.المشكلة هي أنني لا أستطيع الوصول إليها الآن.لا أستطيع معرفة من أعلى رأسي كيف يمكنني تعيين الخاصية للقراءة فقط إلى كاذبة أو كيفية الحصول على -identity
من عند $_.
للحصول على Set-SPSite
العمل في حلقة فوريتش.
المحلول
رمز بوك التالي يعمل بالنسبة لي:
foreach($site in Get-spsite "PORTALURL/*" -limit all)
{
Write-Host $site.RootWeb.Url
$site.ReadOnly = $true
Write-Host "Is read only:" $site.ReadOnly
$site.ReadOnly = $false
Write-Host "Is read only:" $site.ReadOnly
$site.Dispose()
}
يقوم أولا بتعيين موقع للقراءة فقط بنجاح ، وبعد ذلك يقوم بإلغاء تعيينه.
نصائح أخرى
لسوء الحظ ، ليس هناك حقا ما يعادل سطر واحد في بوويرشيل إلى" الحصول على " أقفال لمجموعات الموقع التي أعرفها.إذا قمت بإدراج خصائص كائن مجموعة الموقع ، فلا توجد خاصية تسمى" حالة القفل " أو ما شابه.يتم تخزين قيم القفل الموضحة في واجهة المستخدم فعليا عبر 4 خصائص مختلفة في كائن مجموعة الموقع:
- للقراءة فقط
- قراءة
- تم حظر الكتابة
- لوكيسو
للحصول على قائمة مجموعات المواقع المقفلة ، يمكنك الاستفادة من البرنامج النصي بوويرشيل أدناه.
Add-pssnapin Microsoft.SharePoint.Powershell -ErrorAction silentlycontinue
$sites = get-spsite -limit all | foreach
{
write-host "Checking lock for site collection: " $_.RootWeb.Title -foregroundcolor blue
if ($_.ReadOnly -eq $false -and $_.ReadLocked -eq $false -and $_.WriteLocked -eq $false)
{
write-host "The site lock value for the site collection"$_.RootWeb.Title "is: Unlocked" -foregroundcolor Green
}
if ($_.lockissue -ne $null)
{
write-host "The additional text was provided for the lock: " $_.LockIssue -foregroundcolor Green
}
elseif ($_.ReadOnly -eq $false -and $_.ReadLocked -eq $false -and $_.WriteLocked -eq $true)
{
write-host "The site lock value for the site collection"$_.RootWeb.Title "is: Adding Content Prevented" -foregroundcolor Green
}
elseif ($_.ReadOnly -eq $true -and $_.ReadLocked -eq $false -and $_.WriteLocked -eq $true)
{
write-host "The site lock value for the site collection"$_.RootWeb.Title "is: Read-only" -foregroundcolor Green
}
elseif ($_.ReadOnly -eq $null -and $_.ReadLocked -eq $null -and $_.WriteLocked -eq $null)
{
write-host "The site lock value for the site collection"$_.RootWeb.Title "is: No Access" -foregroundcolor Green
}
}
بعد تشغيل البرنامج النصي أعلاه سوف تحصل على معرفة التي يتم تأمين جميع مجموعات الموقع ، وذلك باستخدام رمز أدناه يمكنك فتحه ، بدلا من وضع فتح لجميع مجموعات الموقع,
باستخدام ستسادم
stsadm -o setsitelock -url <Site-collection-url> -lock Unlock
باستخدام بوويرشيل
Set-SPSite -identity "<Site-collection-url>" –lockstate Unlock
وفقا ل هذه المقالة تكنيت ل شاريبوانت 2010 ، رمز بوويرشيل لقفل أو فتح مجموعة الموقع على النحو التالي:
Set-SPSite -Identity "<SiteCollection>" -LockState "<State>"
أين سيتيكولكتيون هو عنوان ورل لمجموعة الموقع التي تريد قفلها أو فتحها.
و الدولة هي إحدى القيم التالية:
- فتح لفتح مجموعة الموقع وجعلها متاحة للمستخدمين.
- إضافات لمنع المستخدمين من إضافة محتوى جديد إلى مجموعة الموقع.لا يزال يسمح التحديثات والحذف.
- للقراءة فقط لمنع المستخدمين من إضافة أو تحديث أو حذف المحتوى.
- نواكسيس لمنع المستخدمين من الوصول إلى مجموعة الموقع ومحتواه.يتلقى المستخدمون الذين يحاولون الوصول إلى الموقع خطأ
لذلك لفتح ، يجب تعيين لوكستات إلى فتح
لكنني أنصحك حقا بإعداد بيئة اختبار لتجربة ذلك.إعداد بيئة مؤسسة شير في جهاز ظاهري.