diff --git a/src/cli/command_parser.rb b/src/cli/command_parser.rb
index ce1bdbea8d..164a1e702c 100644
--- a/src/cli/command_parser.rb
+++ b/src/cli/command_parser.rb
@@ -828,7 +828,7 @@ module CommandParser
         end
 
         def format_int(arg)
-            arg.match(/^\d+$/) ? [0,arg] : [-1]
+            arg.match(/^\d+$/) ? [0,arg] : [-1, "Argument '#{arg}' is not a valid ID"]
         end
 
         def format_file(arg)
diff --git a/src/cli/one_helper/oneimage_helper.rb b/src/cli/one_helper/oneimage_helper.rb
index c3de8b1fd1..aba9a80a87 100644
--- a/src/cli/one_helper/oneimage_helper.rb
+++ b/src/cli/one_helper/oneimage_helper.rb
@@ -201,6 +201,22 @@ class OneImageHelper < OpenNebulaHelper::OneHelper
         Image::SHORT_IMAGE_TYPES[type_str]
     end
 
+    def retrieve_snapshot_id(image_id, id)
+        return [0, id.to_i] if id =~ /\A\d+\z/
+
+        image = retrieve_resource(image_id)
+        image.info
+
+        ids = image.retrieve_elements(
+            "/IMAGE/SNAPSHOTS/SNAPSHOT[NAME='#{id}']/ID"
+        )
+
+        return [-1, "#{id} not found or duplicated"] \
+                if ids.nil? || ids.size > 1
+
+        [0, ids[0].to_i]
+    end
+
     def format_pool(options)
         config_file = self.class.table_conf
 
diff --git a/src/cli/one_helper/onevm_helper.rb b/src/cli/one_helper/onevm_helper.rb
index dcd10bd9c8..6ad9d75bf8 100644
--- a/src/cli/one_helper/onevm_helper.rb
+++ b/src/cli/one_helper/onevm_helper.rb
@@ -252,6 +252,19 @@ class OneVMHelper < OpenNebulaHelper::OneHelper
         [0, ids[0].to_i]
     end
 
+    def retrieve_nic_id(vm_id, id)
+        return [0, id.to_i] if id =~ /\A\d+\z/
+
+        vm = retrieve_resource(vm_id)
+        vm.info
+        ids = vm.retrieve_elements("/VM/TEMPLATE/NIC[NAME='#{id}']/NIC_ID")
+
+        return [-1, "NIC #{id} not found or duplicated"] \
+                if ids.nil? || ids.size > 1
+
+        [0, ids[0].to_i]
+    end
+
     def format_pool(options)
         config_file = self.class.table_conf
 
diff --git a/src/cli/one_helper/onezone_helper.rb b/src/cli/one_helper/onezone_helper.rb
index b1125fc240..8cee96ad01 100644
--- a/src/cli/one_helper/onezone_helper.rb
+++ b/src/cli/one_helper/onezone_helper.rb
@@ -506,6 +506,22 @@ class OneZoneHelper < OpenNebulaHelper::OneHelper
         Zone::SHORT_ZONE_STATES[state_str]
     end
 
+    def retrieve_server_id(zone_id, id)
+        return [0, id.to_i] if id =~ /\A\d+\z/
+
+        zone = retrieve_resource(zone_id)
+        zone.info
+
+        ids = zone.retrieve_elements(
+            "/ZONE/SERVER_POOL/SERVER[NAME='#{id}']/ID"
+        )
+
+        return [-1, "#{id} not found or duplicated"] \
+                if ids.nil? || ids.size > 1
+
+        [0, ids[0].to_i]
+    end
+
     def format_pool(options)
         config_file = self.class.table_conf
 
diff --git a/src/cli/onebackupjob b/src/cli/onebackupjob
index c9509417b7..155c3c062d 100755
--- a/src/cli/onebackupjob
+++ b/src/cli/onebackupjob
@@ -120,6 +120,10 @@ CommandParser::CmdParser.new(ARGV) do
         helper.filterflag_to_i(arg)
     end
 
+    set :format, :schedid, 'Scheduled Action id' do |arg|
+        format_int(arg)
+    end
+
     ########################################################################
     # Commands
     ########################################################################
diff --git a/src/cli/onehook b/src/cli/onehook
index 124e20eb21..935415d2b7 100755
--- a/src/cli/onehook
+++ b/src/cli/onehook
@@ -103,6 +103,10 @@ CommandParser::CmdParser.new(ARGV) do
         helper.list_to_id(arg)
     end
 
+    set :format, :execid, 'Hook execution id' do |arg|
+        format_int(arg)
+    end
+
     ########################################################################
     # Hook log Options
     ########################################################################
diff --git a/src/cli/oneimage b/src/cli/oneimage
index 5aa7e4cfc5..5800122d4f 100755
--- a/src/cli/oneimage
+++ b/src/cli/oneimage
@@ -149,7 +149,9 @@ CommandParser::CmdParser.new(ARGV) do
     end
 
     set :format, :imageid, OneImageHelper.to_id_desc do |arg|
-        helper.to_id(arg)
+        tmp = helper.to_id(arg)
+        @current_image = tmp[1]
+        tmp
     end
 
     set :format, :imageid_list, OneImageHelper.list_to_id_desc do |arg|
@@ -170,6 +172,10 @@ CommandParser::CmdParser.new(ARGV) do
         end
     end
 
+    set :format, :snapshot_id, 'Snapshot name or id' do |arg|
+        helper.retrieve_snapshot_id(@current_image, arg)
+    end
+
     ########################################################################
     # Commands
     ########################################################################
diff --git a/src/cli/onevm b/src/cli/onevm
index 2a30456384..aa42a4d977 100755
--- a/src/cli/onevm
+++ b/src/cli/onevm
@@ -320,7 +320,7 @@ CommandParser::CmdParser.new(ARGV) do
         helper.filterflag_to_i(arg)
     end
 
-    set :format, :diskid, 'Integer' do |arg|
+    set :format, :diskid, 'Disk id' do |arg|
         format_int(arg)
     end
 
@@ -328,14 +328,30 @@ CommandParser::CmdParser.new(ARGV) do
         OpenNebulaHelper.size_in_mb(arg)
     end
 
-    format :snapshot_id, 'Snapshot identifier' do |arg|
+    set :format, :snapshot_id, 'Snapshot name or id' do |arg|
         helper.retrieve_snapshot_id(@current_vm, arg)
     end
 
-    format :disk_snapshot_id, 'Disk_snapshot identifier' do |arg|
+    set :format, :disk_snapshot_id, 'Disk_snapshot name or id' do |arg|
         helper.retrieve_disk_snapshot_id(@current_vm, arg)
     end
 
+    set :format, :nicid, 'NIC name or id' do |arg|
+        helper.retrieve_nic_id(@current_vm, arg)
+    end
+
+    set :format, :pciid, 'PCI id' do |arg|
+        format_int(arg)
+    end
+
+    set :format, :sched_id, 'Scheduled Action id' do |arg|
+        format_int(arg)
+    end
+
+    set :format, :sgid, 'Security Group id' do |arg|
+        format_int(arg)
+    end
+
     ########################################################################
     # Commands
     ########################################################################
diff --git a/src/cli/onevmgroup b/src/cli/onevmgroup
index 2656047236..6076af338f 100755
--- a/src/cli/onevmgroup
+++ b/src/cli/onevmgroup
@@ -121,7 +121,7 @@ CommandParser::CmdParser.new(ARGV) do
         helper.filterflag_to_i(arg)
     end
 
-    format :roleid, 'Role identifier' do |arg|
+    set :format, :roleid, 'Role identifier' do |arg|
         helper.retrieve_role_id(@current_vmg, arg)
     end
 
diff --git a/src/cli/onevnet b/src/cli/onevnet
index 36cb5dc62a..816192206f 100755
--- a/src/cli/onevnet
+++ b/src/cli/onevnet
@@ -152,7 +152,7 @@ CommandParser::CmdParser.new(ARGV) do
         helper.filterflag_to_i(arg)
     end
 
-    set :format, :ar_id, 'Integer' do |arg|
+    set :format, :ar_id, 'Address Range id' do |arg|
         format_int(arg)
     end
 
diff --git a/src/cli/onevrouter b/src/cli/onevrouter
index 6755b8a463..f62b5cb6a4 100755
--- a/src/cli/onevrouter
+++ b/src/cli/onevrouter
@@ -128,6 +128,10 @@ CommandParser::CmdParser.new(ARGV) do
         OpenNebulaHelper.rname_to_id(arg, 'VMTEMPLATE')
     end
 
+    set :format, :nicid, 'NIC id' do |arg|
+        format_int(arg)
+    end
+
     ########################################################################
     # Commands
     ########################################################################
diff --git a/src/cli/onezone b/src/cli/onezone
index 9794b2a884..8c61e1a33a 100755
--- a/src/cli/onezone
+++ b/src/cli/onezone
@@ -91,13 +91,19 @@ CommandParser::CmdParser.new(ARGV) do
     # Formatters for arguments
     ########################################################################
     set :format, :zoneid, OneZoneHelper.to_id_desc do |arg|
-        helper.to_id(arg)
+        tmp = helper.to_id(arg)
+        @current_zone = tmp[1]
+        tmp
     end
 
     set :format, :zoneid_list, OneZoneHelper.list_to_id_desc do |arg|
         helper.list_to_id(arg)
     end
 
+    set :format, :serverid, 'Server name or id' do |arg|
+        helper.retrieve_server_id(@current_zone, arg)
+    end
+
     ########################################################################
     # Commands
     ########################################################################