代码之家  ›  专栏  ›  技术社区  ›  Tom Stickel

将Powershell Connect PnPOnline转换为C#

  •  0
  • Tom Stickel  · 技术社区  · 7 年前

    寻找如何将sharepoint PnP的大量powershell转换为C#

    例子: Connect-PnPOnline

    一些能量地狱

    $PasswordAsSecure = ConvertTo-SecureString $Password -AsPlainText -Force
    $Credentials = New-Object System.Management.Automation.PSCredential ($UserName , $PasswordAsSecure)
    Connect-PnPOnline -Url $SiteUrl -Credentials $Credentials
    $RootSiteContext = Get-PnPContext
    
    # Determine the SharePoint version
    $ServerVersion = (Get-PnPContext).ServerLibraryVersion.Major
    

    下面是一些更为具体的powershell“工作”,但是github示例库并没有那么大的帮助。

                        Connect-PnPOnline -Url $hubUrl -Credentials $O365Credentials
                        $sc = Get-PnPSite
                        $w = Get-PnPWeb
                        $baseRelUrl=$w.ServerRelativeUrl
                        if (-not $baseRelUrl ) {
                              throw "hub site isn't created"
                        }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Gautam Sheth    7 年前

    PnP PowerShell在引擎盖下包裹了很多东西,让你更轻松。

    var siteUrl = "https://your-sitecollection-url";
    var userName = "userName";
    var password = "password";
    
    using (ClientContext clientContext = new ClientContext(siteUrl))
    {
        SecureString securePassword = new SecureString();
        foreach (char c in password.ToCharArray())
        {
            securePassword.AppendChar(c);
        }
    
        clientContext.AuthenticationMode = ClientAuthenticationMode.Default;
        clientContext.Credentials = new SharePointOnlineCredentials(userName, securePassword);
    
        clientContext.ExecuteQuery();
    
        var ServerVersion = clientContext.ServerLibraryVersion.Major;
    
        var site = clientContext.Site;
        var web = clientContext.Site.RootWeb;
    
        clientContext.Load(web, w => w.ServerRelativeUrl);
        clientContext.ExecuteQuery();
    
        var serverRelativeUrl = clientContext.Site.RootWeb.ServerRelativeUrl;
    }
    

    要执行此代码,您需要 Microsoft.SharePointOnline.CSOM 你的项目中的nuget包。