/// <summary>
        /// Creates a PowerShell script file (.ps1) in the users temporary folder to support PowerShell based on CSOM.
        /// </summary>
        /// <param name="tenant"></param>
        /// <returns></returns>
        public static string CreatePowerShellScript(TenantAuthentication tenant)
        {
            string tempPSFilePath = Path.Combine(Path.GetTempPath(), string.Format("SPCB_PowerShell_{0}", POWERSHELL_OPENTENANT_FILENAME));

            if (File.Exists(tempPSFilePath))
            {
                File.Delete(tempPSFilePath);
            }

            var assembly     = System.Reflection.Assembly.GetExecutingAssembly();
            var resourceName = assembly.GetManifestResourceNames().SingleOrDefault(s => s.Contains(POWERSHELL_OPENTENANT_FILENAME));

            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                using (StreamReader reader = new StreamReader(stream))
                {
                    string powerShellScript = reader.ReadToEnd();

                    powerShellScript = ReplacePlaceHolder(powerShellScript, PLACEHOLDER_SCRIPT_LOCATION, tempPSFilePath);
                    powerShellScript = ReplacePlaceHolders(tenant, powerShellScript);

                    File.AppendAllText(tempPSFilePath, powerShellScript);
                }

            LogUtil.LogMessage("Created PowerShell script on location: {0}", tempPSFilePath);

            return(tempPSFilePath);
        }
Example #2
0
        public AddTenantForm(TenantAuthentication tenant)
        {
            InitializeComponent();

            _tenant = tenant;

            InitializeForm();
        }
        /// <summary>
        /// Replace place holders within script.
        /// </summary>
        /// <param name="tenant">Tenant authentication data.</param>
        /// <param name="script">PowerShell script with place holders.</param>
        /// <returns>Returns PowerShell script without place holders.</returns>
        private static string ReplacePlaceHolders(TenantAuthentication tenant, string script)
        {
            script = ReplacePlaceHolder(script, PLACEHOLDER_CURRENT_DIRECTORY, Environment.CurrentDirectory);
            script = ReplacePlaceHolder(script, PLACEHOLDER_TENANT_URL, tenant.AdminUrl.ToString());
            script = ReplacePlaceHolder(script, PLACEHOLDER_LOGIN_NAME, tenant.UserName);
            script = ReplacePlaceHolder(script, PLACEHOLDER_AUTHENTICATION, AUTHENTICATION_TENANT);
            script = ReplacePlaceHolder(script, PLACEHOLDER_CLIENT_SDK, HelpUtil.GetSDKDownloadTitle());
            script = ReplacePlaceHolder(script, PLACEHOLDER_CLIENT_SDK_URL, HelpUtil.GetSDKDownloadUrl());
            script = ReplacePlaceHolder(script, PLACEHOLDER_CLIENT_SDK_VERSION, HelpUtil.GetSDKMajorVersion());

            return(script);
        }