<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; CMD/BAT: "at" и "time"]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=4909</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=4909&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: "at" и "time"».]]></description>
		<lastBuildDate>Fri, 05 Nov 2010 07:25:21 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CMD/BAT: "at" и "time"]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=41240#p41240</link>
			<description><![CDATA[<p>Доброго дня!<br />В силу ряда причин вынужден вновь поднять тему.<br />1. Подскажите, пожалуйста, простой способ узнать время с точностью до секунды на удаленном компьютере средставми командной строки.<br />2. Подскажите, пожалуйста, простой способ сформировать такую переменную для подстановки в команду &quot;at&quot;, которая была бы на 10 секунд больше текущего системного времени удаленного компьютера.</p><p>Сейчас всё делается вручную: через &quot;net time&quot; выясняется время (к сожалению, с точностью лишь до минуты) и руками подставляется аргументом в &quot;at&quot;. Основной минус - большая (минутная) погрешность.</p><p>Предложенное ниже решение с помощью wmic не подходит: во-первых слишком громоздко, во вторых не заработало - &quot;Ошибка 0x800706ba Сервер RPC недоступен&quot; - и даже разбираться неохота, в чём там дело.</p><p>Psexec не понравился. Во-первых, чтобы запустить его в любом контексте, кроме администраторского, нужно таки передавать логин/пароль в явном виде. Во-вторых, глючит: всегда зависает по ctrl+c, иногда зависает просто так, в сеансе psexec почему-то нарушается ход аутентификации через &quot;net use&quot;, обязательно нужны открытые админские шары для копирование/удаления самого себя и проч. Как разовый инструмент сойдет наверное, для регулярной работы мне не подошёл.</p><p>В процессе поисков наткнулся на отличное решение - завернуть telnet через ipsec. Явных минусов я не нашёл, но ввиду несколько громоздкой реализации подходит не всегда.</p>]]></description>
			<author><![CDATA[null@example.com (fsc_psd)]]></author>
			<pubDate>Fri, 05 Nov 2010 07:25:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=41240#p41240</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: "at" и "time"]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=39786#p39786</link>
			<description><![CDATA[<div class="quotebox"><cite>fsc_psd пишет:</cite><blockquote><p>Ну вот тут указано, что пароли он-таки передает в явном виде.</p></blockquote></div><p>Если Вы его явно указываете. По умолчанию же никаких паролей не передаётся.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Fri, 01 Oct 2010 09:44:05 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=39786#p39786</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: "at" и "time"]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=39774#p39774</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>В общем, psexec, смысле безопасности - тот же телнет.</p></blockquote></div><p>Ну вот тут указано, что пароли он-таки передает в явном виде.<br />И вообще не нравится он мне почему-то. Чёрт его даже и знает, почему.</p><p>Шифрование я назвал лишним, потому что должны же быть штатные способы более-менее безопасной удаленной работы.<br />Посредством ntlm, например.</p><p>:-)<br />Alexii, ваш скрипт крепко заставил меня задуматься. Это явно не то простенькое решение, котороя я искал, но тем не менее, спасибо.<br />Посредством wmic, насколько я понял, можно вообще не заморачиваясь, выполнять удаленно команды, навроде как psexec.<br />А вот просто так, средствами командной строки никак время удаленной машины не вывести?</p><p>Hvs, спасибо за наводку, я поизучаю WinRM, если будет время. Но в контексте данной задачи это опять-таки избыточное решение.<br />И я не уверен, что у меня будет возможность доустанавливать эту службу на все машины.</p>]]></description>
			<author><![CDATA[null@example.com (fsc_psd)]]></author>
			<pubDate>Fri, 01 Oct 2010 04:10:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=39774#p39774</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: "at" и "time"]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=39732#p39732</link>
			<description><![CDATA[<p>2 fsc_psd</p><p>Ну если <strong>psexec</strong> Вы считаете &quot;неродным&quot; <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" />, то почему бы Вам тогда не использовать <strong>WinRM</strong>, точнее подсистему удаленного доступа <strong>winrs</strong>?</p><p>Это если Вам неудобно будет пользоваться предыдущим советом (сценарием). Получилось бы (в самом примитивном) варианте что-т вроде этого (привожу не весь сценарий, а только командную строку).</p><div class="codebox"><pre><code>winrs -r:remote_host_name -u:trusted_user_name_for_remote_host cmd /c echo %date% %time%</code></pre></div><p>где:<br />remote_host_name - имя удаленного хоста<br />trusted_user_name_for_remote_host - доверительная для удаленного хоста учетная запись<br />ну у весь остальной вывод CMD вернется как результат. Уж его то несложно перехватить.</p><p>PS<br />У winrs есть еще параметр <strong>-p</strong>, допускающий указание &quot;волшебного слова&quot; как аргумента при вызове.</p>]]></description>
			<author><![CDATA[null@example.com (hvs)]]></author>
			<pubDate>Tue, 28 Sep 2010 11:52:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=39732#p39732</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: "at" и "time"]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=39670#p39670</link>
			<description><![CDATA[<p>OFF:</p><div class="quotebox"><cite>fsc_psd пишет:</cite><blockquote><p>В общем, psexec, смысле безопасности - тот же телнет.</p></blockquote></div><p>Отнюдь.<br /></p><div class="quotebox"><cite>fsc_psd пишет:</cite><blockquote><p>Можно, конечно, поднимать шифрование, но это явно лишнее в контексте данной задачи.</p></blockquote></div><p>Тогда чего же Вам надо?<br /></p><div class="quotebox"><cite>fsc_psd пишет:</cite><blockquote><p>Да и есть все же-таки какое-то предубеждение к стронним программам, даже если они &quot;почти&quot; родные.</p></blockquote></div><p>Она «не почти», а уже несколько лет как, целиком и полностью — Microsoft. Ещё задолго до покупки Sysinternals во многих разделах MSDN, на форумах TechNet приводились прямые указания на использование тех или иных программ Sysinternals. Немалая часть функционала этих программ ныне перекочевала в инструменты Windows.</p><div class="quotebox"><cite>fsc_psd пишет:</cite><blockquote><p>-как узнать время на удаленном компьютере?<br />-как сформировать такую переменную для подстановки в команду &quot;at&quot;, которая была бы, например, на 5 секунд больше, чем текущее время удаленного компьютера?</p></blockquote></div><div class="codebox"><pre><code>@echo off
setlocal

set sNode=%~1

if not defined sNode (
    echo Usage:   %~nx0 ^&lt;Machine name^&gt;
    echo Example: %~nx0 RemoteServer

    goto :eof
)

for /f &quot;skip=1 tokens=1-3&quot; %%i in (&#039;wmic.exe /node:&quot;%sNode%&quot; path Win32_LocalTime get Hour^, Minute^, Second&#039;) do (
    set /a iHours   = %%i
    set /a iMinutes = %%j
    set /a iSeconds = %%k
)

echo Hours  : %iHours%
echo Minutes: %iMinutes%
echo Seconds: %iSeconds%


set /a iNewHours   = iHours
set /a iNewMinutes = iMinutes
set /a iNewSeconds = iSeconds + 5

if %iNewSeconds% geq 60 (
    set /a iNewSeconds -= 60
    set /a iNewMinutes += 1
)

if %iNewMinutes% geq 60 (
    set /a iNewMinutes -= 60
    set /a iNewHours   += 1
)

echo New Hours  : %iNewHours%
echo New Minutes: %iNewMinutes%
echo New Seconds: %iNewSeconds%

endlocal
exit /b 0</code></pre></div><div class="quotebox"><blockquote><div class="codebox"><pre><code>c:\Temp\001&gt;001.cmd
Usage:   001.cmd &lt;Machine name&gt;
Example: 001.cmd RemoteServer

c:\Temp\001&gt;001.cmd .
Hours  : 8
Minutes: 49
Seconds: 57
New Hours  : 8
New Minutes: 50
New Seconds: 2</code></pre></div></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Sun, 26 Sep 2010 04:58:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=39670#p39670</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: "at" и "time"]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=39667#p39667</link>
			<description><![CDATA[<p>Доброго дня.<br />Простите за подвисание темы - в отпуске был.<br />В общем, psexec, смысле безопасности - тот же телнет. Следовательно, не очень подходит. Можно, конечно, поднимать шифрование, но это явно лишнее в контексте данной задачи.<br />Да и есть все же-таки какое-то предубеждение к стронним программам, даже если они &quot;почти&quot; родные.</p><p>Может быть, кто-нибудь всё же подсобит с вопросами:<br />-как узнать время на удаленном компьютере?<br />-как сформировать такую переменную для подстановки в команду &quot;at&quot;, которая была бы, например, на 5 секунд больше, чем текущее время удаленного компьютера?</p>]]></description>
			<author><![CDATA[null@example.com (fsc_psd)]]></author>
			<pubDate>Sun, 26 Sep 2010 01:32:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=39667#p39667</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: "at" и "time"]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=39265#p39265</link>
			<description><![CDATA[<div class="quotebox"><cite>fsc_psd пишет:</cite><blockquote><p>Пользоваться сторонними программами не хочу.</p></blockquote></div><p>Ну, psexec вроде как уже вовсе не сторонняя программа: Руссинович работает в Microsoft после покупки последней его конторы Sysinternals. Чем не нравится?</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 07 Sep 2010 06:54:48 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=39265#p39265</guid>
		</item>
		<item>
			<title><![CDATA[CMD/BAT: "at" и "time"]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=39263#p39263</link>
			<description><![CDATA[<p>Здравствуйте!<br />Помогите, пожалуйста, найти решение.<br />Мне нужно регулярно выполнять программы на удаленных компьютерах. Сейчас работаю через телнет, но вскоре придётся переехать в совсем другой сегмент сети и телнет, из соображений безопасности, уже не будет подходить. Пользоваться сторонними программами не хочу. Насколько понял, можно выполнять команды на удаленных компьютерах с помощью команды &quot;at&quot;. Но тут есть закавыка - чёрт его знает, какое там, на удаленных компьютерах, стоит время и насколько оно отличается от моего.<br />Соответственно возникает два вопроса:<br />-как узнать время на удаленном компьютере?<br />-как сформировать такую переменную для подстановки в команду &quot;at&quot;, которая была бы, например, на 5 секунд больше, чем текущее время удаленного компьютера?</p><p>Подскажите, пожалуйста.</p>]]></description>
			<author><![CDATA[null@example.com (fsc_psd)]]></author>
			<pubDate>Tue, 07 Sep 2010 03:10:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=39263#p39263</guid>
		</item>
	</channel>
</rss>
