Articles of 脚本

在PowerShell脚本中使用Diskpart不会允许脚本重复使用驱动器盘符

我构build了一个使用Diskpart挂载(附加) VHD的脚本,清除了一些系统文件,然后卸载(分离)它。 它使用一个foreach循环,并假设使用相同的驱动器号来清理多个VHD。 但是,在第一个VHD失败之后。 我还注意到,当我尝试手动附加一个VHD与diskpart,diskpart成功,磁盘pipe理器显示正确的驱动器号的磁盘,但在同一个PoSH实例,我无法连接(设置位置)该驱动器。 如果我在第一次打开PoSH时做了一个手动的磁盘分区,我可以附加和分离所有我想要的,并且每次都得到驱动器盘符。 有什么我需要做的重置脚本中的diskpart? 这是我正在使用的脚本的一个片段。 function Mount-VHD { [CmdletBinding()] param ( [Parameter(Position=0,Mandatory=$true,ValueFromPipeline=$false)] [string]$Path, [Parameter(Position=1,Mandatory=$false,ValueFromPipeline=$false)] [string]$DL, [string]$DiskpartScript = "$env:SystemDrive\DiskpartScript.txt", [switch]$Rescan ) begin { function InvokeDiskpart { Diskpart.exe /s $DiskpartScript } ## Validate Operating System Version ## if (Get-WmiObject win32_OperatingSystem -Filter "Version < '6.1'") {throw "The script operation requires at least Windows 7 or […]

如何debuggingCacti中的数据input方法脚本?

(见底部的更新…) 我已经为Cacti编写了一个数据input方法脚本(在Ruby中从beanstalkd收集统计信息),它在作为cacti用户帐户运行时从命令行(返回一个简单的整数, 如文中所述 )工作, 但是 Cacti工具本身并没有收集任何数据,日志中也没有任何东西。 这里是数据input方法的设置: 仙人掌数据input法http://img.skitch.com/20091009-gh7g1kukn9yradj6y2iqrd5qm1.jpg 下面是结果图(在它被添加到主机的图表模板并运行足够长的时间来收集数据之后): Cacti Graph http://img.skitch.com/20091009-xq1kn3qxkteb5hb11wtx6tbs8m.jpg 更新#1 :看起来仙人掌可能会剥离环境: sudo su – cacti -c'env -i / script / beanstat –host 10.11.12.13 –port 11300 –stat current-waiting' / script / beanstat:4:在`require':没有这样的文件加载 – ruby​​gems(LoadError) from / script / beanstat:4 如果是这样的话,我该如何解决呢? 更新#2 :在stackoverflow.com上的这个响应似乎已经解决了环境问题,但在图表中仍然没有数据。 更新#3 :感谢@希思的build议我碰到了轮询日志级别,并抓住了这一点: 警告:来自CMD的结果无效。 部分结果:U 没有任何运气Googlesearch“部分结果:U”的意思。 该脚本只打印一个整数值。 更新#4 :我终于得到这个工作。 核心问题是运行shell脚本时缺乏环境。 我必须通过在我的Ruby脚本前添加以下几行来解决这个问题: #!/ […]

如何让SCCM识别Powershell脚本完成的返回码?

我正在使用SCCM 2012应用程序部署来安装软件。 特定的安装types是脚本安装程序,因为SCCM不能正常执行exevalidation错误。 该脚本是powershell,并成功安装该软件,即使由SCCM执行。 问题是SCCM只能看到脚本完成时返回0。 我已经尝试了write-host , return , write-output ,只是一个与软重启代码的行项目。 由于应用程序执行日志捕获返回值为0,SCCM似乎没有人读取它们。 你如何从PowerShell输出返回代码,以便SCCM可以解释它们?

gpg代理说代理存在,但gpg说,代理不存在?

我在Debian 6.0.6框中用bash编写gpg脚本时遇到了一些问题。 我有一个脚本,执行一批操作,并希望确保gpg-agent在尝试继续之前可用。 由于gpg-agent在运行时不会执行任何操作并返回成功,所以确保代理存在就像下面这样简单: eval $(gpg-agent –daemon) gpg-agent开始,或将会报告: gpg-agent[21927]: a gpg-agent is already running – not starting a new one 如果已经运行,则返回0(成功)。 当代理程序已经在另一个会话中运行时,会出现问题。 gpg-agent说它已经在运行了……但是gpg自我声称它不可用。 $ gpg-agent –version gpg-agent (GnuPG) 2.0.19 libgcrypt 1.5.0 $ gpg –version gpg (GnuPG) 1.4.13 $ eval $(gpg-agent –daemon) gpg-agent[21927]: a gpg-agent is already running – not starting a new one $ gpg […]

Bash snippet杀死一个进程,直到死了?

我试图写一个强大的bash脚本,并在其中创build一个后台进程。 脚本结尾,我想杀了它。 我有它的PID。 我正在想这样的事情 while [[ ps ef $PID ]] ; do kill $PID sleep 0.5 done 任何build议任何更好的? 这种方法的任何可能的问题?

有没有办法阻止在SERVER端创buildThumbs.db?

我有一些脚本运行在Win2003服务器上的共享驱动器上的文件。 我需要查看在我们的networking中的任何数量的PC上的图像..所以每次我浏览这些文件夹时,客户端创buildthumbs.db,这干扰我们的脚本移动和删除文件夹,但通常不能这样做,因为“thumbs.db正在使用”。 即使在我使用的任何客户端机器上closures文件夹/图像预览时也是如此。 所以我想完全禁用thumbs.db,但是有办法在服务器上这样做,所以我不必担心客户机registry设置等?

如何parsing和转换ini文件到bash数组variables?

我试图将一个ini文件转换成bash数组variables。 样本ini如下所示: [foobar] session=foo path=/some/path [barfoo] session=bar path=/some/path 所以这些成为: session[foobar]=foo path[foobar]=/some/path session[barfoo]=bar 等等。 现在,我只能拿出这个命令 awk -F'=' '{ if ($1 ~ /^\[/) section=$1; else if ($1 !~ /^$/) print $1 section "=" $2 }' 另外,还有一个问题是,它不会考虑到附近的空间。 我认为sed可能更适合这个工作,但我不知道如何在sed保存和存储一个用于部分名称的临时variables。 那么任何想法如何做到这一点?

如果同一个任务已经在运行,我怎样才能防止计划的任务运行?

我写了一个php脚本来检查文件夹中是否有新文件,如果有新文件存在,将它们上传到服务器。 这些文件可能相当大。 我想经常运行这个脚本 – 比方说每5分钟一次 – 作为一个计划任务,以便文件尽快移动到服务器。 但是,一旦脚本已经试图上传文件,我不希望它再次运行,因为恐怕第二个实例将覆盖已经上传到服务器的文件。 除非脚本已经在运行,否则如何将脚本作为计划任务来运行?

AppCmd在IIS7的默认网站中创build一个虚拟目录

我尝试使用AppCmd在IIS 7中的“默认网站”下创build一个虚拟目录。 但首先我想看看是否已经存在。 如何使用AppCmd在“默认网站”下创build虚拟目录,以及如何执行if语句?

Vim – 触发行动\脚本保存\写?

对于超级用户来说,这可能会更好一些,但是我认为这是一个交易的工具,这可能是一个更好的主题。 我经常在vim中编辑时发现我退出,运行一些我正在testing的脚本,然后回到vim(是的,我意识到我可以使用:!命令从vim运行)我只是想知道是否有当文件被保存(:w)时,钩住一些东西来运行的方法?