String is not in correct format C#

You should use multi-line string literal i.e. verbatim string:

MySiteScript = String.Format(@"$mysiteHostUrl ...
...
...$mysite.Dispose()", mySiteHostUrl, sAMAccountName);

Note – you can’t use backslash escaping for double quotes in verbatim string. Use quote-escape-sequence (two consecutive double-quote characters). Complete sample:

dMySiteScript = String.Format(@"$mysiteHostUrl = ""{0}""; 
$personalSiteGlobalAdminDisplayName = ""SharePoint Admin""; 
$mysite = Get-SPSite $mysiteHostUrl; 
$context = [Microsoft.Office.Server.ServerContext]::GetContext($mysite); 
$upm =  New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context);  
$AllProfiles = $upm.GetEnumerator(); foreach($profile in $AllProfiles) {{$DisplayName = $profile.DisplayName; 
$AccountName = $profile[[Microsoft.Office.Server.UserProfiles.PropertyConstants]::AccountName].Value;   
if($AccountName -like ""{1}"") 
  {{ 
    if($profile.PersonalSite -eq $Null) {{ $profile.CreatePersonalSite();  
    }} else  {{ 
        Write-Host ""Personal site already exists."" ;  }} 
  }} else {{ 
     Write-Host ""User not found."";  }}  
}}  $mysite.Dispose()", mySiteHostUrl, sAMAccountName);

Leave a Comment