권한 상속을 끊은 파일을 PowerShell에서 찾습니다.
배경
SharePoint Online에는 "링크 가져오기"라는 파일의 URL을 가져올 때 해당 파일에 고유한 권한을 부여하는(=부모로부터 권한 상속 해제) 약간의 어려움이 있습니다.
SharePoint Online 링크 가져오기 기능 정보
무엇이 곤란한가?
"링크 가져오기"기능을 사용자가 사용할 때 이 기능은 파일의 권한 상속이 끊어질 것임을 사용자에게 알리는 메시지를 표시하지 않습니다.
또한 SharePoint는 파일 서버에 비해 개별 파일의 전체 경로를 얻는 방법을 알기 어렵습니다.
따라서 업로드 한 파일의 경로를 이메일이나 Microsoft Teams에 게시하려는 사용자가
「오, 링크를 취득할 수 있는 기능이 있는 것인가. 어느 것 포치트..
그리고 부담없이이 기능이 실행됩니다.
# 물론이 경우 사용자는 나쁘지 않습니다!
그러면 어떻게 될까?
이 기능을 사용자가 사용하면 사이트 관리자가 의도하지 않은 곳에서 항목 수준에서 고유한 권한 설정이 발생합니다.
따라서 다음과 같은 일이 발생할 수 있습니다.
· 게시 권한을 가진 담당자가 파일 업로드
↓
· 담당자가 「링크의 취득」을 사용해 파일의 URL을 취득. 이 때, 모르는 사이에 파일의 편집이 가능한 URL을 생성한다.
↓
· 메일에이 URL을 복사하여 전달
↓
· 열람 권한 만 부여 된 사람이 메일을받은 URL에서 파일을 열어 파일을 편집 할 수 있습니다.
이 기능을 모르는 고객으로부터 「어떤 파일에 고유 권한이 부여되어 버렸는지 일람으로 파악하고 싶다」라고 의뢰되는 일이 있습니다.
SharePoint에는 고유한 권한이 부여된 파일을 나열하는 기능이 없습니다.
SharePoint에는 고유한 권한이 부여된 파일을 나열하는 기능이 없습니다.
그래서 PowerShell을 사용하여 실현합니다.
SharePoint PnP Cmdlets에서 "Measure-PnPList"를 사용하면 고유한 권한이 부여된 파일(정확하게는 항목)을 찾을 수 있습니다.
Measure-PnPList에서 BrokePermissions 매개 변수와 ItemLevel 매개 변수를 함께 사용하면 다음 정보가 반환됩니다.
"링크 가져오기"기능을 사용자가 사용할 때 이 기능은 파일의 권한 상속이 끊어질 것임을 사용자에게 알리는 메시지를 표시하지 않습니다.
또한 SharePoint는 파일 서버에 비해 개별 파일의 전체 경로를 얻는 방법을 알기 어렵습니다.
따라서 업로드 한 파일의 경로를 이메일이나 Microsoft Teams에 게시하려는 사용자가
「오, 링크를 취득할 수 있는 기능이 있는 것인가. 어느 것 포치트..
그리고 부담없이이 기능이 실행됩니다.
# 물론이 경우 사용자는 나쁘지 않습니다!
그러면 어떻게 될까?
이 기능을 사용자가 사용하면 사이트 관리자가 의도하지 않은 곳에서 항목 수준에서 고유한 권한 설정이 발생합니다.
따라서 다음과 같은 일이 발생할 수 있습니다.
· 게시 권한을 가진 담당자가 파일 업로드
↓
· 담당자가 「링크의 취득」을 사용해 파일의 URL을 취득. 이 때, 모르는 사이에 파일의 편집이 가능한 URL을 생성한다.
↓
· 메일에이 URL을 복사하여 전달
↓
· 열람 권한 만 부여 된 사람이 메일을받은 URL에서 파일을 열어 파일을 편집 할 수 있습니다.
이 기능을 모르는 고객으로부터 「어떤 파일에 고유 권한이 부여되어 버렸는지 일람으로 파악하고 싶다」라고 의뢰되는 일이 있습니다.
SharePoint에는 고유한 권한이 부여된 파일을 나열하는 기능이 없습니다.
SharePoint에는 고유한 권한이 부여된 파일을 나열하는 기능이 없습니다.
그래서 PowerShell을 사용하여 실현합니다.
SharePoint PnP Cmdlets에서 "Measure-PnPList"를 사용하면 고유한 권한이 부여된 파일(정확하게는 항목)을 찾을 수 있습니다.
Measure-PnPList에서 BrokePermissions 매개 변수와 ItemLevel 매개 변수를 함께 사용하면 다음 정보가 반환됩니다.
SharePoint에는 고유한 권한이 부여된 파일을 나열하는 기능이 없습니다.
그래서 PowerShell을 사용하여 실현합니다.
SharePoint PnP Cmdlets에서 "Measure-PnPList"를 사용하면 고유한 권한이 부여된 파일(정확하게는 항목)을 찾을 수 있습니다.
Measure-PnPList에서 BrokePermissions 매개 변수와 ItemLevel 매개 변수를 함께 사용하면 다음 정보가 반환됩니다.
Measure-PnPList의 결과를 바탕으로 원하는 정보를 얻습니다.
위와 같이, 「Measure-PnPList」의 결과만으로는 해당 파일의 URL이나 실제로 부여되고 있는 권한을 모릅니다. 따라서 다음과 같이 해당 ListItem 객체를 가져옵니다.
foreach($web in $webs)
{
$lists = Get-PnPList -Web $web -Includes "DefaultNewFormUrl"
foreach($list in $lists)
{
#「固有の権限を持つフォルダ」と「固有の権限を持つアイテム」を取得
$listItemThatHasUniqueRoleAssignments = @()
$listItemThatHasUniqueRoleAssignments += Measure-PnPList -Web $web -Identity $list.Id.Guid -BrokenPermissions -ItemLevel
if($listItemThatHasUniqueRoleAssignments.Count -eq 0){ continue }
foreach($item in $listItemThatHasUniqueRoleAssignments)
{
if($item.Contains(":") -eq $false)
{
continue
}
elseif($list.DefaultNewFormUrl.EndsWith("/Forms/Upload.aspx") -or $list.DefaultNewFormUrl.EndsWith("/Forms/UploadEx.aspx"))
{
$listItemID = $item.Split(":")[1]
$listItem = Get-PnPListItem -Web $web -List $list.Id -Id $listItemID
## 【欲しい情報をCSVに出力】 ##
}
} #foreach($item in $listItemThatHasUniqueRoleAssignments)
}#foreach($list in $lists)
}#foreach($web in $webs)
Reference
이 문제에 관하여(권한 상속을 끊은 파일을 PowerShell에서 찾습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/wataruf01/items/908f1af02f5d9336e09a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
foreach($web in $webs)
{
$lists = Get-PnPList -Web $web -Includes "DefaultNewFormUrl"
foreach($list in $lists)
{
#「固有の権限を持つフォルダ」と「固有の権限を持つアイテム」を取得
$listItemThatHasUniqueRoleAssignments = @()
$listItemThatHasUniqueRoleAssignments += Measure-PnPList -Web $web -Identity $list.Id.Guid -BrokenPermissions -ItemLevel
if($listItemThatHasUniqueRoleAssignments.Count -eq 0){ continue }
foreach($item in $listItemThatHasUniqueRoleAssignments)
{
if($item.Contains(":") -eq $false)
{
continue
}
elseif($list.DefaultNewFormUrl.EndsWith("/Forms/Upload.aspx") -or $list.DefaultNewFormUrl.EndsWith("/Forms/UploadEx.aspx"))
{
$listItemID = $item.Split(":")[1]
$listItem = Get-PnPListItem -Web $web -List $list.Id -Id $listItemID
## 【欲しい情報をCSVに出力】 ##
}
} #foreach($item in $listItemThatHasUniqueRoleAssignments)
}#foreach($list in $lists)
}#foreach($web in $webs)
Reference
이 문제에 관하여(권한 상속을 끊은 파일을 PowerShell에서 찾습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/wataruf01/items/908f1af02f5d9336e09a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)