场景 我使用Zabbix监视我的服务器,最近我想为Windows添加更多的指标。 出于安全考虑,我使用了Zabbix的用户参数function,但是它将外部命令的执行限制在3秒左右。 之后,命令被强行杀害。 我想运行一些长时间运行的命令,所以我使用了Zabbix论坛的技巧:在后台运行命令,将结果写入文件并使用Zabbix来收集它们。 在* nix下,这很容易得益于“&”运算符,但在Windows的shell中没有这种支持。 更糟糕的是,当Zabbix杀死强行杀死它用来评估命令的cmd.exe时,所有subprocess都会死掉,包括未完成的后台任务。 因此,我需要一些可以切断与子女关系的东西,这样他们就不会受到级联杀手的影响。 我试过了 start和start /B – 他们什么都不做,因为孩子总是与父母一起死亡 在StackOverflow invis.vbs WScript.Shell.Run – 有时工作。 如果这个过程被强行杀死,而不是自己戒烟,孩子们也会死亡。 hstart – 与hstart类似的结果 At命令 – 这要求你设置一个绝对时间来运行任务,而不是一个偏移量,所以代码将是相当混乱的,由于Windows的shell脚本function有限。 (编辑) PsExec.exe套件中的PsExec.exe – 它使用一个服务来启动命令,所以它不受kill的影响; 然而,它打印一些横幅和日志信息到StdErr,并没有开关来禁用这个。 当我使用2>NULredirect它们时,Zabbix报告一个错误。 在尝试上述不同的组合后,我注意到,如果我从invis.vbs调用hstart ,当invis.vbs被invis.vbs ,由前者启动的命令将作为无父进程invis.vbs 。 但是,由于我需要redirect输出,我想运行的命令总是以cmd.exe /c ""command" "args"" >log 。 vbs也删除所有的引号,所以我必须用自定义的转义序列对命令进行编码。 最终结果大概涉及五级逃逸/引用,这几乎是不可能维持的。 任何人都知道更好的解决办法 一些要求 任何bat / vbs / js / Win32二进制文件都可以接受 最好不要求多层次的逃跑 没有.Net(包括PowerShell),因为它没有安装
虽然我相信Windows Server 2003处理进程的工作集有两个不同的问题。 首先,当控制台会话的顶层窗口被最小化时,它们的工作集被修剪,有GUI应用程序运行。 我知道使用GUI运行服务器进程是非常不寻常的,但是这些是传统应用程序做重要的事情,我不能做任何事情。 其次,长时间运行的数据库服务器在客户端连接时分配大量内存,但在另一个客户端连接之前不会触及该内存。 与此同时,有好几天可能会过去,操作系统似乎认为这是足够的理由来削减该进程的工作集。 在这两种情况下,都有足够的物理内存(比应用程序需要多几GB),所以我希望Windows不要修剪它们的工作集。 有没有一个设置来configuration这个? 这些都是第三方应用程序,所以更改内存分配或locking内存页面不是可行的选项。
我在一个学术环境中工作,在那里我们提供了各种ssh可访问的计算资源。 我们也提供了git仓库托pipe,我们需要ssh来读取/写入仓库。 我们对OS X和Linux用户的指导相对简单,最重要的是,与OS X和大多数现代Linux发行版一致, OpenSSH是开箱即用的,更重要的是, ssh-agent被预先configuration为在桌面会话处于活动状态时运行。 我们通常鼓励人们把密码分配给他们的密钥,所以没有身份validation代理人的生活会很快变得烦人。 目前,我们针对Windows用户的解决scheme在整体上更为分散和复杂。 从历史上看,人们一直在使用PuTTY ,但是这需要额外的步骤来生成兼容OpenSSH的密钥。 这也使得使用git命令行工具变得更加困难 – 虽然不是,我意识到,不可能的是,当与ssh可访问的存储库交互时,它最适合OpenSSH。 我们只想简单的安装msysgit ,但是我们正在寻找一种将ssh-agent集成到Windows桌面环境中的好方法。 最常见的解决scheme就是通过.bashrc条目来启动代理,但这看起来好像很不好,这意味着我们必须通过在Windows下编辑.bashrc的过程来引导大部分非技术用户。 另一个复杂的问题是, WinSCP经常被用作文件传输工具 – 当然这不会与ssh-agent 。 它会与来自PuTTY伙计的pagent交谈,但是pagent不会说ssh-agent所以它不能从命令行工作。 其他人做了什么来为不同平台上的用户提供一致的环境? 你刚刚抛出手,决定为Windows用户维护一套单独的文档? UPDATE 我发现两个程序在OpenSSH和pagent之间起到垫片的作用。 你有什么经验,无论是charade还是ssh-pagent ?
是否有从Windows MSI文件检索可用公共属性的工具或机制? 一些提供MSI文件的供应商本身并不logging这些文件,所以我很好奇,看看是否有方法在没有源代码的情况下公开这些文件。
我有一个Linux服务器,我已经configuration了一个只读的NFS共享。 我目前正在使用的客户端是安装了NFSfunction的Windows Server 2008 R2计算机。 我可以打开并执行除MSI文件以外的所有文件。 出于某种原因,除非我将驱动器映射到驱动器号,否则我无法通过此共享执行MSI安装程序(安装程序在本地复制时工作,但我尽可能避免这种情况)。 当我尝试直接从UNCpath执行时出现以下错误: 什么可能导致这个? 映射使其工作的份额是什么? 编辑 – 以下是使用msiexec进行详细logging时使用MSI进行调用的结果: === Verbose logging started: 1/30/2014 10:12:29 Build type: SHIP UNICODE 5.00.7601.00 Calling process: C:\Windows\system32\msiexec.exe === MSI (c) (80:F0) [10:12:29:228]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg MSI (c) (80:F0) [10:12:29:228]: Font created. Charset: Req=0, Ret=0, Font: Req=MS […]
您能否提供一个最小化的unattend.xml文件以便在Windows 7中使用,这将在一个工作站上手动安装,更新和configuration,然后SysPrep将像这样运行: C:\Windows\System32\sysprep> sysprep /generalize /oobe /unattend:unattend.xml /shutdown 然后将C:分区克隆到多个工作站(我使用的是Linux LiveUSB的partimage )。 这个unattend.xml应该configuration一个工作站,以便在克隆之后不要求任何东西。 工作站应该只显示一个普通的login屏幕,以前configuration的帐户。 它应该创build随机的计算机名称,不要尝试joinActive Directory,因为我不习惯将密码存储在unattend.xml 。 我不想使用Windows自动安装工具包(Windows AIK)中的Windows系统映像pipe理器(Windows SIM),因为这太过于复杂了 – 对我的口味来说太复杂了。
我想要一个Windows 8.1专业版的安装程序,用户通过RDP总是运行和访问,自动安装更新,如果更新需要,也会自动重新启动,但这应该只发生在星期六晚上(任何时候系统需要运行,可供用户使用)。 我更改了以下registry设置: 在HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU : AUOptions = 4 (自动下载和计划安装) ScheduledInstallDay = 7 (星期六) ScheduledInstallTime = 0 (0点) NoAutoRebootWithLoggedOnUsers = 0 (也用login的用户重启) AlwaysAutoRebootAtScheduledTime = 1 (强制重启) 不幸的是,这并不总是奏效。 当我将ScheduledInstallDay设置为星期四时,它曾经工作过一次,因为我在AlwaysAutoRebootAtScheduledTime的文档中AlwaysAutoRebootAtScheduledTime : 当此registry值设置为1时,您仍然通知login屏幕上即将到来的自动重新启动。 然而,在三天结束时,即使计算机被locking,15分钟计数器也开始计时。 即使计算机被locking也会重新启动。 资料来源: 如何在Windows 8和Windows Server 2012中的重要更新之后强制自动重新启动 所以我想如果我希望系统在星期六重新启动,我必须在三天之前设置预定的日子,因为重新启动延迟了三天。 但系统在星期四重新启动。 因此,我将计划的一天再次设置为星期六,但现在重新启动没有发生(我总是需要等待下一次更新,需要重新启动才能testing新的设置)。 如果安装的更新需要它,即使当时用户login,我该如何configuration系统以便在星期六晚上重新启动? 更新 :由于还没有答案,我开始相信我在这里完全错误的path。 我也很乐意指出如何做这样的事情,例如,如果有一个固定的更新时间窗口,远程访问的Windows机器如何保持最新?
每当我尝试从我的DFS打开共享时,我总是收到以下警告。 我怎样才能configurationWindows(在这种情况下,10)信任任何根据我的DFS通过GP? 看起来很奇怪,它不会自动地这样做。
我们有一个legacy_domain.loc的森林根域,另一个域名为modern_domain.loc ,其结构类似于: legacy_domain.loc —– modern_domain.loc | | \ | | \ [DC1 & DC2 only] [DC's, Users, \ Servers, \ Workstations, etc.] \ dev.modern_domain.loc \ sub.dev.modern_domain.loc legacy_domain域中唯一的资源是域控制器本身。 这也是森林根域。 是否有可能使modern_domain为森林根,然后崩溃/消除legacy_domain域? 基本上,AD在多年前首次推出时,整体架构非常复杂。 多年来,随着科技的进步和需求的变化,多余的领域全部被巩固/折叠成今天仍然存在的东西。 随着一切都在modern_domain ,我们最终要legacy_domain 。 任何build议/想法,将不胜感激!
几个月前我在堆栈溢出问了这个问题 ,并没有得到任何有用的答案。 也许这里有人有更好的信息。 请注意,我正在谈论客户端DNSparsing器caching。 此消息不涉及Windows DNS服务器。 我有一个C#程序,它执行大量的DNSparsing。 因为HTTPWebRequest组件不会让我更改主机头,我不能创build我自己的内部DNScaching。 所以我必须依靠Windows DNScaching,这看起来不会改变。 有一个相当不错的TechNet文章有关Windows Server 2003中的DNScachingregistry设置,但我还没有能够certificate,设置它们在XP,Server 2003,Vista或Server 2008中做任何事情。所有其他页面,我通过谷歌search引用该页面或解释它,有时不正确。 Windows的ipconfig命令有一个/displaydns开关,它将输出caching的内容。 据我所知,这是确定DNScaching大小的唯一方法。 在使用2 GB内存的32位Windows XP机器上进行的实验中,无论我设置DNScachingregistry值如何,我总是会在caching中使用30到40个项目 – 甚至在执行数千个DNSparsing。 在具有16 GB内存的64位Windows 2008计算机上,caching中总是有270到300个项目。 我很难过 我不知道答案是什么,但我认为以下情况之一是: 无法更改DNSparsing器caching的大小。 这是可能的,但文件是错误的。 文件是正确的,但它是不完整的。 文档是正确的,完整的,但我太愚蠢,没有意义。 logging的registry项实际上改变了caching的大小,但ipconfig并没有显示caching中的所有条目。 任何人都可以告诉我是否可以在Windows XP,Vista或Server 2008中configurationDNSparsing器caching的大小?