Cuestión : Buscando la herramienta que genera automáticamente el stsadm de SharePoint - emigrar las escrituras del usuario, al retitular a un usuario en directorio activo

Nuestra compañía retitula con frecuencia cuentas de usuario en directorio activo. Esto es un dolor verdadero porque SharePoint requiere el comando siguiente del stadm sea ejecutado cada vez esto hecha: el

" stsadm - migrateuser de o - name> de la conexión del de la conexión del
Currently los retitula en directorio activo y me envía por correo electrónico una hoja de balance con los cambios de nombre. I que un archivo de hornada que contiene los comandos necesarios del stsadm. el problema del

The es que este proceso es error - propenso. Estoy considerando construir una utilidad para hacer uno del following.

1. creo una línea de comando utilidad que lea los nombres del usuario de una hoja de balance, directorio activo de las actualizaciones y genere un archivo con los comandos del stsadm necesarios por estructura de SharePoint.

OR

2. un uso de las ventanas para retitular a usuarios en directorio activo. ¿Al mismo tiempo generaría automáticamente un archivo con el stsadm command.

Does que cualquiera sabe si existe tal utilidad o que tiene cualquier otra sugerencia?
class= del

Respuesta : Buscando la herramienta que genera automáticamente el stsadm de SharePoint - emigrar las escrituras del usuario, al retitular a un usuario en directorio activo

Encontró el código. Aquí están algunos de los pedazos dominantes del código/de la lógica.

Una vez más para cada webapplication, consigo cada colección del sitio. El código comienza en una colección dada del sitio.

Conseguir la lista de usuario de la colección del sitio.
Para cada usuario, cheque si el usuario existe en ANUNCIO vía LoginName (samAccountName). Si existe el usuario salto (migrateuser no necesario). Si el usuario no existe, no consigue el Sid del usuario y no mira para arriba el ANUNCIO basó en el Sid.
Si está encontrado, conseguir el nuevo nombre de conexión y generarlo emigran comando del usuario al archivo de hornada.
Observar que el archivo de hornada tendrá múltiplo el repetir de las líneas para el mismo usuario a través de las colecciones del sitio. Utilizo un comando de la clase del powershell de quitar los duplicados en el extremo (CROMATOGRAFÍA GASEOSA C:\migrateUsers.txt| Clase | GU > C:\migrateUsers.bat)



1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
[System.Reflection.Assembly]:: LoadWithPartialName (“Microsoft.SharePoint”) > $null
$site = nuevo-objeto Microsoft.SharePoint.SPSite ($SiteCollectionURL)
$web = $site.openweb ()

$siteCollUsers = $web.SiteUsers

foreach ($MyUser en $siteCollUsers)
{
	si (($MyUser.LoginName.ToLower () - ne “sharepoint \ sistema”) - y ($MyUser.LoginName.ToLower () - ne “autoridad del NT \ usuarios authenticados”) - y ne “autoridad del NT \ servicio local” (de $MyUser.LoginName.ToLower () -))
	{
		$UserName = $MyUser.LoginName.ToLower ()
		$UserNameSplit = $UserName.split (“\ ")
		Conexión del usuario del #Write-Anfitrión “: ”, $MyUser.LoginName, “SID: ”, $MyUser.Sid

		$returncheck = Check_User_In_ActiveDirectory $UserNameSplit [1] $mydomaincnx 
		si ($returncheck - eq $False)
		{

			$nameFromSID = ConvertTo-Nombre $MyUser.Sid
			si ($nameFromSID - ne “usuario no encontrado”)
			{
				$command = “stsadm.exe - migrateuser de o - oldlogin” + $MyUser.LoginNAme + “- newlogin” + $nameFromSID + “- ignoresidhistory”
				Escribir-salida $command | hacia fuera-archivo C:\migrateUsers.txt - añadir
			}


		}
	}
}

$web. Disponer ()
$site. Disponen ()

ConvertTo-Nombre de la función ($SID) 
{
   trampa 
   {
      “Usuario no encontrado”; continuar
   }
   ((nuevo-objeto security.principal.securityidentifier $SID) .translate ([security.principal.ntaccount])). Valor
}

función Check_User_In_ActiveDirectory ([secuencia] $LoginName, [secuencia] $domaincnx)
{
	$returnValue = $false
	#Filter en el usuario que existe y activó
	$strFilter = “(y (|(objectCategory=user) (objectCategory=group))(samAccountName=$LoginName))”
	$objDomain = Nuevo-Objeto System.DirectoryServices.DirectoryEntry ($domaincnx)

	$objSearcher = Nuevo-Objeto System.DirectoryServices.DirectorySearcher
	$objSearcher.SearchRoot = $objDomain
	$objSearcher.PageSize = 1000
	$objSearcher.Filter = $strFilter
	$objSearcher.SearchScope = “sub-estructura”

	#$objSearcher.PropertiesToLoad.Add (“nombre”)

	$colResults = $objSearcher.FindAll ()

	si ($colResults.Count - GT 0)
	{
		Cuenta del #Write-Anfitrión la “existe y Active: ”, $LoginName
		$returnValue = $true
	}
	$returnValue de vuelta
}
Otras soluciones  
 
programming4us programming4us