Grim bytes
A blog about SharePoint, and hopefully other things.
Thursday, May 10, 2012
Diag des Alertes
http://blogs.developpeur.org/themit/archive/2012/05/08/sharepoint-mes-alertes-ne-marchent-pas-que-faire-comment-r-parer-ou-agir.aspx
Tuesday, April 17, 2012
tester du HTML dans une page sharepoint
pour reproduire un bug intermittent
$req=[system.Net.HttpWebRequest]::Create($url);
$req.UseDefaultCredentials = $true
$response = $req.GetResponse()
$stream = $response.GetResponseStream()
$reader = New-Object IO.StreamReader($stream)
$html = $reader.ReadToEnd()
IF ($html -match "banner-aew-europe.jpg")
{ … Bug actif ….}
Wednesday, April 11, 2012
Webpart Derniers documents d'un site
Elegant, standard, avec une doc.
http://www.fiechter.eu/blog/Lists/Posts/Post.aspx?ID=19&mobile=0
Monday, March 19, 2012
Thursday, March 8, 2012
FEB CU 2010
http://blogs.technet.com/b/stefan_gossner/archive/2012/03/07/february-2011-cu-for-sharepoint-2010-has-been-released.aspx
Tuesday, March 6, 2012
Supprimer un profil local
Force sharepoint à le recreer :
#Get Site Collection
$SPsite = Get-SPSite "http://monportail"
#$OpenWeb = $SPSite.OpenWeb($SiteCollection)
$user = "Domaine\user"
$OpenWeb = $SPSite.RootWeb
$User = $OpenWeb.SiteUsers | Where {$_.LoginName -eq $User}
IF ($user)
{ $OpenWeb.SiteUsers.Remove($User)
Write-Host "$User Supprimé: $Site/$SiteCollection" }
else
{Write-Host "Non trouvé"}
$OpenWeb.Dispose()
$SPSite.Dispose()
#Get Site Collection
$SPsite = Get-SPSite "http://monportail"
#$OpenWeb = $SPSite.OpenWeb($SiteCollection)
$user = "Domaine\user"
$OpenWeb = $SPSite.RootWeb
$User = $OpenWeb.SiteUsers | Where {$_.LoginName -eq $User}
IF ($user)
{ $OpenWeb.SiteUsers.Remove($User)
Write-Host "$User Supprimé: $Site/$SiteCollection" }
else
{Write-Host "Non trouvé"}
$OpenWeb.Dispose()
$SPSite.Dispose()
Wednesday, February 22, 2012
Script inventaire / monitoring V2 - Sharepoint 2007 et 2010
Pour rappel, le principe est de remplir une liste SharePoint automatiquement (tache planifiée) avec tous les sites crées sur le serveur (inventaire) et leur état (monitoring). Ceci inclus les bases de contenu et leur instance SQL. Egalement, on filtre les sites persos, le site de cache officewebapps pour une liste plus claire :
Le code powershell est un peu approximatif, remarques bienvenues.
#
# Code : Emmanuel ISSALY - version 1.4 - 23/02/2012
# modèle objet Sharepoint --> marche en 2007 (sinon les commandlets sharepoint 2010 sont mieux)
#
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") > $null;
function get-webpage([string]$url,[System.Net.NetworkCredential]$cred=$null)
{
$wc = new-object net.webclient
if($cred -eq $null)
{
$cred = [System.Net.CredentialCache]::DefaultCredentials;
}
$wc.credentials = $cred;
return $wc.DownloadString($url);
}
#credentials windows par défaut
$cred = [System.Net.CredentialCache]::DefaultCredentials;
#$cred = new-object System.Net.NetworkCredential("username","password","machinename")
# liste sharepoint qui va stocker les infos
$docliburl="http://vpt--02.ds.cdcam.com:22222/Lists/SiteState";
$reportsite=new-object Microsoft.SharePoint.SPSite($docliburl);
$reportweb=$reportsite.openweb();
$reportlist=$reportweb.GetList($docliburl);
# Pour chaque AAM de type "default" (shell de stsadm)
set-alias stsadm -value "stsadm.exe"
# Motifs URL indésirables (cache office webapps, sites persos)
$filtre= @("Office_","perso/")
[xml]$x=stsadm -o enumzoneurls
foreach ($zone in $x.ZoneUrls.Collection) {
write-host + $zone.default;
[xml]$sites=(stsadm -o enumsites -url $zone.Default) -notmatch [String]::Join('|',$filtre)
foreach ($site in $sites.Sites.Site) {
write-host +++ $site.Url;
if (!$site.url) { Continue } # pas de droits sur la base de contenu
# obtenir instance SQL
$DBName = [Microsoft.SharePoint.Administration.SPContentDatabase].GetProperty("Name")
$DBServer= [Microsoft.SharePoint.Administration.SPContentDatabase].GetProperty("ServiceInstance")
$rootSite = New-Object Microsoft.SharePoint.SPSite($site.Url)
$ContentDBCollection = $rootSite.WebApplication.ContentDatabases ;
foreach($ContentDB in $ContentDBCollection)
{
$nom = $DBName.GetValue($ContentDB, $null)
$server = ($DBServer.GetValue($ContentDB, $null)).NormalizedDataSource
}
# write-host $server "\\" $nom ;
# Pas de fuite mémoire
$rootSite.Dispose();
#recherche l'url dans la liste
$item = $reportlist.Items | Where { $_["Title"] -eq $site.url }
# crée la ligne si n'existe pas
if ($item -eq $null) {$item = $reportlist.Items.Add();}
$item["Title"] = $site.url;
$item["OKN2?"]= $True;
$item["Erreur2"]="";
$item["ContentDatabase"]=$nom ;
$item["SqlInstance"] = $server;
trap
{
write-host $error[0].exception.innerexception.message -foregroundcolor red -backgroundcolor yellow
$item["OKN2?"]= $False;
$item["Erreur2"]= $error[0].exception.innerexception.message;
continue;
}
$html=get-webpage -url $site.Url -cred $cred;
$item.Update();
}
}
$reportweb.dispose()
$reportsite.dispose()
Le code powershell est un peu approximatif, remarques bienvenues.
#
# Code : Emmanuel ISSALY - version 1.4 - 23/02/2012
# modèle objet Sharepoint --> marche en 2007 (sinon les commandlets sharepoint 2010 sont mieux)
#
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") > $null;
function get-webpage([string]$url,[System.Net.NetworkCredential]$cred=$null)
{
$wc = new-object net.webclient
if($cred -eq $null)
{
$cred = [System.Net.CredentialCache]::DefaultCredentials;
}
$wc.credentials = $cred;
return $wc.DownloadString($url);
}
#credentials windows par défaut
$cred = [System.Net.CredentialCache]::DefaultCredentials;
#$cred = new-object System.Net.NetworkCredential("username","password","machinename")
# liste sharepoint qui va stocker les infos
$docliburl="http://vpt--02.ds.cdcam.com:22222/Lists/SiteState";
$reportsite=new-object Microsoft.SharePoint.SPSite($docliburl);
$reportweb=$reportsite.openweb();
$reportlist=$reportweb.GetList($docliburl);
# Pour chaque AAM de type "default" (shell de stsadm)
set-alias stsadm -value "stsadm.exe"
# Motifs URL indésirables (cache office webapps, sites persos)
$filtre= @("Office_","perso/")
[xml]$x=stsadm -o enumzoneurls
foreach ($zone in $x.ZoneUrls.Collection) {
write-host + $zone.default;
[xml]$sites=(stsadm -o enumsites -url $zone.Default) -notmatch [String]::Join('|',$filtre)
foreach ($site in $sites.Sites.Site) {
write-host +++ $site.Url;
if (!$site.url) { Continue } # pas de droits sur la base de contenu
# obtenir instance SQL
$DBName = [Microsoft.SharePoint.Administration.SPContentDatabase].GetProperty("Name")
$DBServer= [Microsoft.SharePoint.Administration.SPContentDatabase].GetProperty("ServiceInstance")
$rootSite = New-Object Microsoft.SharePoint.SPSite($site.Url)
$ContentDBCollection = $rootSite.WebApplication.ContentDatabases ;
foreach($ContentDB in $ContentDBCollection)
{
$nom = $DBName.GetValue($ContentDB, $null)
$server = ($DBServer.GetValue($ContentDB, $null)).NormalizedDataSource
}
# write-host $server "\\" $nom ;
# Pas de fuite mémoire
$rootSite.Dispose();
#recherche l'url dans la liste
$item = $reportlist.Items | Where { $_["Title"] -eq $site.url }
# crée la ligne si n'existe pas
if ($item -eq $null) {$item = $reportlist.Items.Add();}
$item["Title"] = $site.url;
$item["OKN2?"]= $True;
$item["Erreur2"]="";
$item["ContentDatabase"]=$nom ;
$item["SqlInstance"] = $server;
trap
{
write-host $error[0].exception.innerexception.message -foregroundcolor red -backgroundcolor yellow
$item["OKN2?"]= $False;
$item["Erreur2"]= $error[0].exception.innerexception.message;
continue;
}
$html=get-webpage -url $site.Url -cred $cred;
$item.Update();
}
}
$reportweb.dispose()
$reportsite.dispose()
Subscribe to:
Posts (Atom)