Quantcast
Channel: Microsoft Deployment Toolkit forum
Viewing all 11297 articles
Browse latest View live

MDT 2013 Update Deployment Share Failed - Illegal Characters in path

$
0
0


I cannot figure this one out...any help would be greatly appreciated.  

I am somewhat new to MDT, but was able to set it up with our custom image, and several task sequences to accomplish what we need.  We have been using MDT and this deployment share for 3-4 months now with no prior issues.

I have tried uninstalling and reinstalling Windows ADK 8.1

I have tried changing the WinPE deployment settings on the share.

Nothing I have tried seems to make any difference.  

We are not using PXE and therefore I rely on the boot image so that we can USB boot for deployment. The deployment process is still working fine, however I cannot update the share and we have some new computers that need new networking drivers in the boot image to function.

Two possible causes that I can think of:

1: somehow WAIK was installed in addition to Windows ADK which I have since removed.

2: I have added new drivers for 3 new models and 2 of the three models are labeled as "SCO-550" and "SCO-650," and have been added under a new manufacturer folder.   I am not sure if the dash in the driver folder name could be causing this problem, none of the other systems we use have a dash in them. (The third new set of drivers follows the same name structure as most of our other drivers...dell systems which I have never had an issue adding in the past)

Error log:

=== Making sure the deployment share has the latest x86 tools ===
=== Making sure the deployment share has the latest x64 tools ===

=== Processing Generic (x64) boot image ===


System.Management.Automation.CmdletInvocationException: Illegal characters in path. ---> System.ArgumentException: Illegal characters in path.
   at System.IO.Path.CheckInvalidPathChars(String path)
   at System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)
   at System.IO.Directory.CreateDirectory(String path, DirectorySecurity directorySecurity)
   at Microsoft.BDD.PSSnapIn.PEManager..ctor(PSCmdlet theCmdlet, String platform, String path)
   at Microsoft.BDD.PSSnapIn.UpdateDeploymentPoint.UpdateBootImage(String template, String platform, String dpPath, Boolean createISO, String isoName)
   at Microsoft.BDD.PSSnapIn.UpdateDeploymentPoint.ProcessRecord()
   at System.Management.Automation.CommandProcessor.ProcessRecord()
   --- End of inner exception stack trace ---
   at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate)
   at System.Management.Automation.Runspaces.LocalPipeline.InvokeHelper()
   at System.Management.Automation.Runspaces.LocalPipeline.InvokeThreadProc()



Task Sequence User based Deployment

$
0
0

Hello everyone,

My question is about targeting a Task Sequence to a set of dynamic users (part of a Security Group/Collection).

So, the end goal is something like I've a set of 100 users that I can add to a security group & a task sequence is available for those users on the fly.

Any leads will be highly appreciated.

~cheers..

Computer + Domain GPOs

$
0
0

Morning Guys,

I am working on a win 8.1 deploy and can successfully apply either the Computer gpo OR the domain gpo.

Is there a way to combine both gpos? or is there a way for mdt2013 to apply both?

Keith

MDT Boot Credentials Error

$
0
0

Hi All-

I am trying to learn MDT 2010. I have imported out of box drivers and have created my boot and install WIM files.

This server at work was previously working fine and I tried to modify the customsettings.ini and bootstrap.ini files so I wouldn't have to use a username/password/domain to connect. For some reason I am still getting the error, "A connection to the deployment share (UNC PATH HERE) could not be made. Connection OK. Possible cause: invalid credentials."

Here is my customsettings.ini file (Rules Tab on the MDT Deployment Share):

[Settings]
Priority=Default
Properties=MyCustomProperty

[Default]
OSInstall=Y
SjipAppsOnUpgrade=YES
SkipCapture=YES
SkipProductKey=YES
SkipLocaleSelection=YES
KeyboardLocale=en-US
UserLocale=en-US
UILanguage=en-US
SkipTimeZone=Yes
TimeZone=035
TimeZoneName=Eastern Standard Time
SkipUserData=Yes
_SMSTSORGNAME=(our company name)
EventService=http://IT-ESS:9800
SkipBitLocker=YES

My bootstrap.ini file:

[Settings]
Priority=Default

[Default]
DeployRoot=(UNC PATH TO Deployment Share)KeyboardLocale=en-US

Any ideas on what I've failed to change back to default? Could it be a setting elsewhere I've forgotten about?

Just trying to learn the ropes.

Thanks-

-Tom

Connection to Deployment Share could not be made. Invalid Credentials

$
0
0
Hello. I am trying to deploy a WIM image to a new computer with MDT 2010 from a server. On the new computer, I am using the command prompt and the net use command to access LiteTouch.vbs. When the new computer restarts due to LiteTouch, it hangs for a bit then says it cannot connect to the deployment share and I've verified that the General tab that the Network (UNC) path is correct and the Bootstrap.ini has the same path as well. Am I missing an area that I have to specify this in or is there something else preventing the connection?

Capture & Deployment of Windows 8 Pro on Microsoft Surface Pro

$
0
0

Capture & Deployment of Windows 8 Pro on Microsoft Surface Pro

Here is what i have.  I have a MDT/WDS server set up with latest patches and all task sequences configured properly.  I have tested deploying Windows 8 via a Hyper-V virtual machine and am able to deploy the OS without issue.  I have created a basic Windows PE boot disc using online instructions which boots from the Microsoft Surface Pro correctly from USB drive to a WINPE command line.

My situation is this.  The Microsoft Surface Pro does not have an ethernet port or the ability to PXE boot on it's own.  To bypass this i have created a WINPE boot disc that does work and get's to a command prompt.  I have connected a USB hub to be able to plug in both the USB drive and a USB network card.  The WINPE image does detect the network card and I am able to get an IP Address of which i can sucessfully ping the server.

What i need to find out is how can i get my WINPE to launch the MDT gui so i can capture and deploy the OS using the task sequences i have set up.  I usually just use PXE to connect to my LiteTouch images and the wizard goes from there.  I tried copying those files to the generic WINPE disc i made but i'm guessing there is more configuration necessary to get this to work.  Without being able to use PXE i'm hoping that i can use WINPE to boot up while finding the USB nic and have it find the deployment server.  I know there is a way to create a disc that does this but not sure how to go about it. 

The goal start to finish would be to craft a custom image on the Microsoft Surface Pro, capture and deploy it's image using MDT, and have the ability to capture & deploy images from this unit using a USB network card and a USB boot environment.

Any help would be appreciated.

Thanks - Jsalisbu


BDEPin=1234 variable in CS.ini does not prefill TPM with Pin value in MDT 2012

$
0
0

Hi All

I am currently using MDT 2012 for creating our images. 
When i use BDEPin = 1234 in CustomSettings.ini, it does not prefil the TPM and Pin value in the Bitlocker wizard. We have to manually enter the value.
It works fine in MDT 2010.

Any idea?


MDT2013 - BitLocker - PIN and drive label

$
0
0

Hi all,

I am testing MDT 2013 lite touch deployments now, Windows 7 and 8.1, mostly on Laptops and BitLocker is mandatory in our company.

In MDT 2010 I had the following configuration in my ruels.ini:

BDEInstallSuppress=NO

BDEDriveLetter=S:

BDEDriveSize=2000

BDEInstall=TPMPin

BDEPin=%ASSETTAG%

BDERecoveryKey=AD

BDEKeyLocation=C:

BDeWaitForEncryption=False

It worked like a charm, the BitLcoker page was shown, all settings were prepopulated with the desired values, especially the PIN field.

With MDT 2013 I have two issues:

1.

BDEPin=%ASSETTAG% does not work, field stays empty, I have to enter the PIN manually - bug or feature? Any workarounds here?

2.

The second issue is more or less cosmetics - in previous MDT the BitLcoker drive label was set to the host name - in my case

rules.ini -> OSDComputerName=DE-%ASSETTAG%, so I had "DE-<7-digit SN>" as labels, where the 7-digit number was the initial BitLocker PIN for the machine.

Now the labels are set to MININT-<random string> - can the old naming behavior be brought back somehow?

Thanks and Regards,

Albert



mdt 2013 refresh wizard canceled as soon as I authenticate

$
0
0

I've been after this for a week or so now. I'm trying to run a POST OS Installation task, something I've done many times before, but always in MDT 2010. I"m now trying to kick off MDT 2013 from Windows 7 x64, and I get as far as being prompted for credentials. As soon as I enter my credentials, MDT quits and cleans up, immediately. Literally 1 second later according to the BDD.log. Nothing unusual seems to be recorded in the logs.

If I try to run it again without deleting the MININT folder, it usually succeeds. If I then cancel out of the Task sequence menu without choosing anything and try it again, it fails again. Is this some type of bug? I've googled extensively, can't find anything. I've removed all software that has been updated recently from the PC, no AV is installed, nothing that should be stepping on anything.

I'm running from an elevated prompt, like so:

\\Server01\Deployment01$\scripts\LiteTouch.vbs

Bdd.log returns this:


Bizarre situation with MDT deployment

$
0
0

I have created an image and it has worked countless times via WDS or MDT DVD on the exact same hardware.

One computer came down with a virus. We decided to use the DVD to reimage it and get it back asap. Well, the perfectly working disc errors out on that computer. Tests since show the disc works in others. I'm assuming something hardware wise is going on on that computer. Am I right in that thinking?

Thanks

.NET Framework 4.0 Unexpected return code: 1

$
0
0

I'm using MDT 2012U1, and I'm having trouble getting .NET Framework 4.0 to install silently. I began by adding a new application with source files in MDT and am using the command line:dotNetFx40_Client_x86_x64.exe /q /norestart. When I try to install it on a client computer, the Installation Progress window says "Installing Applications / Installing Microsoft .NET Framework 4.0", but it just sits there and does nothing. I can see the dotNetFx40_Client_x86_x64.exe process in the Task Manager and that it has extracted the installation files to a temp folder in C:\ , but nothing is happening. When I end the process, the Installation Progress continues, and the Deployment Summary says Application Microsoft.NET Framework 4.0 returned an unexpected return code: 1.

What's weird is if I go to the \\DeploymentShare\Applications\Microsoft .NET Framework 4.0 folder and run the same exact command on the same .exe package, it installs just fine. It's only when I'm going through MDT that it doesn't work.

Here are two screenshots of my settings for .NET Framework in MDT as well as the dd_dotNetFx40_Client_x86_x64_decompression_log.txt found in the %temp% folder on the client computer. Any tips or help would be greatly appreciated.

[12/17/2014, 10:57:48] === Logging started: 2014/12/17 10:57:48 ===
[12/17/2014, 10:57:48] Executable: \\172.16.52.101\Windows7Pro$\Applications\Microsoft .NET Framework 4.0\dotNetFx40_Client_x86_x64.exe v4.0.30319.1
[12/17/2014, 10:57:48] --- logging level: standard ---
[12/17/2014, 10:57:48] Successfully bound to the ClusApi.dll
[12/17/2014, 10:57:48] Error 0x80070424: Failed to open the current cluster
[12/17/2014, 10:57:48] Cluster drive map: ''
[12/17/2014, 10:57:48] Considering drive: 'A:\'...
[12/17/2014, 10:57:49] Drive 'A:\' is rejected because of the unknown or unsuitable drive type
[12/17/2014, 10:57:49] Considering drive: 'C:\'...
[12/17/2014, 10:57:49] Considering drive: 'D:\'...
[12/17/2014, 10:57:49] Drive 'D:\' is rejected because of the unknown or unsuitable drive type
[12/17/2014, 10:57:49] Considering drive: 'Z:\'...
[12/17/2014, 10:57:49] Drive 'Z:\' is rejected because of the unknown or unsuitable drive type
[12/17/2014, 10:57:49] Drive 'C:\' has been selected as the largest fixed drive
[12/17/2014, 10:57:49] Directory 'C:\7755535043955aa61928cb74269c30d7\' has been selected for file extraction
[12/17/2014, 10:57:49] Extracting files to: C:\7755535043955aa61928cb74269c30d7\


Failed to run syspref "Test for CloneTag in registry to verify Sysprep completed"

$
0
0
Hi All

After install windows 7 and some application i try to capture and sysypref from running script
cscript \\server\DeploymentShare\Scripts\LiteTouch.wsf

i get below error

<![LOG[FAILURE (Err): -2147024894  0x80070002: Test for CloneTag in registry to verify Sysprep completed. - Unable to open registry key "HKEY_LOCAL_MACHINE\System\Setup\CloneTag" for reading.]LOG]!><time="12:47:30.000+000" date="01-31-2010" component="LTISysprep" context="" type="2" thread="" file="LTISysprep">
<![LOG[FAILURE ( 6191 ): Test for CloneTag in registry to verify Sysprep completed. - Unable to open registry key "HKEY_LOCAL_MACHINE\System\Setup\CloneTag" for reading.]LOG]!><time="12:47:30.000+000" date="01-31-2010" component="LTISysprep" context="" type="3" thread="" file="LTISysprep">
<![LOG[Litetouch deployment failed, Return Code = -2147467259  0x80004005]LOG]!><time="12:47:31.000+000" date="01-31-2010" component="LiteTouch" context="" type="3" thread="" file="LiteTouch">
<![LOG[For more information, consult the task sequencer log ...\SMSTS.LOG.]LOG]!><time="12:47:31.000+000" date="01-31-2010" component="LiteTouch" context="" type="1" thread="" file="LiteTouch">
<![LOG[Property RetVal is now = -2147467259]LOG]!><time="12:47:31.000+000" date="01-31-2010" component="LiteTouch" context="" type="1" thread="" file="LiteTouch">

Thanks ,
Davide

Deployment Share keeps mounted even after Deployment is complete

$
0
0

I am trying to deploy Windows 8.1 with all the updates using MDP 2013. Deployment goes fine but when I login using the creds into the machine I get "Unable to connect to all Network shares" error at the Bottom Right corner of the Desktop screen and I can still se the Deployment Share mounted in File Explorer. Ideally it should be un-mounted and Disconnected after the deployment is complete.

/Ashish

Moving Computers in Active Directory during MDT Deployments

$
0
0

I am trying to move new Computers in active Directory during deployment, but want to be able to have multiple containers I can Choose from if a tech picks from a drop down menu selection that will tie into the web service file.

I have taken the scripts and web service from the following site which makes you specify the Target OU in the customsettings.ini file. But I want to have multiple Target OU's.

Moving Computers in Active Directory during Deployment

I have installed the webservice and verified it will move computers with the ad.asmx file on my sccm2012 box.

How would I make an option to have multiple containers though? I have an html file that creates a drop down with the id ADOU that uses a javascript function with different values ranging from 1-7. If a user selects administrative it will call the OU structure fro that value. 

Has anyone done something like this with their hta files? 

Powershell commands to change operating system image in task sequence

$
0
0

Hello,

I am looking for a way to script changing a task sequence to use a different OS image file. So far the only thing I can find using the powershell MDT module is the "import-mdttasksequence" command, but it looks like that can only create a whole new task sequence.

My end goal is to automate our master image builds  and the last step is to take the captured master wim file, import it into the Operating Systems folder, and then update the associated custom image task sequence to use that new OS image. With"import-mdttasksequence" I have to create a new task sequence with a new ID, when I already have one present that would be easier to just update to point to a different OS image. I do not see anyway to edit task sequence steps using the powershell module.

Is this possible? Maybe using Get-Item to get the OS GUID and then editing the task sequence XML file directly?

MDT 2013
Server 2008 R2

Regards,
Darren


Choose OU from dropdown list in MDT 2012 without using Lite Touch Wizard??

$
0
0

Is there a way to adding a dropdown to an hta and javascript file to allow a dropdown selection of the OU's in your AD container. Right now I have set that up with HTML and javascript but it will not succeed in passing the value over. Or is there a way of adding a task to the deployment wizard where a dropdown with the xml values of your OU's would show up and prompt? 

Any other ways of making this work would be accepted. We just don't want to use the Lit Touch Wizard on top of our HTA and java.

This is my Java code at the moment.

var oTimer;

// This is the javascript backend for the The BitLocker FrontEnd HTA - CM12 ver 3.0, Jan, 2013.
// report bugs, suggestions, corrections, fixes etc to niall@windows-noob.com or visit windows-noob.com
//
// Below are the functions used in the HTA

function searchcomputer(searchstring ) {
	var WShell = new ActiveXObject("WScript.Shell");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	oEnvironment("SearchString")=searchstring;
	var oExec = WShell.Run ("cscript //NoLogo " + GetScriptRoot() + "\\wnb\\searchcomputerbyname.wsf", 0, true);
	return oEnvironment("search_Computer");
	}

function performeComputerSearch() {
        var searchString = '';
        var searchTextBox = document.getElementById('searchstring_association');
        var searchReturnedResult = false;

        /*
        Clear the drop down from previous searches and add the first default element to the drop down.
        -----------------------------------------------------------------------------------------------
        */

        var el = document.getElementById("destinationComputerList");

        /* Clear drop down list. */
        while(el.options.length > 0)
            el.options.remove(0);


        /* Create first element, showing that the user has to select an element from the drop down list. */
        var opt1 = document.createElement("option");
        el.options.add(opt1);
        opt1.text = 'Select destination';
        opt1.value = '';


        /*
        --------------------------------------------------------------------------------------------------
        Drop down blanked and first default value is added.
        */

        if( searchTextBox != null ) {
            searchString = searchTextBox.value;
            if( searchString != '' ) {


				searchcomputer(searchString );
		var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
		var currentComputerResourceId = oEnvironment("GetResourceId");
        /* When web service returns process the result. */
        var html = new ActiveXObject("Microsoft.XMLDOM");

		/* Here extract the result from the oEnviroment , remeber to create the oEnviorment object if it's not created before. */
		var result = oEnvironment("search_Computer");
		// alert(result);


        html.loadXML(result);


               /* Retrive all the computers in the search result. */
        var anodes = html.selectNodes("//Resource");


                /* Create drop down elements base on the */

        for (var i=0; i < anodes.length; i++){
        var obsolete = anodes(i).selectSingleNode("Obsolete").text;
		var resourceid = anodes(i).selectSingleNode("ResourceID").text;
                    if( obsolete == 'false' && currentComputerResourceId != resourceid ) {
                        /* Computer is not Obsolete, added it to the drop down. */
                        var name = anodes(i).selectSingleNode("Name").text;
                        // alert (name);
                        var SMSUniqueIdentifier= anodes(i).selectSingleNode("ResourceID").text;

                        var opt = document.createElement("option");

                        // Add an Option object to Drop Down/List Box
                        el.options.add(opt);
                        // Assign text and value to Option object
                        opt.text =  'ResourceID: ' + SMSUniqueIdentifier + ',   Name: ' + name;
                        opt.value = resourceid;

                        searchReturnedResult = true;
                    }
                }

            }
            if( searchReturnedResult == false ) {
                alert( "Query for '" + searchString + "' didn't return any computer to make association with, please redefine your search string." );
            }

        }
    }

   function makeAssociation () {
        /* Make sure that the user has selected a destination computer. */

        var el = document.getElementById("destinationComputerList");
        var selectedresourceId = el.value;

        if( selectedresourceId == '' ) {
            /* User havn't selected a computer to make association with. */
            alert('No destination computer selected' );

        } else {

            /* Call the other web service to make the association.  */
            alert( 'The selected ResourceId  is: ' + selectedresourceId);
			var answer = makeAssosiationWebServiceCall(selectedresourceId);
if(answer == "True" ){
alert("Successfully Associated Computers");

} else {
alert(answer + 'UnSuccessfully Associated Computers');
}

        }

    }


function IdentifySCCMDrive()
{
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	var drives = new Enumerator(fso.Drives);

	for(drives.moveFirst();!drives.atEnd();drives.moveNext())
	{
		var drive = drives.item();
		if(drive.IsReady && fso.fileexists(drive.path + "\\SMS\\data\\TsmBootstrap.ini"))
		{
			var fileContents = fso.OpenTextFile(drive.Path + "\\SMS\\data\\TsmBootstrap.ini").ReadAll();
			if(fileContents.search("MediaType=FullMedia") > -1)
			{
				oEnvironment("SCCMDRIVE") = drive.Path;
				return drive.Path;
			}
		}
	}
}

function makeAssosiationWebServiceCall(dest){
var WShell = new ActiveXObject("WScript.Shell");

	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
    oEnvironment("ReferenceComputerResourceId") = oEnvironment("GetResourceId");
    oEnvironment("DestinationComputerResourceId") = dest;
	var oExec = WShell.Run ("cscript //NoLogo " + GetScriptRoot() + "\\wnb\\AddComputerAssociationbyID.wsf", 0, true);
	return oEnvironment("AddComputerAssociationByIDResult");

   }

function OnLoad()
{
	var WShell = new ActiveXObject("WScript.Shell");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	document.getElementById('txtComputerNew').value = oEnvironment("OSDCOMPUTERNAME");

	var oTSProgressUI = new ActiveXObject("Microsoft.SMS.TSProgressUI");
	oTSProgressUI.CloseProgressDialog();
	GetTSVersion();
	GetUSMTVersion()
	IdentifySCCMDrive();
	populateUSMTDropList();



	if(oEnvironment("TPM_Available") == "True")
	{
	document.getElementsByName("RefreshckBoxEnableBitLocker").item(0).disabled = false;
	document.getElementsByName("NewComputerckBoxEnableBitLocker").item(0).disabled = false;
	}
	document.title = "The CM12 BitLocker FrontEnd HTA";
}


function inpBoxUser_OnKeyUp(strCaller)
{
	if(oTimer != undefined)
		window.clearTimeout(oTimer);

	document.getElementById('txtUserRefresh').value = document.getElementById(strCaller).value;
	document.getElementById('txtUserNew').value = document.getElementById(strCaller).value;

	oTimer = window.setTimeout("doADCheck('" + strCaller + "')", 2000);

}

function inpBoxComputer_OnKeyUp(strCaller)
{
	if(oTimer != undefined)
		window.clearTimeout(oTimer);

//	document.getElementById('txtComputerRefresh').value = document.getElementById(strCaller).value;
	document.getElementById('txtComputerNew').value = document.getElementById(strCaller).value;

	oTimer = window.setTimeout("doADCheck('" + strCaller + "')", 2000);

}


function doADCheck(strCaller)
{
	strFullName = GetRealName(document.getElementById(strCaller).value);

	if (strFullName == "NOACCOUNT") {
		document.getElementById('txtUserNew').style.background = "#EC736A";
		document.getElementById('txtUserRefresh').style.background = "#EC736A";
		document.getElementById('txtUserInfoNew').innerHTML = "";
		document.getElementById('txtUserInfoRefresh').innerHTML = "";
	}
	else if(strFullName == "SERVFAIL") {
		document.getElementById('txtUserNew').style.background = "#FFA61C";
		document.getElementById('txtUserRefresh').style.background = "#FFA61C";
		document.getElementById('txtUserInfoNew').innerHTML = "SERVER FAILURE";
		document.getElementById('txtUserInfoRefresh').innerHTML = "SERVER FAILURE";
	}
	else
	{
		document.getElementById('txtUserNew').style.background = "#6EC6F0";
		document.getElementById('txtUserRefresh').style.background = "#6EC6F0";
		document.getElementById('txtUserInfoNew').innerHTML = strFullName;
		document.getElementById('txtUserInfoRefresh').innerHTML = strFullName;
	}

	if (document.getElementById(strCaller).value.length == 0) {
		document.getElementById('txtUserNew').style.background = "#FFFFFF";
		document.getElementById('txtUserRefresh').style.background = "#FFFFFF";
		document.getElementById('txtUserInfoNew').innerHTML = "";
		document.getElementById('txtUserInfoRefresh').innerHTML = "";
	}
}

function GetRealName (strUserName)
{
	var WShell = new ActiveXObject("WScript.Shell");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	var oExec = WShell.Run ("cscript //NoLogo " + GetScriptRoot() + "\\wnb\\UserNameHelper.wsf /USERNAME:" + strUserName, 0, true);
	return oEnvironment("UserFullName");
}

function GetScriptRoot ()
{
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	return oEnvironment("SCRIPTROOT");
}

function Shutdown()
{
	var WShell = new ActiveXObject("WScript.Shell");
	if(window.confirm("Ok to shutdown?"))
		WShell.Run ("wpeutil shutdown",0, true);
}

function Reboot()
{
	var WShell = new ActiveXObject("WScript.Shell");
	if(window.confirm("Ok to reboot?"))
		WShell.Run ("wpeutil reboot",0, true);
}

function closeHTA()
{
	var WShell = new ActiveXObject("WScript.Shell");
	if(window.confirm("Ok to Exit?"))
		WShell.Run ("wpeutil shutdown",0, true);
}

function commandPrompt()
{
var WShell = new ActiveXObject("WScript.Shell");
//	if(window.confirm("Open Command Prompt?"))
		WShell.Run ("cmd.exe /k",1, true);
}

function cmtrace()
{
var WShell = new ActiveXObject("WScript.Shell");
//	if(window.confirm("Open Command Prompt?"))
		WShell.Run ("cmd.exe /k viewlog.cmd",1, true);
}

function showreport()
{
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
		alert(oEnvironment("UUID"));
}

function GetSCCMAssignedSite()
{
	var WShell = new ActiveXObject("WScript.Shell");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	var oExec = WShell.Run ("cscript //NoLogo " + GetScriptRoot() + "\\wnb\\sitecode.wsf", 0, true);
	return oEnvironment("SiteCode");
}

function IsComputerKnown()
{
	var WShell = new ActiveXObject("WScript.Shell");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	var oExec = WShell.Run ("cscript //NoLogo " + GetScriptRoot() + "\\wnb\\IsComputerKnown.wsf", 0, true);
	return oEnvironment("IsComputerKnown");
}

function myFunction()
{
var myVal = document.getElementById("ADOU").value;
var outPut = "";
switch (myVal) {
case "1":
outPut = "OU=Administrative,OU=Workstations,DC=imo-online,DC=com";
break;
case "2":
outPut = "OU=Development,OU=Workstations,DC=imo-online,DC=com";
break;
case "3":
outPut = "OU=External,OU=Workstations,DC=imo-online,DC=com";
break;
case "4":
outPut = "OU=IT,OU=Workstations,DC=imo-online,DC=com";
break;
case "5":
outPut = "OU=Restricted,OU=Workstations,DC=imo-online,DC=com";
break;
case "6":
outPut = "OU=Sales,OU=Workstations,DC=imo-online,DC=com";
break;
case "7":
outPut = "OU=Service Computers,OU=Workstations,DC=imo-online,DC=com";
break;
}
alert(outPut);
}

function GetComputerName()
{
	var WShell = new ActiveXObject("WScript.Shell");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	var oExec = WShell.Run ("cscript //NoLogo " + GetScriptRoot() + "\\wnb\\GetComputerName.wsf", 0, true);
	return oEnvironment("GetComputerName");
}

function GetResourceID()
{
	var WShell = new ActiveXObject("WScript.Shell");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	var oExec = WShell.Run ("cscript //NoLogo " + GetScriptRoot() + "\\wnb\\GetResourceID.wsf", 0, true);
	return oEnvironment("GetResourceID");
}

function getUserFriendlyBoolValue( value ) {
	if ( value )
		return "Yes";
	else
	 return "No";
}

function GetTSVersion()
{
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	sversioninfo = oEnvironment("_SMSTSPackageName");
	sHTML = "Task&nbsp;Sequence&nbsp;&nbsp;=&nbsp;&nbsp;" + sversioninfo ;
	document.getElementsByName('DivTSVersion').item(0).innerHTML = sHTML;
}

function GetUSMTVersion()
{
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	var drives = new Enumerator(fso.Drives);
	var fileContents = "Unidentified Version"

	for(drives.moveFirst();!drives.atEnd();drives.moveNext())
	{
		var drive = drives.item();
		if(drive.IsReady && fso.fileexists(drive.path + "\\_smstasksequence\\wdpackage\\usmt\\usmt_rulesets_version.txt"))
		{
			fileContents = fso.OpenTextFile(drive.Path + "\\_smstasksequence\\wdpackage\\usmt\\usmt_rulesets_version.txt").Read(25);
			//alert(fileContents);
		}
	}
	sHTML = "USMT&nbsp;RuleSet&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;" + fileContents ;
	document.getElementsByName('DivUSMTVersion').item(0).innerHTML = sHTML;
}

function ShowUSMTVersion()
{
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	var drives = new Enumerator(fso.Drives);
	var fileContents = ""

	for(drives.moveFirst();!drives.atEnd();drives.moveNext())
	{
		var drive = drives.item();
		if(drive.IsReady && fso.fileexists(drive.path + "\\_smstasksequence\\wdpackage\\usmt\\usmt_rulesets_version.txt"))
		{
			fileContents = fso.OpenTextFile(drive.Path + "\\_smstasksequence\\wdpackage\\usmt\\usmt_rulesets_version.txt").Read(25);
			alert(fileContents);
		}
	}
	sHTML = "USMT RuleSet&nbsp;&nbsp;=&nbsp;&nbsp;" + fileContents ;
	document.getElementsByName('DivUSMTVersion').item(0).innerHTML = sHTML;
}

function ShowVersion()
{
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	alert('Task Sequence version=' +oEnvironment("_SMSTSPackageName"));
}

function populateUSMTDropList()
{
	var WShell = new ActiveXObject("WScript.Shell");
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");

	sHTML = "<option value='NULL'>No Restore</option>\n";
	sHTML = sHTML + "<option value='SMP'>SMP (Requires Computer Association)</option>\n";
//	sUsmtStorePath = "c:\\USMTStores";
	sUsmtStorePath = "\\\\sccm\\USMTStores";

	if(fso.FolderExists(sUsmtStorePath))
	{
		var SubFolders = new Enumerator(fso.GetFolder(sUsmtStorePath).SubFolders);

		for(SubFolders.moveFirst();!SubFolders.atEnd();SubFolders.moveNext())
		{
			var folder = SubFolders.item();
			sLabel = folder.name ;
			sValue = folder.name;
			if (folder.name.toUpperCase() != "X86" && folder.name.toUpperCase() != "X64")
				sHTML = sHTML + "<option value='" + sValue + "'>" + sLabel + "</option>\n" ;
		}
	}
	sHTML = "<select id='shareDropDown' name='shareDropDown'>\n" + sHTML + "</select>";
	// You need to have a <div> in your HTML with the ID and NAME of divCboList

	document.getElementsByName('divUSMTDropDown').item(0).innerHTML = sHTML;

}

function buildConfirmationMessage( deploymentType, targetUser, targetComputer, dochkdsk, doBackup, doBackupNetwork, doOffline, regionValue, languageValue, BitLockervalue, ADOU, PreProvBitLockervalue, usmtvalue, AUTOComputerName, SCEPvalueRefresh, SCEPvalueNew, EnableBitLockerRefresh, ADOU, EnableBitLockerNew) {
    var arr = new Array();
    arr[arr.length] = "\r\n";
    arr[arr.length] = "Deployment type variable: ";
    switch(deploymentType) {
        case 0:
             	arr[arr.length] = "BACKUPOLD";
		arr[arr.length] = "\r\n";
		arr[arr.length] = "Do CHKDSK: " + getUserFriendlyBoolValue( dochkdsk);
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "Do backup: " + getUserFriendlyBoolValue( doBackup);
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "Do backupNetwork: " + getUserFriendlyBoolValue( doBackupNetwork);
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "Do Offline: " + getUserFriendlyBoolValue( doOffline);
            	arr[arr.length] = "\r\n";

            break;
	case 1:
            	arr[arr.length] = "REFRESH";
            	arr[arr.length] = "\r\n";
            	arr[arr.length] = "Do CHKDSK: " + getUserFriendlyBoolValue( dochkdsk);
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "Do backup: " + getUserFriendlyBoolValue( doBackup);
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "Do backupNetwork: " + getUserFriendlyBoolValue( doBackupNetwork);
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "Target user: " + targetUser;
		arr[arr.length] = "\r\n";
		arr[arr.length] = "AUTO-ComputerName: " + getUserFriendlyBoolValue( AUTOComputerName);
		arr[arr.length] = "\r\n";
		arr[arr.length] = "Enable SCEP: " + getUserFriendlyBoolValue( SCEPvalueRefresh);
		arr[arr.length] = "\r\n";
		arr[arr.length] = "EnableBitLockerRefresh: " + getUserFriendlyBoolValue( EnableBitLockerRefresh);
		arr[arr.length] = "\r\n";
		arr[arr.length] = "ADOU: " + getUserFriendlyBoolValue( ADOU);
		arr[arr.length] = "\r\n";

            break;
	case 2:
            	arr[arr.length] = "NEWCOMPUTER";
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "RegionValue: " + regionValue;
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "LanguageValue: " + languageValue;
            	arr[arr.length] = "\r\n";
            	arr[arr.length] = "Target user: " + targetUser;
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "Target computer: " + targetComputer;
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "AUTO-ComputerName: " + getUserFriendlyBoolValue( AUTOComputerName);
		arr[arr.length] = "\r\n";
		arr[arr.length] = "Enable SCEP: " + getUserFriendlyBoolValue( SCEPvalueNew);
		arr[arr.length] = "\r\n";
		arr[arr.length] = "EnableBitLockerNew: " + getUserFriendlyBoolValue( EnableBitLockerNew);
		arr[arr.length] = "\r\n";
		arr[arr.length] = "BitLockerdropdown: " + BitLockervalue;
		arr[arr.length] = "\r\n";
		arr[arr.length] = "\r\n";
		arr[arr.length] = "Pre-Provision BitLocker: " + PreProvBitLockervalue;
		arr[arr.length] = "\r\n";
		arr[arr.length] = "USMTdropdown: " + usmtvalue;
            	arr[arr.length] = "\r\n";

            break;
    }

    return "Please make sure your selections are ok before proceeding.\nYour Choices:-\n" + arr.join('');
}

function Proceed(actionToPerform) {
	var deploymentType = '';
	var targetUser = '';
	var targetComputer = '';
    	var dochkdsk = '';
	var doBackup = '';
	var doBackupNetwork = '';
	var AUTOComputerName  = '';
	var EnableBitLockerRefresh = '';
	var ADOU1 = '';
	var EnableBitLockerNew = '';
	var doOffline = '';
    	var regionValue = '';
	var languageValue = '';
	var BitLockerValue = '';
	var PreProvBitLockerValue = '';
	var SCEPvalueRefresh = '';
	var SCEPvalueNew = '';
var SCEPvalue = '';
	var usmtvalue = '';
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");


    // Extract the values.

	switch (actionToPerform) {

		case 'Backup':
		//	alert( 'You have chosen Backup.');
			deploymentType = 0;
			dochkdsk= document.getElementById('ckchkdsk').checked;
			doBackup= document.getElementById('ckBoxFullBackup').checked;
			doBackupNetwork= document.getElementById('ckBoxFullBackupNetwork').checked;
			doOffline= document.getElementById('ckBoxDoOffline').checked;
		break;

		case 'Reinstall':
		//	alert( 'You have chosen Reinstall.');
			deploymentType = 1;
			dochkdsk= document.getElementById('Refreshckchkdsk').checked;
			doBackup= document.getElementById('RefreshckBoxFullBackup').checked;
			doBackupNetwork= document.getElementById('RefreshckBoxFullBackupNetwork').checked;
			doOffline= true;
				if(document.getElementById('txtUserRefresh').value)
				targetUser = document.getElementById('txtUserRefresh').value;
				else
				targetUser = "EMPTY";
			// targetUser = document.getElementById('txtUserRefresh').value;
			AUTOComputerName= document.getElementById('RefreshckBoxAUTO-ComputerName').checked;
			SCEPvalue= document.getElementById('SCEPckBoxRefresh').checked;
			EnableBitLockerRefresh= document.getElementById('RefreshckBoxEnableBitLocker').checked;
			ADOU= document.getElementById('ADOU').checked;

		break;

		case 'Newcomputer':
		//	alert( 'You have chosen New computer.');
			deploymentType = 2;
			var regionDrop = document.getElementById('regionDropDown');
			var languageDrop = document.getElementById('languageDropDown');
			var BitLockerDrop = document.getElementById('BitLockerDropDown');
			var usmtdrop = document.getElementById('shareDropDown');


			// added code to give targetUser a value if none entered
			//
				if(document.getElementById('txtUserNew').value)
				targetUser = document.getElementById('txtUserNew').value;
				else
				targetUser = " ";

			// added code to give targetComputer a value if none entered
			//
				if(document.getElementById('txtComputerNew').value)
				targetComputer = document.getElementById('txtComputerNew').value;
				else
				targetComputer = oEnvironment("OSDCOMPUTERNAME");
			//AUTOComputerName = document.getElementById('ComputerNewckBoxAUTO-ComputerName').checked;
			SCEPvalue= document.getElementById('SCEPckBoxNew').checked;
			EnableBitLockerNew = document.getElementById('NewComputerckBoxEnableBitlocker').checked;
			BitLockerValue = BitLockerDrop.options[BitLockerDrop.selectedIndex].value;
			ADOU1 = ADOU.options[ADOU.selectedIndex].value;
			PreProvBitLockerValue = document.getElementById('ckBoxPreProvBitLocker').checked;
			usmtvalue = usmtdrop.options[usmtdrop.selectedIndex].value;

		break;

		default:
			// keep the values case sensitive !! If no type, Backup, Reinstall or New computer image is selected, the click on the Proceed
			// image will excute this section (between default: and break;. Keep it clear but DON'T remove the break.
			// alert("'" + actionToPerform + "' isn't a valid selection.");
			return;
			break;

		}


        // Ask user if the values are ok to proceed with.


        if(window.confirm( buildConfirmationMessage(deploymentType, targetUser, targetComputer, dochkdsk, doBackup, doBackupNetwork, doOffline, regionValue, languageValue, BitLockerValue,PreProvBitLockerValue, usmtvalue, AUTOComputerName, SCEPvalue, SCEPvalue, ADOU, EnableBitLockerRefresh, EnableBitLockerNew) ) ) {

			//*
            var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");

            window.moveTo(2000,2000);


            var WShell = new ActiveXObject("WScript.Shell");


            switch(deploymentType) {
                case 0 :
                    	oEnvironment("DEPLOYMENTTYPE") = "BACKUPOLD";
			oEnvironment("DOCHKDSK") = dochkdsk;
                    	oEnvironment("DOBACKUP") = doBackup;
			oEnvironment("DOBACKUPNETWORK") = doBackupNetwork;
			oEnvironment("DOOFFLINE") = doOffline;
                    break;
                case 1:
                    	oEnvironment("DEPLOYMENTTYPE") = "REFRESH";
                    	oEnvironment("DOCHKDSK") = dochkdsk;
                    	oEnvironment("DOBACKUP") = doBackup;
			oEnvironment("DOBACKUPNETWORK") = doBackupNetwork;
			oEnvironment("TARGETUSER") = targetUser;
			oEnvironment("DOOFFLINE") = doOffline;
			oEnvironment("AUTOComputerName") = AUTOComputerName;
			oEnvironment("SCEPvalue") = SCEPvalue;
			oEnvironment("EnableBitLockerRefresh") = EnableBitLockerRefresh;
			oEnvironment("ADOU1") = ADOU;
                    break;
                case 2 :
                    	oEnvironment("DEPLOYMENTTYPE") = "NEWCOMPUTER";
                    	oEnvironment("RegionValue") = regionValue;
			oEnvironment("LanguageValue") = languageValue;
			oEnvironment("TARGETUSER") = targetUser;
                    	oEnvironment("OSDCOMPUTERNAME") = targetComputer;
			oEnvironment("AUTOComputerName") = AUTOComputerName;
			oEnvironment("SCEPvalue") = SCEPvalue;
			oEnvironment("EnableBitLockerNew") = EnableBitLockerNew;
	          	oEnvironment("BitLockerValue") = BitLockerValue;
			oEnvironment("PreProvBitLockerValue") = PreProvBitLockerValue;
			oEnvironment("uddir") = usmtvalue;
	             break;
            }

            if(oEnvironment("_SMSTSMEDIATYPE") && oEnvironment("_SMSTSMEDIATYPE") == "FullMedia") {
                oEnvironment("OSDStateStorePath") = oEnvironment("SCCMDRIVE") + "\\DiskBackups";
            }

            window.setTimeout('window.close()', 2000);
             //*/
        }


}

MDT 2013 and RES Automation Manager

$
0
0

Hi,

In one of the first step of MDT I'm using a simple script that asks for the country code (e.g. NL), which I would like to store in an environment variable, which I can later on read into RES Automation Manager. But it seems that after MDT is finished and Windows starts up, the environment variable is gone.  Are there any other ways to accomplish this? I'm using it to install language specific applications from RES AM, after MDT is finished. The Windows language settings itself I set with theCustomSettings.ini, that is based on the same simple script

[Settings]
Priority=ByCountry, CountryAbbr,Model,Default
Properties=CountryAbbr, CountryOU,CustomProperty

[ByCountry]
UserExit=ZTIGetCountry.vbs
CountryAbbr=#GetCountryCode()#

[NL]
CountryOU=NL
CountryOrRegion=31
InputLocale=0409:00020409
KeyboardLocale=nl-US
UserLocale=nl-NL
UILanguage=nl-NL
TimeZoneName=W. Europe Standard Time

ZTIGetCountryCode.vbs

Function UserExit(sType, sWhen, sDetail, bSkip)
                oLogging.CreateEntry "entered UserExit ", LogTypeInfo
                UserExit = Success
End Function

Function GetCountryCode()
	Set objShell = CreateObject("WScript.Shell")
	Set objEnv = objShell.Environment("SYSTEM")

	GetCountryCode = InputBox("Fill in Country Code (NL DE DA FR PT); If default, use None")

	objEnv("MDT_Language") = GetCountryCode

	Set objShell = Nothing
	Set objEnv = Nothing
End Function

Any idea what I can do else??

Thanks,

Mario

MDT2012 reinstallation.

$
0
0

Hi,

Current setup:

MDT2012  SQL2012 (no SP) on Server 2008 R2.

Need to replace completely current MDT2012 VM.

The final goal is to have the exact same MDT content on a new machine.

Couple of questions:

1. I would like to use Server 2012R2 instead of 2008R2

2. MDT2013 (I guess it is the last one)

3. SQL 2012 (SP?)

Would all 3 points be correct? Or better to go with exact same versions.

Probably, the final solution will be to copy Deployment Share to the new server and SQL configuration.

Please help with exact steps to follow.

Thanks.


--- When you hit a wrong note its the next note that makes it good or bad. --- Miles Davis

Error Specified image file did not contain a resource section

$
0
0

I'm looking for some help here.  I'm using deployment workbench.

I have created a model custom image and created a custom wim file.  I have imported it into deployment workbench with source files in operating systems. 

I have created a task sequence pointing to that operating system.  When I do properties of the task then into the OS info then edit Unattend.xml, it gives me an error of "the specified image file did not contain a resource section". 

In addition, when I try to deploy this image to a computer, it fails.  I get the error:  Make sure the required files are available--setup failed to applying image\\server share...wim rc=31.  I'm wondering if this has to do with the issue above?  And not having an unattend.xml file.

I have deployed this image wim via Windows deployment services successfully.  Now I'm trying to integrate WDS with Deployment Workbench with this image wim and it fails. 

Any pointers would be great.

Rod

Trying to pass string OUPATH in my javscript file during OSD MDT deployment. How to do I do this correctly?

$
0
0

I have an hta and javascript file that requests different pieces of AD info and passes them along to our server during deployment. I have been trying to get the string OU path to pass but am not able to. Each time I get an error that tells me its not a valid function.

The string is called OUPATH below, I call this webservice in my task sequence during deployment after applying networking settings and it should take the value from the users input during the drop down selection. 

WebService=http://YourWebServer/YourWSFolder/AD.asmx/MoveComputerToOU 
Parameters=OSDComputerName,MachineObjectOU 
OSDComputerName=ComputerName 
MachineObjectOU=OUPath

How do I write my java code to pass this info once a user has selected the option from the drop down? I've been working on this all week and can't seem to figure this out.

 function OUPath()
{
var myVal = document.getElementById("ADOU").value;
var outPut = "";
switch (myVal) {
case "1":
outPut = "OU=Administrative,OU=Workstations,DC=imo-online,DC=com";
break;
case "2":
outPut = "OU=Development,OU=Workstations,DC=imo-online,DC=com";
break;
case "3":
outPut = "OU=External,OU=Workstations,DC=imo-online,DC=com";
break;
case "4":
outPut = "OU=IT,OU=Workstations,DC=imo-online,DC=com";
break;
case "5":
outPut = "OU=Restricted,OU=Workstations,DC=imo-online,DC=com";
break;
case "6":
outPut = "OU=Sales,OU=Workstations,DC=imo-online,DC=com";
break;
case "7":
outPut = "OU=Service Computers,OU=Workstations,DC=imo-online,DC=com";
break;
}
alert(outPut);
}

The whole code is here

var oTimer;

// This is the javascript backend for the The BitLocker FrontEnd HTA - CM12 ver 3.0, Jan, 2013.
// report bugs, suggestions, corrections, fixes etc to niall@windows-noob.com or visit windows-noob.com
//
// Below are the functions used in the HTA

function searchcomputer(searchstring ) {
	var WShell = new ActiveXObject("WScript.Shell");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	oEnvironment("SearchString")=searchstring;
	var oExec = WShell.Run ("cscript //NoLogo " + GetScriptRoot() + "\\wnb\\searchcomputerbyname.wsf", 0, true);
	return oEnvironment("search_Computer");
	}

function performeComputerSearch() {
        var searchString = '';
        var searchTextBox = document.getElementById('searchstring_association');
        var searchReturnedResult = false;

        /*
        Clear the drop down from previous searches and add the first default element to the drop down.
        -----------------------------------------------------------------------------------------------
        */

        var el = document.getElementById("destinationComputerList");

        /* Clear drop down list. */
        while(el.options.length > 0)
            el.options.remove(0);


        /* Create first element, showing that the user has to select an element from the drop down list. */
        var opt1 = document.createElement("option");
        el.options.add(opt1);
        opt1.text = 'Select destination';
        opt1.value = '';


        /*
        --------------------------------------------------------------------------------------------------
        Drop down blanked and first default value is added.
        */

        if( searchTextBox != null ) {
            searchString = searchTextBox.value;
            if( searchString != '' ) {


				searchcomputer(searchString );
		var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
		var currentComputerResourceId = oEnvironment("GetResourceId");
        /* When web service returns process the result. */
        var html = new ActiveXObject("Microsoft.XMLDOM");

		/* Here extract the result from the oEnviroment , remeber to create the oEnviorment object if it's not created before. */
		var result = oEnvironment("search_Computer");
		// alert(result);


        html.loadXML(result);


               /* Retrive all the computers in the search result. */
        var anodes = html.selectNodes("//Resource");


                /* Create drop down elements base on the */

        for (var i=0; i < anodes.length; i++){
        var obsolete = anodes(i).selectSingleNode("Obsolete").text;
		var resourceid = anodes(i).selectSingleNode("ResourceID").text;
                    if( obsolete == 'false' && currentComputerResourceId != resourceid ) {
                        /* Computer is not Obsolete, added it to the drop down. */
                        var name = anodes(i).selectSingleNode("Name").text;
                        // alert (name);
                        var SMSUniqueIdentifier= anodes(i).selectSingleNode("ResourceID").text;

                        var opt = document.createElement("option");

                        // Add an Option object to Drop Down/List Box
                        el.options.add(opt);
                        // Assign text and value to Option object
                        opt.text =  'ResourceID: ' + SMSUniqueIdentifier + ',   Name: ' + name;
                        opt.value = resourceid;

                        searchReturnedResult = true;
                    }
                }

            }
            if( searchReturnedResult == false ) {
                alert( "Query for '" + searchString + "' didn't return any computer to make association with, please redefine your search string." );
            }

        }
    }

   function makeAssociation () {
        /* Make sure that the user has selected a destination computer. */

        var el = document.getElementById("destinationComputerList");
        var selectedresourceId = el.value;

        if( selectedresourceId == '' ) {
            /* User havn't selected a computer to make association with. */
            alert('No destination computer selected' );

        } else {

            /* Call the other web service to make the association.  */
            alert( 'The selected ResourceId  is: ' + selectedresourceId);
			var answer = makeAssosiationWebServiceCall(selectedresourceId);
if(answer == "True" ){
alert("Successfully Associated Computers");

} else {
alert(answer + 'UnSuccessfully Associated Computers');
}

        }

    }


function IdentifySCCMDrive()
{
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	var drives = new Enumerator(fso.Drives);

	for(drives.moveFirst();!drives.atEnd();drives.moveNext())
	{
		var drive = drives.item();
		if(drive.IsReady && fso.fileexists(drive.path + "\\SMS\\data\\TsmBootstrap.ini"))
		{
			var fileContents = fso.OpenTextFile(drive.Path + "\\SMS\\data\\TsmBootstrap.ini").ReadAll();
			if(fileContents.search("MediaType=FullMedia") > -1)
			{
				oEnvironment("SCCMDRIVE") = drive.Path;
				return drive.Path;
			}
		}
	}
}

function makeAssosiationWebServiceCall(dest){
var WShell = new ActiveXObject("WScript.Shell");

	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
    oEnvironment("ReferenceComputerResourceId") = oEnvironment("GetResourceId");
    oEnvironment("DestinationComputerResourceId") = dest;
	var oExec = WShell.Run ("cscript //NoLogo " + GetScriptRoot() + "\\wnb\\AddComputerAssociationbyID.wsf", 0, true);
	return oEnvironment("AddComputerAssociationByIDResult");

   }

function OnLoad()
{
	var WShell = new ActiveXObject("WScript.Shell");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	document.getElementById('txtComputerNew').value = oEnvironment("OSDCOMPUTERNAME");

	var oTSProgressUI = new ActiveXObject("Microsoft.SMS.TSProgressUI");
	oTSProgressUI.CloseProgressDialog();
	GetTSVersion();
	GetUSMTVersion()
	IdentifySCCMDrive();
	populateUSMTDropList();



	if(oEnvironment("TPM_Available") == "True")
	{
	document.getElementsByName("RefreshckBoxEnableBitLocker").item(0).disabled = false;
	document.getElementsByName("NewComputerckBoxEnableBitLocker").item(0).disabled = false;
	}
	document.title = "The CM12 BitLocker FrontEnd HTA";
}


function inpBoxUser_OnKeyUp(strCaller)
{
	if(oTimer != undefined)
		window.clearTimeout(oTimer);

	document.getElementById('txtUserRefresh').value = document.getElementById(strCaller).value;
	document.getElementById('txtUserNew').value = document.getElementById(strCaller).value;

	oTimer = window.setTimeout("doADCheck('" + strCaller + "')", 2000);

}

function inpBoxComputer_OnKeyUp(strCaller)
{
	if(oTimer != undefined)
		window.clearTimeout(oTimer);

//	document.getElementById('txtComputerRefresh').value = document.getElementById(strCaller).value;
	document.getElementById('txtComputerNew').value = document.getElementById(strCaller).value;

	oTimer = window.setTimeout("doADCheck('" + strCaller + "')", 2000);

}


function doADCheck(strCaller)
{
	strFullName = GetRealName(document.getElementById(strCaller).value);

	if (strFullName == "NOACCOUNT") {
		document.getElementById('txtUserNew').style.background = "#EC736A";
		document.getElementById('txtUserRefresh').style.background = "#EC736A";
		document.getElementById('txtUserInfoNew').innerHTML = "";
		document.getElementById('txtUserInfoRefresh').innerHTML = "";
	}
	else if(strFullName == "SERVFAIL") {
		document.getElementById('txtUserNew').style.background = "#FFA61C";
		document.getElementById('txtUserRefresh').style.background = "#FFA61C";
		document.getElementById('txtUserInfoNew').innerHTML = "SERVER FAILURE";
		document.getElementById('txtUserInfoRefresh').innerHTML = "SERVER FAILURE";
	}
	else
	{
		document.getElementById('txtUserNew').style.background = "#6EC6F0";
		document.getElementById('txtUserRefresh').style.background = "#6EC6F0";
		document.getElementById('txtUserInfoNew').innerHTML = strFullName;
		document.getElementById('txtUserInfoRefresh').innerHTML = strFullName;
	}

	if (document.getElementById(strCaller).value.length == 0) {
		document.getElementById('txtUserNew').style.background = "#FFFFFF";
		document.getElementById('txtUserRefresh').style.background = "#FFFFFF";
		document.getElementById('txtUserInfoNew').innerHTML = "";
		document.getElementById('txtUserInfoRefresh').innerHTML = "";
	}
}

function GetRealName (strUserName)
{
	var WShell = new ActiveXObject("WScript.Shell");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	var oExec = WShell.Run ("cscript //NoLogo " + GetScriptRoot() + "\\wnb\\UserNameHelper.wsf /USERNAME:" + strUserName, 0, true);
	return oEnvironment("UserFullName");
}

function GetScriptRoot ()
{
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	return oEnvironment("SCRIPTROOT");
}

function Shutdown()
{
	var WShell = new ActiveXObject("WScript.Shell");
	if(window.confirm("Ok to shutdown?"))
		WShell.Run ("wpeutil shutdown",0, true);
}

function Reboot()
{
	var WShell = new ActiveXObject("WScript.Shell");
	if(window.confirm("Ok to reboot?"))
		WShell.Run ("wpeutil reboot",0, true);
}

function closeHTA()
{
	var WShell = new ActiveXObject("WScript.Shell");
	if(window.confirm("Ok to Exit?"))
		WShell.Run ("wpeutil shutdown",0, true);
}

function commandPrompt()
{
var WShell = new ActiveXObject("WScript.Shell");
//	if(window.confirm("Open Command Prompt?"))
		WShell.Run ("cmd.exe /k",1, true);
}

function cmtrace()
{
var WShell = new ActiveXObject("WScript.Shell");
//	if(window.confirm("Open Command Prompt?"))
		WShell.Run ("cmd.exe /k viewlog.cmd",1, true);
}

function showreport()
{
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
		alert(oEnvironment("UUID"));
}

function GetSCCMAssignedSite()
{
	var WShell = new ActiveXObject("WScript.Shell");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	var oExec = WShell.Run ("cscript //NoLogo " + GetScriptRoot() + "\\wnb\\sitecode.wsf", 0, true);
	return oEnvironment("SiteCode");
}

function IsComputerKnown()
{
	var WShell = new ActiveXObject("WScript.Shell");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	var oExec = WShell.Run ("cscript //NoLogo " + GetScriptRoot() + "\\wnb\\IsComputerKnown.wsf", 0, true);
	return oEnvironment("IsComputerKnown");
}

function OUPath()
{
var myVal = document.getElementById("ADOU").value;
var outPut = "";
switch (myVal) {
case "1":
outPut = "OU=Administrative,OU=Workstations,DC=imo-online,DC=com";
break;
case "2":
outPut = "OU=Development,OU=Workstations,DC=imo-online,DC=com";
break;
case "3":
outPut = "OU=External,OU=Workstations,DC=imo-online,DC=com";
break;
case "4":
outPut = "OU=IT,OU=Workstations,DC=imo-online,DC=com";
break;
case "5":
outPut = "OU=Restricted,OU=Workstations,DC=imo-online,DC=com";
break;
case "6":
outPut = "OU=Sales,OU=Workstations,DC=imo-online,DC=com";
break;
case "7":
outPut = "OU=Service Computers,OU=Workstations,DC=imo-online,DC=com";
break;
}
alert(outPut);
}

function GetComputerName()
{
	var WShell = new ActiveXObject("WScript.Shell");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	var oExec = WShell.Run ("cscript //NoLogo " + GetScriptRoot() + "\\wnb\\GetComputerName.wsf", 0, true);
	return oEnvironment("GetComputerName");
}

function GetResourceID()
{
	var WShell = new ActiveXObject("WScript.Shell");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	var oExec = WShell.Run ("cscript //NoLogo " + GetScriptRoot() + "\\wnb\\GetResourceID.wsf", 0, true);
	return oEnvironment("GetResourceID");
}

function getUserFriendlyBoolValue( value ) {
	if ( value )
		return "Yes";
	else
	 return "No";
}

function GetTSVersion()
{
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	sversioninfo = oEnvironment("_SMSTSPackageName");
	sHTML = "Task&nbsp;Sequence&nbsp;&nbsp;=&nbsp;&nbsp;" + sversioninfo ;
	document.getElementsByName('DivTSVersion').item(0).innerHTML = sHTML;
}

function GetUSMTVersion()
{
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	var drives = new Enumerator(fso.Drives);
	var fileContents = "Unidentified Version"

	for(drives.moveFirst();!drives.atEnd();drives.moveNext())
	{
		var drive = drives.item();
		if(drive.IsReady && fso.fileexists(drive.path + "\\_smstasksequence\\wdpackage\\usmt\\usmt_rulesets_version.txt"))
		{
			fileContents = fso.OpenTextFile(drive.Path + "\\_smstasksequence\\wdpackage\\usmt\\usmt_rulesets_version.txt").Read(25);
			//alert(fileContents);
		}
	}
	sHTML = "USMT&nbsp;RuleSet&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;" + fileContents ;
	document.getElementsByName('DivUSMTVersion').item(0).innerHTML = sHTML;
}

function ShowUSMTVersion()
{
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	var drives = new Enumerator(fso.Drives);
	var fileContents = ""

	for(drives.moveFirst();!drives.atEnd();drives.moveNext())
	{
		var drive = drives.item();
		if(drive.IsReady && fso.fileexists(drive.path + "\\_smstasksequence\\wdpackage\\usmt\\usmt_rulesets_version.txt"))
		{
			fileContents = fso.OpenTextFile(drive.Path + "\\_smstasksequence\\wdpackage\\usmt\\usmt_rulesets_version.txt").Read(25);
			alert(fileContents);
		}
	}
	sHTML = "USMT RuleSet&nbsp;&nbsp;=&nbsp;&nbsp;" + fileContents ;
	document.getElementsByName('DivUSMTVersion').item(0).innerHTML = sHTML;
}

function ShowVersion()
{
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");
	alert('Task Sequence version=' +oEnvironment("_SMSTSPackageName"));
}

function populateUSMTDropList()
{
	var WShell = new ActiveXObject("WScript.Shell");
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");

	sHTML = "<option value='NULL'>No Restore</option>\n";
	sHTML = sHTML + "<option value='SMP'>SMP (Requires Computer Association)</option>\n";
//	sUsmtStorePath = "c:\\USMTStores";
	sUsmtStorePath = "\\\\sccm\\USMTStores";

	if(fso.FolderExists(sUsmtStorePath))
	{
		var SubFolders = new Enumerator(fso.GetFolder(sUsmtStorePath).SubFolders);

		for(SubFolders.moveFirst();!SubFolders.atEnd();SubFolders.moveNext())
		{
			var folder = SubFolders.item();
			sLabel = folder.name ;
			sValue = folder.name;
			if (folder.name.toUpperCase() != "X86" && folder.name.toUpperCase() != "X64")
				sHTML = sHTML + "<option value='" + sValue + "'>" + sLabel + "</option>\n" ;
		}
	}
	sHTML = "<select id='shareDropDown' name='shareDropDown'>\n" + sHTML + "</select>";
	// You need to have a <div> in your HTML with the ID and NAME of divCboList

	document.getElementsByName('divUSMTDropDown').item(0).innerHTML = sHTML;

}

function buildConfirmationMessage( deploymentType, targetUser, targetComputer, dochkdsk, doBackup, doBackupNetwork, doOffline, regionValue, languageValue, BitLockervalue, ADOU, PreProvBitLockervalue, usmtvalue, AUTOComputerName, SCEPvalueRefresh, SCEPvalueNew, EnableBitLockerRefresh, ADOU, EnableBitLockerNew) {
    var arr = new Array();
    arr[arr.length] = "\r\n";
    arr[arr.length] = "Deployment type variable: ";
    switch(deploymentType) {
        case 0:
             	arr[arr.length] = "BACKUPOLD";
		arr[arr.length] = "\r\n";
		arr[arr.length] = "Do CHKDSK: " + getUserFriendlyBoolValue( dochkdsk);
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "Do backup: " + getUserFriendlyBoolValue( doBackup);
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "Do backupNetwork: " + getUserFriendlyBoolValue( doBackupNetwork);
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "Do Offline: " + getUserFriendlyBoolValue( doOffline);
            	arr[arr.length] = "\r\n";

            break;
	case 1:
            	arr[arr.length] = "REFRESH";
            	arr[arr.length] = "\r\n";
            	arr[arr.length] = "Do CHKDSK: " + getUserFriendlyBoolValue( dochkdsk);
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "Do backup: " + getUserFriendlyBoolValue( doBackup);
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "Do backupNetwork: " + getUserFriendlyBoolValue( doBackupNetwork);
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "Target user: " + targetUser;
		arr[arr.length] = "\r\n";
		arr[arr.length] = "AUTO-ComputerName: " + getUserFriendlyBoolValue( AUTOComputerName);
		arr[arr.length] = "\r\n";
		arr[arr.length] = "Enable SCEP: " + getUserFriendlyBoolValue( SCEPvalueRefresh);
		arr[arr.length] = "\r\n";
		arr[arr.length] = "EnableBitLockerRefresh: " + getUserFriendlyBoolValue( EnableBitLockerRefresh);
		arr[arr.length] = "\r\n";
		arr[arr.length] = "ADOU: " + getUserFriendlyBoolValue( ADOU);
		arr[arr.length] = "\r\n";

            break;
	case 2:
            	arr[arr.length] = "NEWCOMPUTER";
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "RegionValue: " + regionValue;
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "LanguageValue: " + languageValue;
            	arr[arr.length] = "\r\n";
            	arr[arr.length] = "Target user: " + targetUser;
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "Target computer: " + targetComputer;
            	arr[arr.length] = "\r\n";
		arr[arr.length] = "AUTO-ComputerName: " + getUserFriendlyBoolValue( AUTOComputerName);
		arr[arr.length] = "\r\n";
		arr[arr.length] = "Enable SCEP: " + getUserFriendlyBoolValue( SCEPvalueNew);
		arr[arr.length] = "\r\n";
		arr[arr.length] = "EnableBitLockerNew: " + getUserFriendlyBoolValue( EnableBitLockerNew);
		arr[arr.length] = "\r\n";
		arr[arr.length] = "BitLockerdropdown: " + BitLockervalue;
		arr[arr.length] = "\r\n";
		arr[arr.length] = "\r\n";
		arr[arr.length] = "Pre-Provision BitLocker: " + PreProvBitLockervalue;
		arr[arr.length] = "\r\n";
		arr[arr.length] = "USMTdropdown: " + usmtvalue;
            	arr[arr.length] = "\r\n";

            break;
    }

    return "Please make sure your selections are ok before proceeding.\nYour Choices:-\n" + arr.join('');
}

function Proceed(actionToPerform) {
	var deploymentType = '';
	var targetUser = '';
	var targetComputer = '';
    	var dochkdsk = '';
	var doBackup = '';
	var doBackupNetwork = '';
	var AUTOComputerName  = '';
	var EnableBitLockerRefresh = '';
	var ADOU1 = '';
	var EnableBitLockerNew = '';
	var doOffline = '';
    	var regionValue = '';
	var languageValue = '';
	var BitLockerValue = '';
	var PreProvBitLockerValue = '';
	var SCEPvalueRefresh = '';
	var SCEPvalueNew = '';
var SCEPvalue = '';
	var usmtvalue = '';
	var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");


    // Extract the values.

	switch (actionToPerform) {

		case 'Backup':
		//	alert( 'You have chosen Backup.');
			deploymentType = 0;
			dochkdsk= document.getElementById('ckchkdsk').checked;
			doBackup= document.getElementById('ckBoxFullBackup').checked;
			doBackupNetwork= document.getElementById('ckBoxFullBackupNetwork').checked;
			doOffline= document.getElementById('ckBoxDoOffline').checked;
		break;

		case 'Reinstall':
		//	alert( 'You have chosen Reinstall.');
			deploymentType = 1;
			dochkdsk= document.getElementById('Refreshckchkdsk').checked;
			doBackup= document.getElementById('RefreshckBoxFullBackup').checked;
			doBackupNetwork= document.getElementById('RefreshckBoxFullBackupNetwork').checked;
			doOffline= true;
				if(document.getElementById('txtUserRefresh').value)
				targetUser = document.getElementById('txtUserRefresh').value;
				else
				targetUser = "EMPTY";
			// targetUser = document.getElementById('txtUserRefresh').value;
			AUTOComputerName= document.getElementById('RefreshckBoxAUTO-ComputerName').checked;
			SCEPvalue= document.getElementById('SCEPckBoxRefresh').checked;
			EnableBitLockerRefresh= document.getElementById('RefreshckBoxEnableBitLocker').checked;
			ADOU= document.getElementById('ADOU').checked;

		break;

		case 'Newcomputer':
		//	alert( 'You have chosen New computer.');
			deploymentType = 2;
			var regionDrop = document.getElementById('regionDropDown');
			var languageDrop = document.getElementById('languageDropDown');
			var BitLockerDrop = document.getElementById('BitLockerDropDown');
			var usmtdrop = document.getElementById('shareDropDown');


			// added code to give targetUser a value if none entered
			//
				if(document.getElementById('txtUserNew').value)
				targetUser = document.getElementById('txtUserNew').value;
				else
				targetUser = " ";

			// added code to give targetComputer a value if none entered
			//
				if(document.getElementById('txtComputerNew').value)
				targetComputer = document.getElementById('txtComputerNew').value;
				else
				targetComputer = oEnvironment("OSDCOMPUTERNAME");
			//AUTOComputerName = document.getElementById('ComputerNewckBoxAUTO-ComputerName').checked;
			SCEPvalue= document.getElementById('SCEPckBoxNew').checked;
			EnableBitLockerNew = document.getElementById('NewComputerckBoxEnableBitlocker').checked;
			BitLockerValue = BitLockerDrop.options[BitLockerDrop.selectedIndex].value;
			ADOU1 = ADOU.options[ADOU.selectedIndex].value;
			PreProvBitLockerValue = document.getElementById('ckBoxPreProvBitLocker').checked;
			usmtvalue = usmtdrop.options[usmtdrop.selectedIndex].value;

		break;

		default:
			// keep the values case sensitive !! If no type, Backup, Reinstall or New computer image is selected, the click on the Proceed
			// image will excute this section (between default: and break;. Keep it clear but DON'T remove the break.
			// alert("'" + actionToPerform + "' isn't a valid selection.");
			return;
			break;

		}


        // Ask user if the values are ok to proceed with.


        if(window.confirm( buildConfirmationMessage(deploymentType, targetUser, targetComputer, dochkdsk, doBackup, doBackupNetwork, doOffline, regionValue, languageValue, BitLockerValue,PreProvBitLockerValue, usmtvalue, AUTOComputerName, SCEPvalue, SCEPvalue, ADOU, EnableBitLockerRefresh, EnableBitLockerNew) ) ) {

			//*
            var oEnvironment = new ActiveXObject("Microsoft.SMS.TSEnvironment");

            window.moveTo(2000,2000);


            var WShell = new ActiveXObject("WScript.Shell");


            switch(deploymentType) {
                case 0 :
                    	oEnvironment("DEPLOYMENTTYPE") = "BACKUPOLD";
			oEnvironment("DOCHKDSK") = dochkdsk;
                    	oEnvironment("DOBACKUP") = doBackup;
			oEnvironment("DOBACKUPNETWORK") = doBackupNetwork;
			oEnvironment("DOOFFLINE") = doOffline;
                    break;
                case 1:
                    	oEnvironment("DEPLOYMENTTYPE") = "REFRESH";
                    	oEnvironment("DOCHKDSK") = dochkdsk;
                    	oEnvironment("DOBACKUP") = doBackup;
			oEnvironment("DOBACKUPNETWORK") = doBackupNetwork;
			oEnvironment("TARGETUSER") = targetUser;
			oEnvironment("DOOFFLINE") = doOffline;
			oEnvironment("AUTOComputerName") = AUTOComputerName;
			oEnvironment("SCEPvalue") = SCEPvalue;
			oEnvironment("EnableBitLockerRefresh") = EnableBitLockerRefresh;
			oEnvironment("ADOU1") = ADOU;
                    break;
                case 2 :
                    	oEnvironment("DEPLOYMENTTYPE") = "NEWCOMPUTER";
                    	oEnvironment("RegionValue") = regionValue;
			oEnvironment("LanguageValue") = languageValue;
			oEnvironment("TARGETUSER") = targetUser;
                    	oEnvironment("OSDCOMPUTERNAME") = targetComputer;
			oEnvironment("AUTOComputerName") = AUTOComputerName;
			oEnvironment("SCEPvalue") = SCEPvalue;
			oEnvironment("EnableBitLockerNew") = EnableBitLockerNew;
	          	oEnvironment("BitLockerValue") = BitLockerValue;
			oEnvironment("PreProvBitLockerValue") = PreProvBitLockerValue;
			oEnvironment("uddir") = usmtvalue;
	             break;
            }

            if(oEnvironment("_SMSTSMEDIATYPE") && oEnvironment("_SMSTSMEDIATYPE") == "FullMedia") {
                oEnvironment("OSDStateStorePath") = oEnvironment("SCCMDRIVE") + "\\DiskBackups";
            }

            window.setTimeout('window.close()', 2000);
             //*/
        }


}


Viewing all 11297 articles
Browse latest View live




Latest Images