none
user.id powershell RRS feed

  • Вопрос

  • привет.

    как получить user.id через powershell ?

    с с# можно например так :

    static void Main(string[] args)
            {
                SPSite MySite = new SPSite("http://Localhost/Service");
                SPWeb web = MySite.OpenWeb();
                String[] a = new String[] { "olga.sergeeva@mycompany.ru",  };
                foreach (string e in a)
                {
                    SPUser user = web.AllUsers.GetByEmail(e); //4017 //                string name = user.LoginName;
                    int b = user.ID;
                    Console.WriteLine(name);
                    Console.WriteLine(b);
                 
                }
                Console.ReadKey();
            }

    спасибо !
    10 июля 2012 г. 6:06

Ответы

  • Точно также и будет:

    $web = Get-SPWeb http://localhost/service/
    $a = @('olga.sergeeva@mycompany.ru')
    foreach ($e in $a)
    {
    	$user = $web.AllUsers.GetByEmail($e)
    	$id = $user.ID
    	$user.Name
    	$id
    }

    Вообще можете использовать Converting C# to PowerShell

    My contributions: SharePoint 2010 Solution Installer

    10 июля 2012 г. 7:17
  • ## .\SharePoint_Users_Read.ps1 "http://some.urlname.com/" "User Information List" ""
    ## .\SharePoint_Users_Read.ps1 "http://some.urlname.com/" "User Information List" "user, someone"
    
    param(
    [string] $rqurdstrPath = $(Throw "--SharePoint Core Path required."), #required parameter
    [string] $rqurdstrListName = $(Throw "--SharePoint List Name required."), #required parameter
    [string] $strTargetUser = "" #non-required user name for ID Return
    )
    
    Write-Host "Beginning Processing--`n"
    
    
    ## Global Variables ##
    $strUserIDReturn = ""
    
    write-host "rqurdstrPath: $rqurdstrPath "
    write-host "rqurdstrListName: $rqurdstrListName "
    
    ## Load SharePoint .NET Libraries ##
    [void][System.reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
    $site = new-object Microsoft.SharePoint.SPSite($rqurdstrPath)
    $userlist = $site.RootWeb.Lists[$rqurdstrListName]
    
    write-host "site: $site "
    write-host "userlist: $userlist`n"
    
    # Print the ID and Title of each list item  #$userlist.Items | Format-List -property ID, Title
    if($strTargetUser -eq "") {
    	Write-Host "--Displaying all Portal Users"
    	foreach($strItem in $userlist.Items) {
    		[string]$strItem.ID + "--"+$strItem.Title
    	}
    }
    else {
    	write-host "--Targeting specific user to return ID"	
    	$intUserIDReturn = -1
    	
    	foreach($strItem in $userlist.Items) {
    		$intUserID=[int]$strItem.ID
    		$strUserName=$strItem.Title
    		if($strUserName -eq $strTargetUser) {
    			$intUserIDReturn = $intUserID
    			break;
    		}
    	}
    	$intUserIDReturn
    }
    
    ## NOTE: don't forget to dispose your .NET objects! ##
    $site.RootWeb.Dispose()
    $site.Dispose()
    
    
    
    ## End Processing ##
    Write-Host "`nEnd Processing--`n"

    статья на английском:

    Using PowerShell to access SharePoint Sites, Users, and Groups


    • Изменено Victor Khazanov 10 июля 2012 г. 7:21
    • Помечено в качестве ответа Roman Zhukov 17 июля 2012 г. 10:57
    10 июля 2012 г. 7:20

Все ответы

  • Точно также и будет:

    $web = Get-SPWeb http://localhost/service/
    $a = @('olga.sergeeva@mycompany.ru')
    foreach ($e in $a)
    {
    	$user = $web.AllUsers.GetByEmail($e)
    	$id = $user.ID
    	$user.Name
    	$id
    }

    Вообще можете использовать Converting C# to PowerShell

    My contributions: SharePoint 2010 Solution Installer

    10 июля 2012 г. 7:17
  • ## .\SharePoint_Users_Read.ps1 "http://some.urlname.com/" "User Information List" ""
    ## .\SharePoint_Users_Read.ps1 "http://some.urlname.com/" "User Information List" "user, someone"
    
    param(
    [string] $rqurdstrPath = $(Throw "--SharePoint Core Path required."), #required parameter
    [string] $rqurdstrListName = $(Throw "--SharePoint List Name required."), #required parameter
    [string] $strTargetUser = "" #non-required user name for ID Return
    )
    
    Write-Host "Beginning Processing--`n"
    
    
    ## Global Variables ##
    $strUserIDReturn = ""
    
    write-host "rqurdstrPath: $rqurdstrPath "
    write-host "rqurdstrListName: $rqurdstrListName "
    
    ## Load SharePoint .NET Libraries ##
    [void][System.reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
    $site = new-object Microsoft.SharePoint.SPSite($rqurdstrPath)
    $userlist = $site.RootWeb.Lists[$rqurdstrListName]
    
    write-host "site: $site "
    write-host "userlist: $userlist`n"
    
    # Print the ID and Title of each list item  #$userlist.Items | Format-List -property ID, Title
    if($strTargetUser -eq "") {
    	Write-Host "--Displaying all Portal Users"
    	foreach($strItem in $userlist.Items) {
    		[string]$strItem.ID + "--"+$strItem.Title
    	}
    }
    else {
    	write-host "--Targeting specific user to return ID"	
    	$intUserIDReturn = -1
    	
    	foreach($strItem in $userlist.Items) {
    		$intUserID=[int]$strItem.ID
    		$strUserName=$strItem.Title
    		if($strUserName -eq $strTargetUser) {
    			$intUserIDReturn = $intUserID
    			break;
    		}
    	}
    	$intUserIDReturn
    }
    
    ## NOTE: don't forget to dispose your .NET objects! ##
    $site.RootWeb.Dispose()
    $site.Dispose()
    
    
    
    ## End Processing ##
    Write-Host "`nEnd Processing--`n"

    статья на английском:

    Using PowerShell to access SharePoint Sites, Users, and Groups


    • Изменено Victor Khazanov 10 июля 2012 г. 7:21
    • Помечено в качестве ответа Roman Zhukov 17 июля 2012 г. 10:57
    10 июля 2012 г. 7:20
  •  скачал. net reflector. c codeplex скачал , дополнительные утилиты для рефлектора .

    теперь научите им пользоваться  :)

    рефлектор ведь открывает только сборки , так ?

    т.е после f5 я могу юзать рефлектор , какие самые интересные и полезные фичи у рефлектора, которае помогают в разработке sharepoint  ?

    p.s 1. часто наталкиваюсь на какие-нибудь такие фразы  

    >>  возьмите Reflector, посмотрите как работает SPSecurityTrimmedControl

    это как ??

    p.s 2. википедию читал :)

    в статье предложенной от  aviw, коверитруется с# в powershell.

    а обратное действие возможно ?

    спасибо !

    25 июля 2012 г. 8:31
  • Да, рефлектор открывает сборки. Компилируете ваш проект и открываете вашу сборку в рефлекторе.

    Чем может помочь... Можете смотреть как сделано что-то в самом SharePoint, что в свою очередь поможет вам, например, сделать похожий функционал (но по своему).

    P.S.2 - Да, возможно конечно.


    My contributions: SharePoint 2010 Solution Installer

    25 июля 2012 г. 9:23
  • >> P.S.2 - Да, возможно конечно

    а как ? допустим у меня есть script.ps1 - это ведь не сборка  .)

    file - open assembly - находил свой срипт - ничего не получилось.

    или как ?

    25 июля 2012 г. 9:54
  • >> P.S.2 - Да, возможно конечно

    а как ? допустим у меня есть script.ps1 - это ведь не сборка  .)

    file - open assembly - находил свой срипт - ничего не получилось.

    или как ?

    А нет, чОто я затупил... )

    Можно запускать скрипты из кода. А также думаю не трудно перевести скрипт в код вручную, это намного проще чем из кода в скрипт.


    My contributions: SharePoint 2010 Solution Installer

    25 июля 2012 г. 10:11