protected override void ProcessRecord() { PSCredential creds = null; if (Credentials != null) { creds = Credentials.Credential; } if (ParameterSetName == "Token") { SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateSPOnlineConnection(new Uri(Url), Realm, AppId, AppSecret, Host, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, SkipTenantAdminCheck); } else if (UseWebLogin) { SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateWebloginConnection(new Uri(Url), MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, SkipTenantAdminCheck); } else if (UseAdfs) { creds = GetCredentials(); if (creds == null) { creds = Host.UI.PromptForCredential(Properties.Resources.EnterYourCredentials, "", "", ""); } SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateAdfsConnection(new Uri(Url), creds, Host, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, SkipTenantAdminCheck); } #if !ONPREMISES else if (ParameterSetName == "NativeAAD") { if (ClearTokenCache) { string appDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); string configFile = Path.Combine(appDataFolder, "SharePointPnP.PowerShell\\tokencache.dat"); if (File.Exists(configFile)) { File.Delete(configFile); } } SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InitiateAzureADNativeApplicationConnection(new Uri(Url), ClientId, new Uri(RedirectUri), MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, SkipTenantAdminCheck); } else if (ParameterSetName == "AppOnlyAAD") { SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InitiateAzureADAppOnlyConnection(new Uri(Url), ClientId, Tenant, CertificatePath, CertificatePassword, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, SkipTenantAdminCheck); } #endif else { if (!CurrentCredentials && creds == null) { creds = GetCredentials(); if (creds == null) { creds = Host.UI.PromptForCredential(Properties.Resources.EnterYourCredentials, "", "", ""); } } SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateSPOnlineConnection(new Uri(Url), creds, Host, CurrentCredentials, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, SkipTenantAdminCheck); } WriteVerbose(string.Format("PnP PowerShell Cmdlets ({0}): Connected to {1}", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(), Url)); }
private void ConnectNativAAD(string clientId, string redirectUrl) { string appDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); string configFolder = Path.Combine(appDataFolder, "SharePointPnP.PowerShell"); Directory.CreateDirectory(configFolder); // Ensure folder exists if (ClearTokenCache) { string configFile = Path.Combine(configFolder, "tokencache.dat"); if (File.Exists(configFile)) { File.Delete(configFile); } } SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InitiateAzureADNativeApplicationConnection( new Uri(Url), clientId, new Uri(redirectUrl), MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck, AzureEnvironment); }
protected override void ProcessRecord() { #if !ONPREMISES if (SPOnlineConnection.CurrentConnection.CertFile != null) { #if !NETSTANDARD2_1 SPOnlineConnectionHelper.CleanupCryptoMachineKey(SPOnlineConnection.CurrentConnection.CertFile); #endif SPOnlineConnection.CurrentConnection.CertFile = null; } #endif var success = false; if (Connection != null) { success = DisconnectProvidedService(Connection); } else { success = DisconnectCurrentService(); } if (!success) { throw new InvalidOperationException(Properties.Resources.NoConnectionToDisconnect); } var provider = SessionState.Provider.GetAll().FirstOrDefault(p => p.Name.Equals(SPOProvider.PSProviderName, StringComparison.InvariantCultureIgnoreCase)); if (provider != null) { //ImplementingAssembly was introduced in Windows PowerShell 5.0. #if !NETSTANDARD2_1 var drives = Host.Version.Major >= 5 ? provider.Drives.Where(d => d.Provider.Module.ImplementingAssembly.FullName == Assembly.GetExecutingAssembly().FullName) : provider.Drives; #else var drives = Host.Version.Major >= 5 ? provider.Drives.Where(d => d.Provider.Module.Name == Assembly.GetExecutingAssembly().FullName) : provider.Drives; #endif foreach (var drive in drives) { SessionState.Drive.Remove(drive.Name, true, "Global"); } } }
protected override void ProcessRecord() { PSCredential creds = null; if (Credentials != null) { creds = Credentials.Credential; } if (ParameterSetName == "Token") { SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateSPOnlineConnection(new Uri(Url), Realm, AppId, AppSecret, Host, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck); } else if (UseWebLogin) { SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateWebloginConnection(new Uri(Url), MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck); } else if (UseAdfs) { if (creds == null) { if ((creds = GetCredentials()) == null) { creds = Host.UI.PromptForCredential(Properties.Resources.EnterYourCredentials, "", "", ""); } } SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateAdfsConnection(new Uri(Url), creds, Host, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck); } #if !ONPREMISES else if (ParameterSetName == "NativeAAD") { if (ClearTokenCache) { string appDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); string configFile = Path.Combine(appDataFolder, "SharePointPnP.PowerShell\\tokencache.dat"); if (File.Exists(configFile)) { File.Delete(configFile); } } SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InitiateAzureADNativeApplicationConnection(new Uri(Url), ClientId, new Uri(RedirectUri), MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck); } else if (ParameterSetName == "AppOnlyAAD") { SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InitiateAzureADAppOnlyConnection(new Uri(Url), ClientId, Tenant, CertificatePath, CertificatePassword, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck); } #endif else { if (!CurrentCredentials && creds == null) { creds = GetCredentials(); if (creds == null) { creds = Host.UI.PromptForCredential(Properties.Resources.EnterYourCredentials, "", "", ""); } } SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateSPOnlineConnection(new Uri(Url), creds, Host, CurrentCredentials, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck, AuthenticationMode); } WriteVerbose($"PnP PowerShell Cmdlets ({System.Reflection.Assembly.GetExecutingAssembly().GetName().Version}): Connected to {Url}"); if (CreateDrive && SPOnlineConnection.CurrentConnection.Context != null) { var provider = SessionState.Provider.GetAll().FirstOrDefault(p => p.Name.Equals("SPO", StringComparison.InvariantCultureIgnoreCase)); if (provider != null) { if (provider.Drives.Any(d => d.Name.Equals(DriveName, StringComparison.InvariantCultureIgnoreCase))) { SessionState.Drive.Remove(DriveName, true, "Global"); } var drive = new PSDriveInfo(DriveName, provider, string.Empty, Url, null); SessionState.Drive.New(drive, "Global"); } } }
protected override void ProcessRecord() { if (IgnoreSslErrors) { ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true; } PSCredential creds = null; if (Credentials != null) { creds = Credentials.Credential; } if (ParameterSetName == ParameterSet_TOKEN) { SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateSPOnlineConnection(new Uri(Url), Realm, AppId, AppSecret, Host, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck); } else if (UseWebLogin) { SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateWebloginConnection(new Uri(Url), MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck); } else if (UseAdfs) { if (creds == null) { if ((creds = GetCredentials()) == null) { creds = Host.UI.PromptForCredential(Properties.Resources.EnterYourCredentials, "", "", ""); } } SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateAdfsConnection(new Uri(Url), creds, Host, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck); } #if !ONPREMISES else if (ParameterSetName == ParameterSet_SPOManagement) { ConnectNativAAD(SPOManagementClientId, SPOManagementRedirectUri); } else if (ParameterSetName == ParameterSet_NATIVEAAD) { ConnectNativAAD(ClientId, RedirectUri); } else if (ParameterSetName == ParameterSet_APPONLYAAD) { SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InitiateAzureADAppOnlyConnection(new Uri(Url), ClientId, Tenant, CertificatePath, CertificatePassword, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck, AzureEnvironment); } #endif #if ONPREMISES else if (ParameterSetName == ParameterSet_HIGHTRUST) { SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateHighTrustConnection(Url, ClientId, HighTrustCertificatePath, HighTrustCertificatePassword, HighTrustCertificateIssuerId, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck); } #endif else { if (!CurrentCredentials && creds == null) { creds = GetCredentials(); if (creds == null) { creds = Host.UI.PromptForCredential(Properties.Resources.EnterYourCredentials, "", "", ""); } } SPOnlineConnection.CurrentConnection = SPOnlineConnectionHelper.InstantiateSPOnlineConnection(new Uri(Url), creds, Host, CurrentCredentials, MinimalHealthScore, RetryCount, RetryWait, RequestTimeout, TenantAdminUrl, SkipTenantAdminCheck, AuthenticationMode); } WriteVerbose($"PnP PowerShell Cmdlets ({System.Reflection.Assembly.GetExecutingAssembly().GetName().Version}): Connected to {Url}"); if (CreateDrive && SPOnlineConnection.CurrentConnection.Context != null) { var provider = SessionState.Provider.GetAll().FirstOrDefault(p => p.Name.Equals(SPOProvider.PSProviderName, StringComparison.InvariantCultureIgnoreCase)); if (provider != null) { if (provider.Drives.Any(d => d.Name.Equals(DriveName, StringComparison.InvariantCultureIgnoreCase))) { SessionState.Drive.Remove(DriveName, true, "Global"); } var drive = new PSDriveInfo(DriveName, provider, string.Empty, Url, null); SessionState.Drive.New(drive, "Global"); } } }