<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog de Sys Admin &#187; Active-Directory</title>
	<atom:link href="https://blog.developpez.com/sysadmin/pcategory/active-directory/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/sysadmin</link>
	<description></description>
	<lastBuildDate>Wed, 22 Jun 2011 20:07:22 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Mini Boite à outils Powershell</title>
		<link>https://blog.developpez.com/sysadmin/p10089/powershell/mini_boite_a_outils_powershell</link>
		<comments>https://blog.developpez.com/sysadmin/p10089/powershell/mini_boite_a_outils_powershell#comments</comments>
		<pubDate>Wed, 22 Jun 2011 20:07:22 +0000</pubDate>
		<dc:creator><![CDATA[sensei.dje]]></dc:creator>
				<category><![CDATA[Active-Directory]]></category>
		<category><![CDATA[powershell]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[C&#8217;est au fur et à mesure,en jouant avec powershell que j&#8217;ai noté et gardé ces bricoles&#8230; Si ça crame, ces p&#8217;tits scripts, scriptlets ou commandlet seront au moins sauvés ici &#8230; Accès à une clé de Registre &#160;$key= get-item &#34;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\&#34; A noter : en Powershell, le registre est considéré comme un lecteur &#171;&#160;logique&#160;&#187; (type C:\) d&#8217;où la syntaxe HKLM:\ &#8230; Accès à une propriété d&#8217;une clé de Registre $key= get-item &#34;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ $val= get-itemProperty [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>C&rsquo;est au fur et à mesure,en jouant avec powershell que j&rsquo;ai noté et gardé ces bricoles&#8230;<br />
Si ça crame, ces p&rsquo;tits scripts, scriptlets ou commandlet seront au moins sauvés ici &#8230;<br />
<span id="more-6"></span></p>
<h2>Accès à une clé de Registre</h2>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;$key= get-item &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\&quot;</div></div>
<p>A noter : en Powershell, le registre est considéré comme un lecteur &laquo;&nbsp;logique&nbsp;&raquo; (type C:\) d&rsquo;où la syntaxe <strong>HKLM:\</strong> &#8230; </p>
<h2>Accès à une propriété d&rsquo;une clé de Registre</h2>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$key= get-item &quot;HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ <br />
$val= get-itemProperty $key.PSPath |select ProductName</div></div>
<p>A noter : la propriété .pspath est indispensable pour bypass le chemin &laquo;&nbsp;physique&nbsp;&raquo; (exemple <em>c:\documents and settings</em>&#8230;) par défaut.<br />
La partie &laquo;&nbsp;|select&#8230;&nbsp;&raquo; est optionnelle, elle permet de ne récuperer que certaines propriétés ( select étant un alias de select-object) </p>
<h2>Liste des pilotes d&rsquo;impression installés</h2>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$liste=@() #important : pour creer un tableau <br />
$collection =Get-WmiObject win32_Printerdriver | select name,version, supportedplatform <br />
foreach ($drivers in $collection) <br />
{ $liste+=($drivers.name -split &quot;,&quot;)[0]} <br />
$liste</div></div>
<h2>Création unitaire d&rsquo;une file d&rsquo;impression</h2>
<p><em>Ce script n&rsquo;installe aucun pilote, il se contente de créer, partager et publier dans l&rsquo;AD une file correspondant aux variables renseignées&#8230;</em><br />
<em>Gros pré-requis : connaitre le libellé </em><strong>exact</strong><em> du pilote que l&rsquo;on va utiliser ! cf script précédent&#8230;</em></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$Name=&quot;IMP-machintruc&quot; <br />
$Comment=&quot;Patati...&quot; <br />
$Emplacement=&quot;Bureau XXX&quot; <br />
$DriverName = &quot;Lexmark Universal XL&quot; #&lt;== Tres important !! <br />
$IPAddress = &quot;192.168.XXX.XXX&quot; <br />
$PortName = &quot;Port-IPXXX&quot; <br />
&nbsp;<br />
# creation du port <br />
$ClassIPPrnPort= [wmiclass]'Win32_TCPIPPrinterPort' <br />
$NewPort= $ClassIPPrnPort.CreateInstance() &nbsp; &nbsp; <br />
$NewPort.HostAddress = $IPAddress <br />
$NewPort.Name = $PortName <br />
&nbsp;$NewPort.Protocol = 1 # &nbsp;1 = Raw, 2 = LPR <br />
$NewPort.SNMPEnabled = $false <br />
$ResultPort=$NewPort.Put() <br />
&nbsp;<br />
# ajout de la file <br />
$ClassPrinter= [wmiclass]'Win32_Printer' <br />
$NewPrinter= $ClassPrinter.CreateInstance() <br />
$NewPrinter.DriverName = $DriverName <br />
$NewPrinter.DeviceID = $Name <br />
$NewPrinter.PortName = $PortName <br />
$newprinter.Shared = $true <br />
$newprinter.Published = $true <br />
$newprinter.Sharename = $Name <br />
$newprinter.Location = $Emplacement <br />
$newprinter.Comment = $Comment <br />
&nbsp;<br />
$ResultPrinter=$NewPrinter.Put()</div></div>
<h2>Liste des services arrêtés d&rsquo;une machine distante</h2>
<p><em>Aussi connu sous le nom : le &laquo;&nbsp;ça ressemble à un &lsquo;ps pipe grep'&nbsp;&raquo;</em></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">get-service -computername &quot;ordXXXX&quot; | where {$_.status -eq &quot;stopped&quot; }</div></div>
<h2>Parcours d&rsquo;un tableau, concaténation et transtypage</h2>
<p><em>Parcours du tableau $var contenant les valeurs 0 1 2 3 4</em></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$var=0..4;$result=&quot;&quot;;$result=@() ; foreach ($val in $var) {$result+=[int]([string]$val + &quot;01&quot;);}</div></div>
<p>Bien initialiser la variable $result en tant que tableau.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ping des controleurs de domaine en powershell</title>
		<link>https://blog.developpez.com/sysadmin/p10062/powershell/ping_des_controleurs_de_domaine_en_power</link>
		<comments>https://blog.developpez.com/sysadmin/p10062/powershell/ping_des_controleurs_de_domaine_en_power#comments</comments>
		<pubDate>Thu, 16 Jun 2011 18:03:20 +0000</pubDate>
		<dc:creator><![CDATA[sensei.dje]]></dc:creator>
				<category><![CDATA[Active-Directory]]></category>
		<category><![CDATA[powershell]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[La supervision des contrôleurs de domaine est facilitée par des outils tels que le vénérable sonar ou son descendant ultrasound (google -> microsoft &#8230;) . On peut aussi être intéressé par une information quasi instantanée de premier niveau, à savoir, repondent-ils au ping&#8230; Dans cet esprit, j&#8217;ai ce vieux bout de code, interrogeant le domaine, montant la liste des DC et affichant en vert quand c&#8217;est bon, rouge quand ça répond pas. Le gros du [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>La supervision des contrôleurs de domaine est facilitée par des outils tels que le vénérable <em>sonar</em> ou son descendant <em>ultrasound</em> (google -> microsoft &#8230;) .<br />
On peut aussi être intéressé par une information quasi instantanée de premier niveau, à savoir, repondent-ils au ping&#8230;<span id="more-4"></span></p>
<p>Dans cet esprit, j&rsquo;ai ce vieux bout de code, interrogeant le domaine, montant la liste des DC et affichant en vert quand c&rsquo;est bon, rouge quand ça répond pas. </p>
<p>Le gros du code tourne autour d&rsquo;une récupération d&rsquo;info WMI, comme souvent..</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ping = new-object System.Net.Networkinformation.Ping <br />
$objDomain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain() &nbsp;<br />
$dc=$objDomain.FindAllDomainControllers() | Select-Object Name,IpAddress |sort name <br />
for ($i=0; $i -le $dc.count-1 ;$i++) { <br />
&nbsp; &nbsp;Write-Host -ForegroundColor &quot;white&quot; $dc[$i].name -NoNewLine &quot; - IP-&gt; &quot; &nbsp; &nbsp;<br />
&nbsp; &nbsp;if ($ping.send($dc[$i].name).status -eq &quot;success&quot; ) &nbsp;<br />
&nbsp; &nbsp;{ Write-Host -ForegroundColor &quot;green&quot; -NoNewLine $dc[$i].ipaddress} &nbsp;<br />
&nbsp; &nbsp;else &nbsp;<br />
&nbsp; &nbsp;{ Write-Host -ForegroundColor &quot;red&quot; -NoNewLine $dc[$i].ipaddress} &nbsp;<br />
&nbsp; &nbsp;Write-Host -ForegroundColor &quot;white&quot; -NoNewLine &quot; - R-&gt; &quot; <br />
&nbsp; &nbsp;if ($dc[$i].name.substring(0,2) -eq &quot;cm&quot;) <br />
&nbsp; &nbsp;{$ip=$dc[$i].Ipaddress.substring(0,$dc[$i].Ipaddress.length -3) + &quot;XXX&quot;; &nbsp; &nbsp;#&lt;- à modifier pour votre pattern à vous <br />
&nbsp; &nbsp; &nbsp; if ($ping.send($ip).status -eq &quot;success&quot; ) &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ Write-Host -ForegroundColor &quot;green&quot; $ip} &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ Write-Host -ForegroundColor &quot;red&quot; $ip} <br />
&nbsp; &nbsp;} <br />
&nbsp; &nbsp;else <br />
&nbsp; &nbsp;{ <br />
&nbsp; &nbsp;$Config = Get-Wmiobject win32_NetworkAdapterConfiguration -comp $dc[$i].name <br />
&nbsp; &nbsp;for ($j=0; $j -le $config.count -1;$j++) { <br />
&nbsp; &nbsp; &nbsp; if ($config[$j].IPAddress -ne $null ){ &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($ping.send($config[$j].DefaultIPGateway).status -eq &quot;success&quot; ) &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ Write-Host -ForegroundColor &quot;green&quot; $config[$j].DefaultIPGateway} &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ Write-Host -ForegroundColor &quot;red&quot; $config[$j].DefaultIPGateway} <br />
&nbsp; &nbsp; &nbsp; } <br />
&nbsp; &nbsp;} <br />
} <br />
}</div></div>
<p>Il sera possible de profiter de la boucle principale pour rajouter des tests variés, tels que la présence ou non de services tournant sur les serveurs (DFS, antivirus, spooler)&#8230; j&rsquo;y reviendrai&#8230;</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Réplication DFS corrompue par FRS&#8230;</title>
		<link>https://blog.developpez.com/sysadmin/p10053/active-directory/replication_dfs_corrompue_par_frs</link>
		<comments>https://blog.developpez.com/sysadmin/p10053/active-directory/replication_dfs_corrompue_par_frs#comments</comments>
		<pubDate>Tue, 14 Jun 2011 20:40:31 +0000</pubDate>
		<dc:creator><![CDATA[sensei.dje]]></dc:creator>
				<category><![CDATA[Active-Directory]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Il est relativement facile de corrompre toute son architecture DFS, dans un environnement AD2003 (R2 ). Voici quelques clés pour réduire le risque, et comment nettoyer les décombres après la catastrophe&#8230; Microsoft est plein d&#8217;humour, ou &#171;&#160;inattention interdite&#160;&#187; Offrir la possibilité de faire cohabiter 2 mécanismes de réplication différents passe encore, mais les nommer de manière quasi identique est un coup bas : Il ne faut surtout pas confondre la console mmc de la réplication [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Il est relativement facile de corrompre toute son architecture DFS, dans un environnement AD2003 (R2 ).<br />
Voici quelques clés pour réduire le risque, et comment nettoyer les décombres <em>après</em> la <em>catastrophe</em>&#8230;<span id="more-8"></span></p>
<h2>Microsoft est plein d&rsquo;humour, ou &laquo;&nbsp;inattention interdite&nbsp;&raquo;</h2>
<ul>
<li>Offrir la possibilité de faire cohabiter 2 mécanismes de réplication différents passe encore, mais les nommer de manière quasi identique est un coup bas :<br />
Il ne faut surtout pas confondre la console mmc de la réplication DFS (introduite en AD 2003 R2),nommée &laquo;&nbsp;<strong>Gestion du système de fichiers distribués DFS</strong>&nbsp;&raquo; avec<br />
la console mmc de réplication FRS, nommée &laquo;&nbsp;<strong>Système de fichiers distribués (DFS)</strong>&laquo;&nbsp;<br />
<img src="http://blog.developpez.com/media/rdesktop_-_vmp-hd-dfs02_052.png" width="473" height="473" alt="DFS!=FRS" /> </li>
<li>Non content de cohabiter, on peut <em>éditer</em> sans message d&rsquo;avertissement une réplication <strong>DFS</strong> via la console <strong>FRS</strong>. <br />
<strong>Et là, c&rsquo;est cuit.</strong>
</li>
</ul>
<h2>Bricoles à noter</h2>
<ul>
<li>La réplication FSR crée un dossier <em>FRS-Staging</em> sur c:\, pour y stocker temporairement les fichiers en cours de réplication.<br />Ce dossier peut grossir jusqu&rsquo;à occuper tout l&rsquo;espace&#8230;</li>
<li>La réplication DFS crée un dossier Private-DFS à l&rsquo;emplacement du dossier répliqué.<br />Ce dossier est censé rester dans la limite fixée par la valeur paramétrée via la console DFS concernant ce membre de réplication( 4go par défaut, prévoir de l&rsquo;augmenter quasiment à coup sûr). Cette limite peut être dépassée en cas de corruption massive&#8230;</li>
<li> DFS 2008 R2 n&rsquo;est pas visible en 2003 R2 : <br />
La mmc DFS 2008 R2 affichera sans problème les groupes de réplication créés avec 2003 R2, mais l&rsquo;inverse n&rsquo;est pas vrai. Attention aux effets de bords</li>
<li> DFS 2008 R2 : v6.0 / DFS 2003 R2 : v5.2 &#8230;</li>
</ul>
<h2>comment nettoyer une réplication corrompue</h2>
<p>Sur chaque serveur membre de réplication :</p>
<ul>
<li>Stopper les services ntfrs et DFS s&rsquo;ils sont lancés</li>
<li>Lancer Regedit</li>
<li>HKLM / currentcontrolset / services / Ntfrs</li>
<li>Supprimer les entrées surnuméraires dans /ReplicaSet et /CumulativeReplicaSet <br />
Attention, dans le cas d&rsquo;un hebergement sur controleur de domaine, cette clé de registre accueille aussi les paramètres de <strong>sysvol</strong> (sous entendu, pas touche, <em>verboten</em>)</li>
<li>Supprimer les dossiers FRS-staging sur c:\ , le dossier de réplication DFS (ou ce qu&rsquo;il en reste) ainsi que le partage réseau </li>
<li>Démarrer les services ntfrs et DFS</li>
</ul>
<p>Et l&rsquo;on prendra soin de souffler un grand coup avant de recréer sa topologie de réplication&#8230;</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VBS / WMI / Recherche de PC connectés à une file d&#8217;impression particulière</title>
		<link>https://blog.developpez.com/sysadmin/p10044/vbs/vbs_wmi_recherche_de_pc_connectes_a_une</link>
		<comments>https://blog.developpez.com/sysadmin/p10044/vbs/vbs_wmi_recherche_de_pc_connectes_a_une#comments</comments>
		<pubDate>Fri, 10 Jun 2011 17:02:00 +0000</pubDate>
		<dc:creator><![CDATA[sensei.dje]]></dc:creator>
				<category><![CDATA[Active-Directory]]></category>
		<category><![CDATA[vbs]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Cas de figure simple mais fréquent, une enquête de routine au sujet d&#8217;impressions fantômes&#8230; Ces impressions fantômes sont probablement le fait d&#8217;un pc mal configuré, plus que de la malveillance&#8230; Face à cela, à moins de disposer AVANT d&#8217;un écosystème de log, il faut prendre le problème à l&#8217;envers, et se demander qui est en mesure d&#8217;envoyer des jobs sur l&#8217;imprimante qui sort des documents que personne n&#8217;imprime &#8230; En pré requis, Configurer un partage [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Cas de figure simple mais fréquent, une enquête de routine au sujet <em>d&rsquo;impressions fantômes</em>&#8230;</p>
<p>Ces impressions fantômes sont probablement le fait d&rsquo;un pc mal configuré, plus que de la malveillance&#8230; </p>
<p>Face à cela, à moins de disposer <em>AVANT</em> d&rsquo;un écosystème de log, il faut prendre le problème à l&rsquo;envers, et se demander <em>qui</em> est en mesure d&rsquo;envoyer des jobs sur l&rsquo;imprimante qui sort des documents que <em>personne</em> n&rsquo;imprime &#8230;</p>
<p><span id="more-1"></span></p>
<p>En pré requis,  </p>
<ul>
<li>Configurer un partage réseau avec ACL large (tout le monde en écriture)</li>
<li>Rajouter l&rsquo;exécution de ce bout de script dans le <em>logon script</em> des utilisateurs</li>
</ul>
<p>Ensuite, tout le script repose sur une requête <em>WMI</em> extrêmement basique, et sur l&rsquo;écriture d&rsquo;un fichier.<br />
B-a-s-i-q-u-e, mais éprouvé !</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">'Scan port IP pour recherche d'une cible et écriture des positifs dans un partage réseau '--------------------------------------------------------------------------------------- <br />
&nbsp;<br />
Set WshNetwork = WScript.CreateObject(&quot;WScript.Network&quot;) &nbsp;<br />
NomMachine = WshNetwork.ComputerName &nbsp;<br />
NomUtilisateur = WshNetwork.UserName <br />
&nbsp;<br />
'Wscript.Echo &quot;&lt;debut&gt; &quot; <br />
&nbsp;<br />
ipcible=&quot;XXX.XXX.XXX.XXX&quot; ' &lt;- inserer votre ip cible ici <br />
partage=&quot;\\[votre serveur]\test_scan_port_ip\&quot; &nbsp;'&lt;-inserer votre partage réseau ici <br />
strComputer = Nommachine <br />
&nbsp;<br />
Set objWMIService = GetObject(&quot;winmgmts:&quot; _ &amp; &quot;{impersonationLevel=impersonate}!\\&quot; &amp; strComputer &amp; &quot;\root\cimv2&quot;) <br />
&nbsp;<br />
Set colPorts = objWMIService.ExecQuery _ (&quot;Select * from Win32_TCPIPPrinterPort&quot;) <br />
&nbsp;<br />
For Each objPort in colPorts &nbsp;<br />
'Wscript.Echo &quot;Description: &quot; &amp; objPort.Description &nbsp;<br />
'Wscript.Echo &quot;Host Address: &quot; &amp; objPort.HostAddress &nbsp;<br />
'Wscript.Echo &quot;Name: &quot; &amp; objPort.Name &nbsp;<br />
'Wscript.Echo &quot;Port Number: &quot; &amp; objPort.PortNumber &nbsp;<br />
'Wscript.Echo &quot;Protocol: &quot; &amp; objPort.Protocol &nbsp;<br />
'Wscript.Echo &quot;SNMP Community: &quot; &amp; objPort.SNMPCommunity &nbsp;<br />
'Wscript.Echo &quot;SNMP Dev Index: &quot; &amp; objPort.SnMPDevIndex &nbsp;<br />
'Wscript.Echo &quot;SNMP Enabled: &quot; &amp; objPort.SNMPEnabled &nbsp;<br />
'wscript.echo &quot;-------------------------------------&quot; &nbsp;<br />
if objPort.HostAddress=ipcible then &nbsp;<br />
'wscript.echo &quot;BINGO NOUS AVONS UN GAGNANT : &quot; &amp; NomMachine &amp; &quot;\&quot; &amp; NomUtilisateur &nbsp;<br />
'&lt;&lt;&lt;&lt;&lt;&lt;&lt; ECRITURE dans un fichier &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &nbsp;<br />
'déclaration file system object &nbsp;<br />
Dim fso &nbsp;<br />
'instanciation &nbsp;<br />
Set FSO = CreateObject(&quot;Scripting.FileSystemObject&quot;) &nbsp;<br />
'on instance le fichier texte dans lequel on veut ecrire &nbsp;<br />
Set Ftxt = FSO.createTextFile(partage &amp; NomMachine &amp; &quot;_&quot; &amp; NomUtilisateur &amp; &quot;.txt&quot; ,true) &nbsp;<br />
'true=ecrase 'On ecrit ce que l'on veut dans le fichier &nbsp;<br />
Ftxt.writeline (&quot;Description: &quot; &amp; objPort.Description) &nbsp;<br />
Ftxt.writeline (&quot;Host Address: &quot; &amp; objPort.HostAddress) &nbsp;<br />
Ftxt.writeline (&quot;Name: &quot; &amp; objPort.Name) &nbsp;<br />
Ftxt.writeline (&quot;Port Number: &quot; &amp; objPort.PortNumber) &nbsp;<br />
Ftxt.writeline (&quot;Protocol: &quot; &amp; objPort.Protocol) &nbsp;<br />
Ftxt.writeline (&quot;SNMP Community: &quot; &amp; objPort.SNMPCommunity) &nbsp;<br />
Ftxt.writeline (&quot;SNMP Dev Index: &quot; &amp; objPort.SnMPDevIndex) &nbsp;<br />
Ftxt.writeline (&quot;SNMP Enabled: &quot; &amp; objPort.SNMPEnabled) &nbsp;<br />
Ftxt.Close end if &nbsp;<br />
Next &nbsp;<br />
'Wscript.Echo &quot;&lt;fin&gt;&quot;</div></div>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lister les ordinateurs d&#8217;un domaine AD en powershell</title>
		<link>https://blog.developpez.com/sysadmin/p10038/powershell/lister_les_ordinateurs_d_un_domaine_ad_e</link>
		<comments>https://blog.developpez.com/sysadmin/p10038/powershell/lister_les_ordinateurs_d_un_domaine_ad_e#comments</comments>
		<pubDate>Tue, 07 Jun 2011 17:21:14 +0000</pubDate>
		<dc:creator><![CDATA[sensei.dje]]></dc:creator>
				<category><![CDATA[Active-Directory]]></category>
		<category><![CDATA[powershell]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Petit script très basique, pour jouer avec une requête AD très simple &#8230; $filtre = &#34;(objectCategory=Computer)&#34; $domaine = New-Object System.DirectoryServices.DirectoryEntry $chercheur = New-Object System.DirectoryServices.DirectorySearcher $chercheur.SearchRoot = $domaine $chercheur.PageSize = 1000 $chercheur.Filter = $filtre # Ajout de la propriété que l'on recherche... $prop = &#34;name&#34; foreach ($i in $prop){$chercheur.PropertiesToLoad.Add($i)} $colResults = $chercheur.FindAll() foreach ($objResult in $colResults) { $objItem = $objResult.Properties # Sortie vers l'écran write-host $objItem.name } L&#8217;intérêt de ce mini script réside dans la simplicité [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Petit script très basique, pour jouer avec une requête AD très simple &#8230;</p>
<div style="border: 1px solid black;background-color:lightgray;">
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$filtre = &quot;(objectCategory=Computer)&quot;<br />
$domaine = New-Object System.DirectoryServices.DirectoryEntry<br />
$chercheur = New-Object System.DirectoryServices.DirectorySearcher<br />
$chercheur.SearchRoot = $domaine<br />
$chercheur.PageSize = 1000<br />
$chercheur.Filter = $filtre<br />
<br />
# Ajout de la propriété que l'on recherche...<br />
$prop = &quot;name&quot;<br />
foreach ($i in $prop){$chercheur.PropertiesToLoad.Add($i)}<br />
<br />
$colResults = $chercheur.FindAll()<br />
<br />
foreach ($objResult in $colResults) {<br />
$objItem = $objResult.Properties <br />
# Sortie vers l'écran<br />
write-host $objItem.name<br />
}</div></div>
</div>
<p>L&rsquo;intérêt de ce mini script réside dans la simplicité de requêtage, <em>$filtre = &laquo;&nbsp;(objectCategory=Computer)&nbsp;&raquo;</em>, qui, associé à la connexion simplifiée à l&rsquo;AD (remember vbs&#8230;) de powershell, donne accès très rapidement aux infos des objets AD.</p>
<p>On pourrait afficher bien plus d&rsquo;informations en considérant <em>$prop</em> comme une collection de texte, et y rajouter d&rsquo;autres noms de propriétés.</p>
<p>Je renvoie vers <em>adsiedit</em> pour la litanie des propriétés des objets AD&#8230;</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
