Windows Server

Recent Post

15 Jul 2014
How to install and configure Windows Deployment Services

How to install and configure Windows Deployment Services

   Microsoft Windows Server 2008 offers a possibility for automatic deployment of Servers and Workstations. This technology is easily configurable and can suite most organisations in terms of Windows  Server deployment. In this article we will see what are the components that make up WDS ( Windows Deployment Services ) and we will learn how to successfully install and configure this role. When installing a Windows Server using the Installation Wizard, the Administrator must configure several parameters; with WDS, all these settings can be configured automatically using so called answer files. These are XML file s which contain all settings that a machine must have upon deployment. When the Server Installation process is executed, the wizard will look for the answer file on one of its partitions. The answer file is called autounattended.xml.
   One requirement of using Windows Deployment Services is that deployed servers must have a network card which supports PXE. "The Preboot eXecution Environment (PXE, also known as Pre-Execution Environment; sometimes pronounced "pixie") is an environment to boot computers using a network interface independently of data storage devices (like hard disks) or installed operating systems." You can find out more information about PXE on Wikipedia.
   When the machine is deployed, the PXE network card will automatically discover any available WDS Server and will initiate the Installation process. WDS allows you to store both System image files and answer files thus the whole deployment process is made from a single location. Deployments can be made using either unicast or multicast technologies. Multicast is recommended when deployments are made on multiple machine at the same time.
   Before installing WDS on a Windows Server, you will need to make sure the following requirements are met. First, ensure that there is enough space to store the Image files. Another requirement is that you'll need to host all Servers within Active Directory and also make sure there is a functional DHCP server on the network.
   WDS uses Installation images when deploying servers. These images contain the files needed for installing and configuring Windows Server 2008; we will see how to configure Installation images. Note that depending on the Server's architecture you will need to add Installation images for X64 and/or X86 architectures so you can support them within your network. WDS requires boot images which are used to boot a Server before the actual installation process. With a boot image, and Administrator can choose what Installation file will be used on the deployed Server. For computers that do not support PXE, WDS offers the possibility of using so called Discover Images which are deployed using DVDs or USB devices. A boot image can be created using the capture utility within WDS. This tool will allow Administrators to create an System Image from a Server that was previously deployed. This way, you can create reference images for all Servers ensuring that all machines will follow the same standards and are configured properly.
How to install Windows Deployment Services   We will now proceed to the Windows Deployment Service Installation. Open up the Server Manager Console, navigate to the Roles section and click on Add Roles button. From the available roles list, select Windows Deployment Service and proceed to the next section. Note that I'm using a Virtual Machine that hosts ADDS, DNS and DHCP services. You will need these services configured before installing WDS:
How to install Windows Deployment ServicesMake sure that both Deployment and Transport Server are checked and proceed with the installation:
Configure Windows Deployment ServicesOnce the setup is completed, navigate to Administrative Tools and open Windows Deployment Services console. Expand the Servers section, right click your Server's name and select Configure Server. The Server that has WDS installed is automatically added in the console. 
Windows Deployment Services WizardIn the following section you will need to select the remote installation folder. Under this path you will store the installation and boot image files needed in the deployment process. Note that the selected partition cannot be the System partition and you must use other NTFS partition. I'm using a VM with only one partition so, I will leave the default settings:
Windows Deployment Services Wizard Configuration WizardI'm using the same machine for hosting WDS and DHCP this is why I will need to configure the WDS Service not to listen on port 67 (DHCP conflict):
WDS Configuration WizardWe will allow our WDS Server to respond only to known client computers. This means that each Server must be pre-added to Active Directory before the actual deployment process:
WDS ConfigurationWait until the configuration process is completed then check the Add images to the server now setting and click Finish:
WDS Add Image WizardYou will need to select the path to your Installation DVD/Image files. This image will be used when deploying a new machine:
WDS Add Image WizardIn the next section, make sure that the Create an image group named option is selected and add a name for your group:
Windows Deployment Services Add Image WizardIn the final Review Settings section, you can view the number of installation and boot images that will be transferred on your WDS Server:
Windows Deployment Services Add Image WizardThe operation will take some time depending on the size of your installation images:
Note that in WDS, you can store multiple installation images from different Operating Systems like Windows Server 2008, Windows Server 2012, etc. You will add each image using the same process.
WDS Multicast TransmissionReturn to the WDS console, navigate to the Multicast Transmission section, right click it and select Create Multicast Transmission:
Create Multicast Transmission WizardThe Wizard will prompt you to type the name that will identify the multicast transmission. Next, select the newly created Image group. In the following section, we'll select enable the server to start transmission when a client has requested the image:
Your WDS Server has now been configured to deploy Windows Servers. In the following article I will show you how to deploy a new Server within your network using WDS. Several network requirements will have to be met before we can proceed with the deployment process but, we will cover all aspects in the next post. Hope you've understood how to install and configure WDS, for any misunderstandings don't hesitate to leave a comment. Wish you all the best and stay tuned for the following articles from IT training day.
14 Jul 2014
Linux shell commands to Interact with the File System

Linux shell commands to Interact with the File System

Hello dear readers,
   Now that we've got acquainted with Linux Operating System and we've seen how to partition our hard drive and what is the basic structure of the File System, it's time to further discover this amazing OS. In today's article we will learn about some of the most important shell commands that are used to navigate and interact with the Linux File System. Most commands described in this article may be already known by most of you but, I'll write and explain them for any novice.
   When navigating in the Linux File System you will need to know the paths used to gain access to resources. You can imagine the File System as a tree with several branches. That being said, there are three ways to describe a path to a file:

absolute - paths that start with root (/) and describe the complete path to a resource. For example /var/www/icons/a.gif. When you interact with a file, its absolute path is loaded in RAM so any command executed will apply it to the file's absolute path. For example, if I type cat a.gif when I'm in the icons directory, the OS will actually execute cat /var/www/icons/a.gif

relative - they have as reference the current directory. There are two symbols used to describe a relative path:
    Linux tail command
  • .  - it's used to describe the current directory. For example, if I navigate to /usr/bin, I can execute tail command by typing ./tail. This actually tells the OS to execute the command from the current directory.
  • Linux File System .. - refers to the parent directory. Let's take our last example: the absolute path to our current location in the File System is /usr/bin/tail. The absolute path to one of my user home directory is /home/dan. If I want to change the path to the user's personal directory from my current location, I would type cd ../../home/dan. So basically this command means go back two parent folders (/bin and /usr) and then navigate to /home/dan. Simply put, ".." refers to the parent directory:
Linux tilde character~ (tilde character) - from any directory you can change location or make reference to a file from your personal /home directory using this character. For example, the absolute path to my /Desktop directory would be /home/dan/Desktop but, I can simply use ~/Desktop to refer to this location.

Navigation commands used within Linux:
cd (change directory) - used to jump from one location to another. This command is also available in Windows Systems (Batch and Powershell) and has the same functionality:
Linux Change Directory command

pwd - displays the absolute path of the current working directory:
pwd command

Listing files and directories:
Linux ls commandls - used to display files and directories from the current directory. You can specify relative and absolute paths when using this command. Note that ls can be used with multiple arguments. You can view the help page by typing ls --help or man ls to view its man page. Without any arguments, ls will display files and directories from the current location:

I usually use ls with -la arguments. Remember that in Linux, command arguments can be written individually or combined ( ls -a -l = ls -al):
-a - display all files ("hidden files"). Config files usually start with .(dot) and are not shown by default.
-l - long listing. Displays all info relevant to a specified resource. Let's take the following example and explain what each section describes. I've changed the working directory to /etc and typed ls -la
ls with long listing command in Linux

As you see from the command's output, there are several sections for each file. Let's take bashrc file and explain each section:
Linux File System tutorial
  1. - informs the user that this is a file, for directories you can see there is a "d" in front of the line
  2. there are 9 characters that describe system permissions (rw-r--r--). we will discuss about permissions in a future article
  3. 1 is the number of hard links that point to this file. We will learn about hard links in a future article
  4. the first root is the owner of the file
  5. second root is the group that has ownership on the file
  6. 2681 - file size in bits. We can add another argument to our command to make the file size easier to read. Type ls -alh where -h stands for human readable and you will see that the sizes are displayed in kilo. Note that for directories, the command will display the directory file size and not the size of all files contained in the directory
  7. 2013 - last modification date
  8. file name 
ls recursive command
   Another parameter that you can use with ls command is -R (recursive). This argument displays each file and directory and their containing files and directories and so on.

   Other cool parameters that can be used with ls command are -d, -i but, I'll let you folks discover their usage. Explore the help menu and the man page and you will be able to master the ls command :)

Interacting with disk and file size
du (disk usage) - used to view file size in a particular location. Can be used with the -h parameter to view sizes in kilo. You can either use it on a file or on a folder; when executing the command on a folder, it will display the size of all files and directories contained:
Disk usage command Linux

Linux du command
   -c adds the total size of all files at the end of the output ; -s displays the size of the argument passed to the command so, for a directory, will display its total size. I've combined these two parameters to see that they have the same output.

Linux Disk free commanddf (disk free) - Displays all disk information from all mounted devices (hard drives, external shares, etc.). Can be used with the -h parameter to have a better output of the command:

Create and remove files and directories
mkdir - creates directories in the specified path. Can be used to create multiple folders at the same time. -p parameter can be used to create a whole path to a specified resource:
mkdir command

touch - used to create files within the Linux File System. You can specify multiple files to be created from one execution of the command. For example:
touch command

Linux rm command
rm - removes file and directories. Can be used with the following parameters: -i - prompts with every removal; -r - recursively delete, used to delete directories; -f - forces the removal of a directory

Copy and move files and directories
Linux copy commandcp  - copy files and directories from one location to another. You can specify one ore more arguments and you can copy multiple files and directories at the same time. For example: cp f4 f10 ; cp f1 f2 file1/  . To copy entire directories you'll need to add the -r parameter (recursive):
mv - moves or renames files and directories. It has similar functionality as the cp command which means that you can add multiple arguments and copy files and directories at the same time:
mv f3 f4 folder1/
mv f5 newfilename
mv f1 f10 f2 f6 file2 newfilename folder1/
Linux move command

Interact with files and directories content
cat - used to display files content
Linux cat command

less - used to control the listing when there is a long output. For example:
cd /
ls -R | less
using space key you control the display of pages
Linux less command

tail and head - used to extract a number of lines within a file. head is used to extract lines from the beginning of the file while tail extracts them from the end
important arguments that can be used with tail
   -n Number - displays the last Number lines
   -n +Number - displays the last lines starting with the +Number position
   -f - used to tail the output of a log file in real time
important arguments that can be used with head:
   -n Number - displays the first Number lines

wc - "word count" it's used to count the number of lines, characters or words within a file or from a command output. Arguments that can be used with the wc command include -w ( displays number of words), -l (displays number of lines), -m (displays number of characters)

file - displays information about a file. For example:
Linux file command

File search 
find - used to search directly in the File System. It's search command is accurate but, can take a long period of time if the OS is filled with data. Can be used with different arguments, some of the most important are:
   -type - f (file), d(directory), l(simlink)
   -name - searches for a file who's name contains the specified pattern
   -user - searches for the owner of the file
   -size - maximum or minimum size of a file

slocate - searches within a local encrypted database which indexes all data from your hard drive. By default, the db update is made automatically but, you can change that behavior from the config file or manually update it. If the database has indexed all info, the search speed is highly increased rather than searching using find command
database file: /var/lib/slocate/slocate.db 
configuration file: /etc/updatedb.conf

grep - "The grep command is used to search text or searches the given file for lines containing a match to the given strings or words. By default, grep displays the matching lines. Use grep to search for lines of text that match one or many regular expressions, and outputs only the matching lines. grep is considered as one of the most useful commands on Unix and other Linux operating systems." Link here

egrep - "Search for a pattern using extended regular expressions. egrep is essentially the same as running grep with the -E option." Link here

  That's about it for this article folks, hope it will serve you well in enhancing your Linux knowledge. Note that most commands written in this post support many arguments that were not described in this article so please, don't forget to use man pages or help menus to discover all features available with each command. In the following articles we will continue our Linux journey and we will learn more features supported by this Operating System. Don't forget to enjoy your day and stay tuned for the following articles!
3 Jul 2014
Linux boot loader

Linux boot loader

Linux boot loader
As you my probably know the CPU processes information that is stored in RAM. This means that upon booting up the System, you will need a software that loads the kernel from the hard drive into the RAM. The software that executes this operation is called a boot loader. Linux has two boot loaders available: GRUB and LILO. Because these tools offer extra options (selecting between multiple OS, booting into single user (similar to safe mode in Windows), etc.) they are also known as boot managers. With these in mind we can say that GRUB is both a boot loader and a boot manager for Linux.

In Linux distributions, boot managers can be installed in one of the following locations:
  • MBR - the boot manager will be located in the first sector of the hard-drive which means that it will be executed just after the BIOS initialization. With GRUB you can also create multi-boot Systems so there is no need for extra software to boot other Operating Systems like Windows.
  • First sector of root partition - boot manager will be installed in the first section of the Linux partition. Placing boot manger in this location will make it "hidden" when booting up the system. You will either need to use a third party software to locate the Linux boot loader or set the Linux partition as active (the active partition is the one hosting the Operating System and it's searched by default on boot)
In /boot/grub/menu.lst you will find the GRUB configuration file. Any changes made to this file will change the GRUB's behavior upon reboot (GRUB reads the configuration file at every reboot). The conf file actually contains a set of GRUB commands which instructs the software what behavior to adopt. You can also execute these commands from the GRUB console.
I will explain some of the most common GRUB commands:
- the timeout command specifies the number of seconds that GRUB menu is displayed to the user before the default OS is booted. 
- the default command configures what Operating System will boot by default. 
- makeactive sets a partition as active
- rootnoverify(hd0,0) tells GRUB to load the OS from the specified partition (hard disk 0, partition 0) without trying to recognize the Operating System
- chainloader +1 - this command is used to tell GRUB to execute the code located in the first section of the partition. This command is used when the boot loader of a OS is located in the first sector of a partition.
- kernel /path_to_kernel_file root=/dev/hda0 [options] - locates the Operating System kernel on the specified partition. 
- initrd /boot/file - loads a file from hard drive into RAM. The file is used to boot the kernel as is also known as initial RAM disk.
We've covered the main aspects of the GRUB boot loader. There are many things that we can further discuss about this topic but, it's premature to talk about them right now. When we will get acquitted with Linux we will see how to modify and configure the GRUB config file. Hope you've understood the basics of Linux boot manager, for any misunderstandings fell free to access my comments section. Wish you all the best and stay tuned for the following articles from IT training day.
2 Jul 2014
Domain and Forest functional level

Domain and Forest functional level

Windows Server 2008 tutorial
 When planning an upgrade to your domain functional level you will need to take into consideration several factors. The operation of upgrading a functional level is pretty simple and fast but, the implications are a bit higher because many aspects of your network may be affected. Note that which each functional level, features and options are added so you will need to take into consideration all these factors. Another important idea to remember is that the upgrade is done easily and fast but, you cannot downgrade your domain or forest functional level (only using backups, systems restore, uninstall/install). You will need to know all relationships between each domain and forest and what will be the result once you've upgraded to a higher functional level. All these questions will need to be answered before the actual upgrade process this is why, in this article, I will try to cover most of these aspects.
   Windows Server 2008 offers several domain functional levels and each one has different features enabled by default:
Windows 2000 native
   - Allows all group nesting and conversion
   - Distribution and Security groups
   - Active Directory features
   - Lets you keep a history of the allocated SIDS (Security Identifiers)
Windows Server 2003
   - All features available in Windows 2000 native
   - Constrained delegation
   - Redirect Users and Computers containers to other containers
   - Selective authentication
   - Last logon timestamp
   - You can set the userPassword attribute as the effective password on inetOrgPerson and user objects
   - netdom tool used to manage domains
   - Active Directory features
Windows Server 2008
   - Active Directory features
   - All features available in Windows 2003
  - The Kerberos authentication protocol has been upgraded to support AES 128 and 256 (Advanced Encryption Services)
   - SYSVOL can be replicated using DFS (Distributed File System)
   - Selective authentication meaning that the last failed logon, last successful logon, total number of failed logo are monitored
   - Fine-grained password policies
For each of these functional levels you will need to know what kind of Domain Controllers (DC) they support. The following table includes the functional levels and the supported DCs:
Domain Functional Level Supported Domain Controllers
Windows 2000 native Windows Server 2000
Windows Server 2003
Windows Server 2008
Windows Server 2003 Windows Server 2003
Windows Server 2008
Windows Server 2008 Windows Server 2008

   Forest functional levels are similar in terms of supported Domain Controllers only Windows 2000 native forest also supports Windows NT 4.0. Increasing your forest functional level for your organization offers different features from which you can benefit. This is why you should study the features carefully before planning an upgrade to your forest functional level.
Windows 2000 - support for all default Active Directory features. Within this forest your Domain Controllers can run any version from: Windows NT, 2000, 2003 and 2008:
Windows 2003 and 2008 offer the same features. Remember that you cannot upgrade your domain functional level to Windows Server 2008 until all Domain Controllers within your network run this version. Some of the features added in Windows Server 2008 are:
   - Support for all default Active Directory features
   - Support for Read Only Domain Controllers (RODC)
   - Forest trusts
   - Linked-value replication
   - You can rename domains
   - You can create application basic groups and LDAP query groups
   - Conversion between inetOrgPerson object and User objects can be made
   - Improved KCC (Knowledge Consistency Checker ) and scalability
   -You can redefine and deactivate attributes and classes in the schemaAbility to create instances of the dynamic auxiliary class named dynamicObject
   For a list with all features supported by each forest level, take a look on this article from Microsoft's website.
   In conclusion, you will need to take in consideration all factors that are part of the upgrading process of both domain and forest functional levels. Remember that each functional level adds features that can improve your network performance and security so, plan your upgrade wisely. Another important aspect that you'll need to remember is that you cannot downgrade from a domain or forest functional level so, an upgrade can also impact your network negatively. For any questions regarding this topic post a comment in our dedicated section. Wish you all the best and enjoy your day!
30 Jun 2014
The Linux file system

The Linux file system

Linux tutorialNow that we've had a short introduction about UNIX/Linux System, it's time to discuss about one of the most important components that are part of this OS, the File System. From the beginning you'll need to know that everything is Linux is treated as a file. That being mentioned, Linux file system is a collection of files and directories grouped together to form one big tree. In many situations you can compare Linux with Windows but, there are some notable things that you'll need to remember:
  • Everything is Linux is a file (drivers, hardware devices, configs, files, etc.) and you can edit them using a file editor like Vi or Vim. Unlike Windows, there are multiple file types used in UNIX/Linux systems as follows:
   directories - the same usage as in Windows, containers for grouping multiple files
   files - same type as in Windows (text files, photos, executables, etc.)
   device files - all drivers in Linux are seen as files and they can be opened and edited using a text editor. Each file has a special number (known as major number) that informs the kernel what driver is used for a particular hardware device. 
   named pipe and sockets - files that provide inter-communication between processes running in Linux
   symlinks is a special type of file that contains a reference to another file or directory in the form of an absolute or relative path and that affects pathname resolution (Wikipedia)
There are other file types that exist in Linux but, these are the most common. If you think that there are others that need mentioned here, please leave a comment and a short description of their role and functionality.
  • In Windows you have one tree for each partition (for example C:\), in Linux there is one root for the whole file system. Even if you have multiple partitions created on the disk, all of them will have the same root point.
  • Files and folders names are case-sensitive (Unlike Windows, you can have a file named Data and another one dAta). The same principles are applied to all commands, options and arguments used in Linux. Most files do not have an extension and you can use special characters on any position
  • The path separator used in Linux is /
If you type ls in the root directory of any Linux system, you'll see multiple directories, each one with it's own functionality and you'll need to know their role in the Operating System. I'll try to explain directories that needs mentioned: 
/home - contains the personal directories of each user, it's similar with Documents and Settings from Windows
/root - the personal directory of the root user ( the Administrator of the whole system). This user has full access to all resources
/dev - because everything is Linux is treated as a file, even system drivers are presented as files. In this folder you can find all driver files for each hardware component (CPU, Hard-Disk, etc)
/etc - this is similar to registry from Windows, is a directory that contains the settings for system and applications.
/tmp - temporary files are stored in this location. All users can write in this location but data is lost upon reboot
/opt - this directory is used to store third party software. Here, you will install all software that is not shipped with Linux
/boot - contains the necessary files to boot the system (boot loader, kernel and boot manger) 
/proc - all files presented here contain information about the running system (info from kernel, CPU, memory, etc.). You can modify kernel's parameters within this section.
/var - location where variable data is stored (logs, email , print spool, running processes)
/bin - binary files used to run the system
/sbin - contains commands that are used by System Administrators to troubleshoot performance issues.
/lib - contains files that are used to boot the system and run commands from /bin and /sbin (somehow like DLL files in Windows)
/mnt - directory used to mount different file systems
/usr - this directory is intended to store applications for registered users. You can view this folder as Program Files in Windows.
   That's about it for this article folks, please share your thoughts about this one. Note that you'll need to get a general overview of the whole file system before proceeding any further so please take some time and read this short article. If you think there are other things that I should point out in this article, don't hesitate to leave a comment and I will respond as soon as possible. 
Wish you all the best and stay tuned for the following articles!
HOT Articles
Quick Message
Press Esc to close
Copyright © 2013 IT training day All Right Reserved. Visit us on Google+