<?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>RO Windows Administrators Weblog &#187; Scripting</title>
	<atom:link href="http://www.winadmin.ro/category/scripting/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.winadmin.ro</link>
	<description>Weblogul adminilor de Windows din Romania.</description>
	<lastBuildDate>Fri, 03 Feb 2012 19:33:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>$Host in Powershell &#8211; Cannot overwrite variable Host because it is read-only or constant.</title>
		<link>http://www.winadmin.ro/2012/02/03/host-in-powershell-cannot-overwrite-variable-host-because-it-is-read-only-or-constant/</link>
		<comments>http://www.winadmin.ro/2012/02/03/host-in-powershell-cannot-overwrite-variable-host-because-it-is-read-only-or-constant/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 08:53:16 +0000</pubDate>
		<dc:creator>Andrei Ungureanu</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[$Host]]></category>
		<category><![CDATA[Powershell]]></category>

		<guid isPermaLink="false">http://www.winadmin.ro/2012/02/03/host-in-powershell-cannot-overwrite-variable-host-because-it-is-read-only-or-constant/</guid>
		<description><![CDATA[Azi m-am uitat minute bune la eroarea Powershell “Cannot overwrite variable Host because it is read-only or constant.” Codul arata cam asa: ForEach ($Host in $Hosts) { } Se pare ca $Host e rezervat in Powershell. Schimband in altceva mi-a rezolvat problema. ForEach ($VMHost in $Hosts) { } Nice …]]></description>
			<content:encoded><![CDATA[<p>Azi m-am uitat minute bune la eroarea Powershell “Cannot overwrite variable Host because it is read-only or constant.”</p>
<p>Codul arata cam asa:</p>
<p>ForEach ($Host in $Hosts)   <br />{    <br />}</p>
<p>Se pare ca $Host e rezervat in Powershell. Schimband in altceva mi-a rezolvat problema.</p>
<p>ForEach ($VMHost in $Hosts)   <br />{    <br />}</p>
<p>Nice …</p>
]]></content:encoded>
			<wfw:commentRss>http://www.winadmin.ro/2012/02/03/host-in-powershell-cannot-overwrite-variable-host-because-it-is-read-only-or-constant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PowerShell Web Access</title>
		<link>http://www.winadmin.ro/2011/11/18/powershell-web-access/</link>
		<comments>http://www.winadmin.ro/2011/11/18/powershell-web-access/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 22:00:00 +0000</pubDate>
		<dc:creator>Andrei Ungureanu</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[PowerShell Web Access]]></category>

		<guid isPermaLink="false">http://www.winadmin.ro/2011/11/18/powershell-web-access/</guid>
		<description><![CDATA[Incercand sa mai arunc o privire in viitor m-am mai uitat prin feature-urile din Windows 8 si am dat de PowerShell Web Access (pe scurt PSWA). Acest PSWA este de fapt o aplicatie web ce permite deschiderea unei sesiuni Powershell via PS Remoting pe o alta masina. De testat efectiv nu am reusit pentru ca [...]]]></description>
			<content:encoded><![CDATA[<p>Incercand sa mai arunc o privire in viitor m-am mai uitat prin feature-urile din Windows 8 si am dat de PowerShell Web Access (pe scurt PSWA). Acest PSWA este de fapt o aplicatie web ce permite deschiderea unei sesiuni Powershell via PS Remoting pe o alta masina.</p>
<p>De testat efectiv nu am reusit pentru ca nu a prea mers si nu exista decat un singur caz in care cineva a confirmat functionarea:</p>
<p><a title="http://blog.powershell.no/2011/09/14/windows-powershell-web-access/" href="http://blog.powershell.no/2011/09/14/windows-powershell-web-access/">http://blog.powershell.no/2011/09/14/windows-powershell-web-access/</a></p>
<p>Cum este un produs pre-beta eu am renuntat rapid. Daca voi reusiti, spuneti-mi si mie (dar nu investiti prea mult timp, mai bine asteptati o alta versiune). Pana atunci asteptam MVP-ii.</p>
<p>Mai jos aveti imagini de la instalarea PSWA.</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/11/image7.png"><img style="margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; border: 0px;" src="http://www.winadmin.ro/wp-content/uploads/2011/11/image_thumb7.png" alt="image" width="644" height="472" border="0" /></a></p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/11/image8.png"><img style="margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; border: 0px;" src="http://www.winadmin.ro/wp-content/uploads/2011/11/image_thumb8.png" alt="image" width="603" height="484" border="0" /></a></p>
<p>In C:\Windows\Web\PowerShellWebAccess\wwwroot gasiti si un readme.txt cu toata procedura ce trebuie facuta:</p>
<p>To complete the installation of Windows PowerShell Web Access, please perform the<br />
following tasks:</p>
<p>1) Open a Windows PowerShell console with elevated user rights.</p>
<p>To do this, right click on PowerShell.exe, or a Windows PowerShell shortcut,<br />
and then click &#8220;Run as administrator.&#8221;</p>
<p>2) Be sure your Windows PowerShell environment is configured to run scripts.</p>
<p>For more information, see &#8220;Running Scripts from Within Windows PowerShell&#8221;<br />
(<a href="http://technet.microsoft.com/en-us/library/ee176949.aspx)">http://technet.microsoft.com/en-us/library/ee176949.aspx)</a>.</p>
<p>3) Run the following script:</p>
<p>${env:\windir}\Web\PowerShellWebAccess\wwwroot\setup.ps1</p>
<p>This is typically C:\Windows\Web\PowerShellWebAccess\wwwroot\setup.ps1</p>
<p>4) Create a server certificate.</p>
<p>For a test server, you can create a self-signed certificate by using the<br />
Web Server (IIS) management console:</p>
<p>(${env:\windir}\system32\inetsrv\InetMgr.exe)</p>
<p>From within the IIS management console, open the Web Servers parent node.<br />
This is typically the node immediately under the Start Page node.</p>
<p>In the results pane, select &#8220;Server Certificates&#8221; on the center pane, then<br />
select &#8220;Create Self-Signed Certificate.&#8221;</p>
<p>5) Create an SSL binding.</p>
<p>In the IIS management console, select &#8220;Default Web Site,&#8221; and then click<br />
&#8220;Bindings&#8221; on the &#8220;Actions&#8221; menu. Click &#8220;Add,&#8221; select &#8220;https&#8221; on<br />
the &#8220;Type&#8221; pull-down menu, and then in the &#8220;SSL certificate&#8221; list, select the<br />
certificate that you created in step 4.</p>
<p>For more information about how to create a server certificate and an SSL binding,<br />
see &#8220;How to Set Up SSL on IIS 7&#8243;<br />
(<a href="http://learn.iis.net/page.aspx/144/how-to-set-up-ssl-on-iis-7">http://learn.iis.net/page.aspx/144/how-to-set-up-ssl-on-iis-7</a>).</p>
<p>&nbsp;</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/11/image9.png"><img style="margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; border: 0px;" src="http://www.winadmin.ro/wp-content/uploads/2011/11/image_thumb9.png" alt="image" width="604" height="484" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.winadmin.ro/2011/11/18/powershell-web-access/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Powershell v3</title>
		<link>http://www.winadmin.ro/2011/11/17/powershell-v3/</link>
		<comments>http://www.winadmin.ro/2011/11/17/powershell-v3/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 05:00:00 +0000</pubDate>
		<dc:creator>Andrei Ungureanu</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Powershell]]></category>

		<guid isPermaLink="false">http://www.winadmin.ro/2011/11/17/powershell-v3/</guid>
		<description><![CDATA[In caz ca vreti sa testati Powershell 3.0, acesta este disponibil pentru download ca CTP, in pachetul Windows Management Framework 3.0 CTP1. De tinut minte ca dupa instalarea powershell 3.0, engine-ul&#160; 2.0 este in continuare disponibil si switchul se poate face foarte usor prin comanda powershell -version 2.0. Iata si cateva detalii luate de pe [...]]]></description>
			<content:encoded><![CDATA[<p>In caz ca vreti sa testati Powershell 3.0, acesta este disponibil pentru download ca CTP, in pachetul <a href="http://www.microsoft.com/download/en/details.aspx?id=27548">Windows Management Framework 3.0 CTP1.</a></p>
<p>De tinut minte ca dupa instalarea powershell 3.0, engine-ul&#160; 2.0 este in continuare disponibil si switchul se poate face foarte usor prin comanda <em>powershell -version 2.0</em>.</p>
<p>Iata si cateva detalii luate de pe <a href="http://blogs.msdn.com/b/powershell/archive/2011/09/20/windows-management-framework-3-0-community-technology-preview-ctp-1-available-for-download.aspx">Window Powershell Blog</a>:</p>
<p><strong>Windows PowerShell 3.0      <br /></strong>Some of the new features in Windows PowerShell 3.0 include:</p>
<ul>
<li><strong>Workflows </strong>      <br />Workflows that run long-running activities (in sequence or in parallel) to perform complex, larger management tasks, such as multi-machine application provisioning. Using the Windows Workflow Foundation at the command line, Windows PowerShell workflows are repeatable, parallelizable, interruptible, and recoverable. </li>
<li><strong>Robust Sessions </strong>      <br />Robust sessions that automatically recover from network failures and interruptions and allow you to disconnect from the session, shut down the computer, and reconnect from a different computer without interrupting the task. </li>
<li><strong>Scheduled Jobs        <br /></strong>Scheduled jobs that run regularly or in response to an event. </li>
<li><strong>Delegated Administration</strong>      <br />Commands that can be executed with a delegated set of credentials so users with limited permissions can run critical jobs </li>
<li><strong>Simplified Language Syntax        <br /></strong>Simplified language syntax that make commands and scripts look a lot less like code and a lot more like natural language. </li>
<li><strong>Cmdlet Discovery</strong>      <br />Improved cmdlet discovery and automatic module loading that make it easier to find and run any of the cmdlets installed on your computer. </li>
<li><strong>Show-Command</strong>      <br />Show-Command, a cmdlet and ISE Add-On that helps users find the right cmdlet, view its parameters in a dialog box, and run it. </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.winadmin.ro/2011/11/17/powershell-v3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Powershell ISE not installed by default on Windows Server 2008 R2</title>
		<link>http://www.winadmin.ro/2011/10/18/powershell-ise-not-installed-by-default-on-windows-server-2008-r2/</link>
		<comments>http://www.winadmin.ro/2011/10/18/powershell-ise-not-installed-by-default-on-windows-server-2008-r2/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 14:53:09 +0000</pubDate>
		<dc:creator>Andrei Ungureanu</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[Powershell ISE]]></category>

		<guid isPermaLink="false">http://www.winadmin.ro/2011/10/18/powershell-ise-not-installed-by-default-on-windows-server-2008-r2/</guid>
		<description><![CDATA[In caz ca aveti nevoie sa folositi PowerShell ISE direct de pe un server 2008 R2 trebuie sa stiti ca nu este instalat by default. Il puteti instala tot din powershell: Sau via GUI:]]></description>
			<content:encoded><![CDATA[<p>In caz ca aveti nevoie sa folositi PowerShell ISE direct de pe un server 2008 R2 trebuie sa stiti ca nu este instalat by default.</p>
<p>Il puteti instala tot din powershell:</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/10/image.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://www.winadmin.ro/wp-content/uploads/2011/10/image_thumb.png" width="644" height="318" /></a> </p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/10/image1.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://www.winadmin.ro/wp-content/uploads/2011/10/image_thumb1.png" width="644" height="136" /></a> </p>
<p>Sau via GUI:</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/10/image2.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://www.winadmin.ro/wp-content/uploads/2011/10/image_thumb2.png" width="644" height="473" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.winadmin.ro/2011/10/18/powershell-ise-not-installed-by-default-on-windows-server-2008-r2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Searching files on the local disks using Powershell</title>
		<link>http://www.winadmin.ro/2011/08/24/searching-files-on-the-local-disks-using-powershell/</link>
		<comments>http://www.winadmin.ro/2011/08/24/searching-files-on-the-local-disks-using-powershell/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 19:56:58 +0000</pubDate>
		<dc:creator>Andrei Ungureanu</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Search]]></category>

		<guid isPermaLink="false">http://www.winadmin.ro/2011/08/24/searching-files-on-the-local-disks-using-powershell/</guid>
		<description><![CDATA[Asta era un task de care m-am ferit de fiecare data folosind Vbscript. Nu ca ar fi imposibil, dar la cat de complicat e fata de Powershell parca nu se merita. Mai jos aveti un exemplu de script care cauta fisierul definit in variabila $searchFile pe discurile locale: $searchFile=&#8221;numefisier.extensie&#8221; $Cdisks = get-wmiobject Win32_LogicalDisk  -Filter &#8220;DriveType [...]]]></description>
			<content:encoded><![CDATA[<p>Asta era un task de care m-am ferit de fiecare data folosind Vbscript. Nu ca ar fi imposibil, dar la cat de complicat e fata de Powershell parca nu se merita.</p>
<p>Mai jos aveti un exemplu de script care cauta fisierul definit in variabila $searchFile pe discurile locale:</p>
<p>$searchFile=&#8221;numefisier.extensie&#8221;<br />
$Cdisks = get-wmiobject Win32_LogicalDisk  -Filter &#8220;DriveType = 3&#8243;<br />
foreach($Cdisk in $Cdisks)<br />
{<br />
$CdeviceID = $Cdisk.DeviceID<br />
$files = Get-ChildItem -LiteralPath $CdeviceID -Force -Recurse</p>
<p>foreach($f in $files)<br />
{<br />
if($f.Name.toLower() -eq $searchFile){ Write-Host $f.FullName }</p>
<p>}<br />
}</p>
<p>&nbsp;</p>
<p>Get-ChildItem suporta parametrul –Force, care il face sa caute si in locatiile marcate ca Hidden. Totusi, folosirea acestui parametru va face ca scriptul sa incerce sa caute in unele locatii system neaccesibile si sa produca erori in output. Dar modificand scriptul sa afiseze rezultatul intr-un fisier de raspuns, se poate rezolva aceasta problema.</p>
<p>Recurse, presupun ca nu mai are rost sa-l explic. Dar puteti testa si voi.</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/08/image2.png"><img style="margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; border: 0px;" src="http://www.winadmin.ro/wp-content/uploads/2011/08/image_thumb2.png" alt="image" width="594" height="484" border="0" /></a></p>
<p>Si probabil ca ar merge adaptat si pentru a rula pe un sistem remote.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.winadmin.ro/2011/08/24/searching-files-on-the-local-disks-using-powershell/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cum sa identifici versiunea de Windows din WMI</title>
		<link>http://www.winadmin.ro/2011/06/07/cum-sa-identifici-versiunea-de-windows-din-wmi/</link>
		<comments>http://www.winadmin.ro/2011/06/07/cum-sa-identifici-versiunea-de-windows-din-wmi/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 08:46:59 +0000</pubDate>
		<dc:creator>Andrei Ungureanu</dc:creator>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[GPO]]></category>
		<category><![CDATA[OS Version]]></category>
		<category><![CDATA[VBScript]]></category>
		<category><![CDATA[WMI]]></category>

		<guid isPermaLink="false">http://www.winadmin.ro/?p=3074</guid>
		<description><![CDATA[Cateodata e necesar sa identifici versiunea de Windows pe care vrei sa ruleze un anumit script, fie ca sunt logon script-uri, fie ca le rulezi manual si ar fi dificil sa cautam intr-un string de caractere cuvinte gen “server”, “XP” sau “Vista”. Pentru asta ne putem folosi de version number si producttype pe care le [...]]]></description>
			<content:encoded><![CDATA[<p>Cateodata e necesar sa identifici versiunea de Windows pe care vrei sa ruleze un anumit script, fie ca sunt logon script-uri, fie ca le rulezi manual si ar fi dificil sa cautam intr-un string de caractere cuvinte gen “server”, “XP” sau “Vista”.</p>
<p>Pentru asta ne putem folosi de version number si producttype pe care le putem obtine via WMI:</p>
<p><strong>Version Number:</strong></p>
<p>Windows Server 2008 R2 or Windows 7  -  6.1%</p>
<p>Windows Server 2008 or Windows Vista  -  6.0%</p>
<p>Windows Server 2003  -  5.2%</p>
<p>Windows XP  -  5.1%</p>
<p>Windows 2000  -  5.0%</p>
<p><strong>Product Type:</strong></p>
<p>Windows Server 2008 R2 or Windows 7  &#8211; 6.1%</p>
<p>Windows Server 2008 or Windows Vista  -  6.0%</p>
<p>Windows Server 2003  -  5.2%</p>
<p>Windows XP  -  5.1%</p>
<p>Windows 2000  -  5.0%</p>
<p><a title="http://technet.microsoft.com/en-us/library/cc754488(WS.10).aspx" href="http://technet.microsoft.com/en-us/library/cc754488(WS.10).aspx">http://technet.microsoft.com/en-us/library/cc754488(WS.10).aspx</a></p>
<p>Iar lucrul asta poate fi foarte util atunci cand vrem sa limitam aplicarea unor GPO-uri doar la anumite OS-uri:</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/06/image9.png"><img style="margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; border-width: 0px;" src="http://www.winadmin.ro/wp-content/uploads/2011/06/image_thumb9.png" border="0" alt="image" width="461" height="388" /></a></p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/06/image10.png"><img style="margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; border-width: 0px;" src="http://www.winadmin.ro/wp-content/uploads/2011/06/image_thumb10.png" border="0" alt="image" width="477" height="341" /></a></p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/06/image11.png"><img style="margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; border-width: 0px;" src="http://www.winadmin.ro/wp-content/uploads/2011/06/image_thumb11.png" border="0" alt="image" width="452" height="344" /></a></p>
<p>Sau daca vrem doar sa influentam modul in care ruleaza un script iata un exemplu care citeste versiunea si tipul OS-ului:</p>
<p>strComputer = &#8220;.&#8221;<br />
Set objWMIService = GetObject(&#8220;winmgmts:&#8221; _<br />
&amp; &#8220;{impersonationLevel=impersonate}!\\&#8221; &amp; strComputer &amp; &#8220;\root\cimv2&#8243;)</p>
<p>Set colOperatingSystems = objWMIService.ExecQuery _<br />
(&#8220;Select * from Win32_OperatingSystem&#8221;)</p>
<p>For Each objOperatingSystem in colOperatingSystems<br />
Wscript.Echo objOperatingSystem.Caption &amp; &#8221; &#8221; &amp; _<br />
objOperatingSystem.Version &amp; &#8220;    &#8221; &amp; objOperatingSystem.ProductType</p>
<p>Next</p>
<p>&nbsp;</p>
<p>Restul tine doar de imaginatia voastra. Pentru alte detalii ma gasiti pe <a href="http://forum.winadmin.ro">forum</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.winadmin.ro/2011/06/07/cum-sa-identifici-versiunea-de-windows-din-wmi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cum sa inveti VBScript</title>
		<link>http://www.winadmin.ro/2011/03/13/cum-sa-inveti-vbscript/</link>
		<comments>http://www.winadmin.ro/2011/03/13/cum-sa-inveti-vbscript/#comments</comments>
		<pubDate>Sun, 13 Mar 2011 15:51:03 +0000</pubDate>
		<dc:creator>Andrei Ungureanu</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[VBScript]]></category>

		<guid isPermaLink="false">http://www.winadmin.ro/2011/03/13/cum-sa-inveti-vbscript/</guid>
		<description><![CDATA[VBScript (Visual Basic Scripting Edition) inca se mai foloseste la greu, si poate rezolva inca multe probleme cu toate ca e cumva depasit (de Powershell).&#160; Chiar daca in majoritatea timpului la job nu aveti nevoie sa faceti scripturi, sunt multe cazuri in care trebuie sa modifici/adaptezi un script existent, care fie vine cu vreo aplicatie, [...]]]></description>
			<content:encoded><![CDATA[<p>VBScript (Visual Basic Scripting Edition) inca se mai foloseste la greu, si poate rezolva inca multe probleme cu toate ca e cumva depasit (de Powershell).&#160; Chiar daca in majoritatea timpului la job nu aveti nevoie sa faceti scripturi, sunt multe cazuri in care trebuie sa modifici/adaptezi un script existent, care fie vine cu vreo aplicatie, fie il descarcati de pe net.</p>
<p>Nota: Daca esti incepator si nu stii pe ce drum sa o apuci, iti recomand Powershell. Poate parea putin mai complicat decat VBScript insa este de viitor. Poti sa incepi de <a href="http://technet.microsoft.com/en-us/scriptcenter/dd793612.aspx">aici</a>.</p>
<p>Acum daca stii ca inca mai ai de lucru cu VBS-uri si o sa te lovesti de ele, e bine sa stii si putin VBScript. Ca sa-ti faci o idee aici ai o privire din avion asupra VBScript:</p>
<p><a title="http://technet.microsoft.com/en-us/scriptcenter/dd940112" href="http://technet.microsoft.com/en-us/scriptcenter/dd940112">http://technet.microsoft.com/en-us/scriptcenter/dd940112</a></p>
<p>Si daca te decizi sa continui, iti recomand Windows 2000 Scripting Guide (in continuare cea mai buna cale de a invata VBScript pentru administrare):</p>
<p><a title="http://technet.microsoft.com/en-us/library/ee221103.aspx" href="http://technet.microsoft.com/en-us/library/ee221103.aspx">http://technet.microsoft.com/en-us/library/ee221103.aspx</a></p>
<p>Gasesti aici o gramada de exemple mapate pe diverse task-uri de administrare. Ghidul e util cateodata si doar pentru a gasi exemple de scripturi.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.winadmin.ro/2011/03/13/cum-sa-inveti-vbscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pin items to Start menu &amp; Taskbar &#8211; vbscript</title>
		<link>http://www.winadmin.ro/2011/02/22/pin-items-to-start-menu-taskbar-vbscript/</link>
		<comments>http://www.winadmin.ro/2011/02/22/pin-items-to-start-menu-taskbar-vbscript/#comments</comments>
		<pubDate>Tue, 22 Feb 2011 04:00:20 +0000</pubDate>
		<dc:creator>Andrei Ungureanu</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Windows Client]]></category>

		<guid isPermaLink="false">http://www.winadmin.ro/?p=2488</guid>
		<description><![CDATA[In Vista si Windows 7 exista optiunea de Pin to Start menu sau Taskbar. Adica poti sa creezi un shortcut permanent in meniul de start (care apare deasupra listei cu cele mai utilizate aplicatii) sau pe taskbar. In meniul de start de mai jos, se poate vedea ca Internet Explorer este adaugat in aceasta lista [...]]]></description>
			<content:encoded><![CDATA[<p>In Vista si Windows 7 exista optiunea de Pin to Start menu sau Taskbar. Adica poti sa creezi un shortcut permanent in meniul de start (care apare deasupra listei cu cele mai utilizate aplicatii) sau pe taskbar.</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/02/image50.png"><img style="border-bottom: 0px;border-left: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top: 0px;border-right: 0px;padding-top: 0px" border="0" alt="image" src="http://www.winadmin.ro/wp-content/uploads/2011/02/image_thumb50.png" width="374" height="458" /></a></p>
<p>In meniul de start de mai jos, se poate vedea ca Internet Explorer este adaugat in aceasta lista de shortcut-uri.</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/02/image51.png"><img style="border-bottom: 0px;border-left: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top: 0px;border-right: 0px;padding-top: 0px" border="0" alt="image" src="http://www.winadmin.ro/wp-content/uploads/2011/02/image_thumb51.png" width="385" height="484" /></a></p>
<p>Requestul de a face acest lucra programatic (vbscript sa zicem) vine in special de la cei care se ocupa de deployment si au nevoie de a automatiza acest lucru atunci cand construiesc imaginea. Dupa asta vin adminii de AD care vor sa faca acest task prin GPO.</p>
<p><a href="http://blogs.technet.com/b/deploymentguys/archive/2009/04/08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script.aspx">The Deployment Guys</a> au un script pentru asa ceva:</p>
<p>Const CSIDL_COMMON_PROGRAMS = &amp;H17    <br />Const CSIDL_PROGRAMS = &amp;H2     <br />Set objShell = CreateObject(&quot;Shell.Application&quot;)     <br />Set objAllUsersProgramsFolder = objShell.NameSpace(CSIDL_COMMON_PROGRAMS)     <br />strAllUsersProgramsPath = objAllUsersProgramsFolder.Self.Path     <br />Set objFolder = objShell.Namespace(strAllUsersProgramsPath &amp; &quot;\Android SDK Tools&quot;)     <br />Set objFolderItem = objFolder.ParseName(&quot;SDK Manager.lnk&quot;)     <br />Set colVerbs = objFolderItem.Verbs     <br />For Each objVerb in colVerbs     <br />&#160;&#160;&#160; If Replace(objVerb.name, &quot;&amp;&quot;, &quot;&quot;) = &quot;Pin to Start Menu&quot; Then objVerb.DoIt    <br />&#160;&#160;&#160; If Replace(objVerb.name, &quot;&amp;&quot;, &quot;&quot;) = &quot;Pin to Taskbar&quot; Then objVerb.DoIt    <br />Next</p>
<p>In exemplul de mai sus, am setat scriptul sa-mi adauge shortcut-ul pentru Android SDK Tools.</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/02/image52.png"><img style="border-bottom: 0px;border-left: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top: 0px;border-right: 0px;padding-top: 0px" border="0" alt="image" src="http://www.winadmin.ro/wp-content/uploads/2011/02/image_thumb52.png" width="644" height="220" /></a></p>
<p>Scriptul o sa adauge shortcut-ul si in Start menu si in Taskbar.</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/02/image53.png"><img style="border-bottom: 0px;border-left: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top: 0px;border-right: 0px;padding-top: 0px" border="0" alt="image" src="http://www.winadmin.ro/wp-content/uploads/2011/02/image_thumb53.png" width="337" height="484" /></a></p>
<p>In script trebuie sa modificati urmatoarele campuri cu locatia aplicatiei:</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/02/image54.png"><img style="border-bottom: 0px;border-left: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;border-top: 0px;border-right: 0px;padding-top: 0px" border="0" alt="image" src="http://www.winadmin.ro/wp-content/uploads/2011/02/image_thumb54.png" width="644" height="249" /></a></p>
<p>Nota: functia Replace nu e 100% necesara, insa fara ea trebuie sa schimbi numele metodei folosite sa contina si &amp;. Mai multe detalii gasiti pe blog-ul de unde am luat script-ul.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.winadmin.ro/2011/02/22/pin-items-to-start-menu-taskbar-vbscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bulk User import cu New-ADUser</title>
		<link>http://www.winadmin.ro/2011/02/14/bulk-user-import-cu-new-aduser/</link>
		<comments>http://www.winadmin.ro/2011/02/14/bulk-user-import-cu-new-aduser/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 05:00:00 +0000</pubDate>
		<dc:creator>Andrei Ungureanu</dc:creator>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Powershell]]></category>

		<guid isPermaLink="false">http://www.winadmin.ro/2011/02/14/bulk-user-import-cu-new-aduser/</guid>
		<description><![CDATA[Am scris cum se face cu vbs, iar acum e randul variantei Powershell. Cu Powershell poate fi mai simplu sau mai complicat, depinde exact ce vrei sa faci. Obiecte de tip user pot fi create foarte usor cu cmdlet-ul New-ADUser. Nota: pentru a afla care e smecheria cu $Password, vezi mai pe la sfarsitul post-ului. [...]]]></description>
			<content:encoded><![CDATA[<p>Am scris cum se face cu <a href="http://www.winadmin.ro/2011/01/17/create-ad-users-from-csvvbscript-edition/">vbs</a>, iar acum e randul variantei Powershell.</p>
<p>Cu Powershell poate fi mai simplu sau mai complicat, depinde exact ce vrei sa faci. Obiecte de tip user pot fi create foarte usor cu cmdlet-ul New-ADUser.</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/02/image18.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://www.winadmin.ro/wp-content/uploads/2011/02/image_thumb18.png" width="644" height="157" /></a> </p>
<p>Nota: pentru a afla care e <em>smecheria</em> cu $Password, vezi mai pe la sfarsitul post-ului.</p>
<p>Iar daca vrei sa importi o lista de useri din CSV, poti sa o faci dintr-o singura linie folosind Import-CSV:</p>
<p>Import-CSV users.csv | New-ADUser</p>
<p>Trebuie doar sa fii atent ca primul rand din CSV sa contina numele atributelor asa cum le vrea New-ADUser (vezi in help parametrii ceruti de New-ADUser). Nu e nevoie sa fie in ordine.</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/02/image19.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://www.winadmin.ro/wp-content/uploads/2011/02/image_thumb19.png" width="452" height="158" /></a> </p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/02/image20.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://www.winadmin.ro/wp-content/uploads/2011/02/image_thumb20.png" width="438" height="149" /></a> </p>
</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/02/image21.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://www.winadmin.ro/wp-content/uploads/2011/02/image_thumb21.png" width="413" height="213" /></a> </p>
<p>Mai complicat e cu Powershell sa ii setezi parola user-ului si sa-l activezi, dar folosind urmatoarea comanda se rezolva:</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/02/image22.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://www.winadmin.ro/wp-content/uploads/2011/02/image_thumb22.png" width="644" height="98" /></a> </p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/02/image23.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://www.winadmin.ro/wp-content/uploads/2011/02/image_thumb23.png" width="404" height="206" /></a> </p>
<p>Pentru a functiona e nevoie sa definiti inainte variabila $Password ca securestring:</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/02/image24.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://www.winadmin.ro/wp-content/uploads/2011/02/image_thumb24.png" width="644" height="147" /></a></p>
<p>Mai merge si cu readhost – assecurestring:</p>
<p><a href="http://www.winadmin.ro/wp-content/uploads/2011/02/image25.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://www.winadmin.ro/wp-content/uploads/2011/02/image_thumb25.png" width="644" height="117" /></a>&#160;</p>
<p>Aceasta valoare va va deveni parola utilizatorului. Daca doriti sa importati parola din CSV (fiecare user cu parola separata) atunci e mai mult de munca si e nevoie de un script care sa citeasca parola din CSV sa o transforme in securestring si abia apoi sa rulati new-aduser in cadrul scriptului.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.winadmin.ro/2011/02/14/bulk-user-import-cu-new-aduser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create AD users from CSV&#8211;VBScript edition</title>
		<link>http://www.winadmin.ro/2011/01/17/create-ad-users-from-csvvbscript-edition/</link>
		<comments>http://www.winadmin.ro/2011/01/17/create-ad-users-from-csvvbscript-edition/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 09:13:41 +0000</pubDate>
		<dc:creator>Andrei Ungureanu</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Add Users to AD]]></category>
		<category><![CDATA[CSV]]></category>
		<category><![CDATA[VBScript]]></category>

		<guid isPermaLink="false">http://www.winadmin.ro/2011/01/17/create-ad-users-from-csvvbscript-edition/</guid>
		<description><![CDATA[Cu toate ca toata lumea acum se da in vant dupa Powershell si nu mai accepta altceva, eu sunt de parere ca e bine sa folosesti ce stii mai bine. Iar eu de exemplu stiu vbscript mai bine decat Powershell. O sa revin si cu varianta Powershell, insa azi o sa postez un exemplu de [...]]]></description>
			<content:encoded><![CDATA[<p>Cu toate ca toata lumea acum se da in vant dupa Powershell si nu mai accepta altceva, eu sunt de parere ca e bine sa folosesti ce stii mai bine. Iar eu de exemplu stiu vbscript mai bine decat Powershell.</p>
<p>O sa revin si cu varianta Powershell, insa azi o sa postez un exemplu de script care citeste o lista de useri dintr-un fisier formatat CSV si ii adauga in Active Directory.</p>
<p>Scriptul seteaza si parola pe userii respectivi si ii si activeaza.</p>
<blockquote><p>on error resume next</p>
<p>Const ForReading = 1</p>
<p>Set objFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)     <br />Set objTextFile = objFSO.OpenTextFile(&quot;d:\lista_useri.csv&quot;, ForReading)</p>
<p>Do While objTextFile.AtEndOfStream &lt;&gt; True     <br /> strLine = objtextFile.ReadLine      <br /> If inStr(strLine, &quot;,&quot;) Then      <br />&#160;&#160;&#160; arrUserRecord = split(strLine, &quot;,&quot;)      <br />&#160;&#160;&#160; cnUser = &quot;cn=&quot; &amp; arruserRecord(0)      <br />&#160;&#160;&#160; SAM = arrUserRecord(1)      <br />&#160;&#160;&#160; GivenName = arrUserRecord(2)      <br />&#160;&#160;&#160; surname = arrUserRecord(3)</p>
<p>&#160;&#160;&#160; Set objOU = GetObject(&quot;LDAP://ou=Useri,OU=Test,dc=winadmin,dc=local&quot;)     <br />&#160;&#160;&#160; Set objUser = objOU.Create(&quot;User&quot;, cnUser)      <br />&#160;&#160;&#160; objUser.Put &quot;sAMAccountName&quot;, SAM      <br />&#160;&#160;&#160; objUser.Put &quot;givenName&quot;, GivenName      <br />&#160;&#160;&#160; objUser.Put &quot;sn&quot;, surname      <br />&#160;&#160;&#160; objUser.Put &quot;userPrincipalName&quot;, SAM      <br />&#160;&#160;&#160; objUser.SetInfo</p>
<p>&#160;&#160;&#160; objuser.SetPassword &quot;P@ssw0rd&quot;     <br />&#160;&#160;&#160; objUser.Put &quot;userAccountControl&quot;, 512      <br />&#160;&#160;&#160; objUser.SetInfo</p>
<p>&#160;&#160;&#160; Wscript.echo cnUser &amp; &quot;&#160;&#160;&#160; user account created.&quot;</p>
<p> End If      <br />Loop</p>
</blockquote>
<p><font>Dupa cum se vede, merge modificat foarte usor si pot fi adaugate mai multe atribute (prin metoda Put) iar scriptul merge modificat ca sa citeasca parola tot din CSV. Atentie ca e nevoie de doua ori de metoda SetInfo altfel nu o sa reusiti sa activati userul.</font></p>
<p><font>PS: Scriptul nu face error handling si are activat si on error resume next, asa ca mare atentie atunci cand importati cantitati mari de date.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.winadmin.ro/2011/01/17/create-ad-users-from-csvvbscript-edition/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

