Questions tagged «scripting»

在系统管理的上下文中,计算机编程的一种形式非常适合于自动执行任务。


10
批量查询戴尔服务标签
任何人都知道一种获取服务标签列表信息的方法,戴尔在其网站上是否设有专门的部分?我也会对任何Perl / Python库或* nix shell脚本开放。 现在,我主要希望每个标签都有某种日期。
9 scripting  dell 

1
如何使SCCM识别Powershell脚本完成中的返回码?
我正在使用SCCM 2012应用程序部署来安装软件。特定的安装类型是脚本安装程序,因为SCCM始终因exe验证错误而失败。该脚本是powershell,即使由SCCM执行,该脚本也可以成功安装该软件。 问题在于SCCM仅从脚本的完成中看到0的返回。我已经尝试了write-host,,return和write-output,其中只有一个包含用于软重启的代码的订单项。由于应用执行日志捕获了0的返回值,因此SCCM似乎都不读取它们。 您如何从Powershell输出返回码,以便SCCM可以解释它们?


1
在脚本中输入本地管理员用户名和密码
我的网络上有很多客户端,我希望我的脚本执行以下操作: [1]使用本地管理员详细信息打开提升权限的命令提示符。注意:我不想为每个用户输入用户名和密码。 [2]使用以下命令卸载Java:“ wmic产品,其中“'java%'之类的名称”调用uninstall” [3]然后,我想在PC重启后安装另一个Java版本。 我现在不太担心步骤2和3,但是步骤1给我带来了一些问题。我尝试了以下方法: runas命令 NirSoft程序 PowerShell 我真的只是想知道是否可以在不访问网络上的每台PC并输入本地管理员密码的情况下实现这一点。 /programming/19098101/how-to-open-an-elevated-cmd-using-command-line-for-windows 提前致谢。廷博

3
PowerShell:带有åäö的Get-ADUser属性
我正在尝试使用Get-ADUser提取用户的选择集。用户属于名称包含非ASCII字符的公司,例如“Gåäördet”。不幸的是,我们必须使用company属性来完成此任务,我们还需要它通过脚本工作。 以下内容在交互式会话中非常有用,但是在脚本中执行时不返回任何数据: $Company = "Gåäördet" Get-ADUser -Filter "company -eq '$Company'" 我找到了可行的解决方法,但不够可靠(选择错误对象的风险): # Work-around 1: $Company = "Gaaordet" # Replace åäö with aao in the variable Get-ADUser -Filter "company -eq '$Company'" # Matches the company "Gåäördet", but why? ...要么... # Work-around 2: $Company = "G...rdets" # Use regex for åäö Get-ADUser …

3
是否可以使用Puppet来确保目录中存在多个文件而不定义所有文件?
我有数百个一次性服务器,这些服务器具有需要在目录中显示的不同配置文件。这些文件的副本位于木偶母版上。 在我的一个类中,我有一组默认配置,这些配置总是推送到节点,如下所示: file { "/etc/someprogram/config/000-default": ensure => "present", owner => "root", group => "root", mode => 0764, source => "puppet:///modules/someprogram/000-default", } 我想要的是这样的: $filearray = directory listing of /etc/puppet/modules/someprogram/files/$fqdn with each file as an element into array $filearray.each( file { "/etc/someprogram/config/$filename": ensure => "present", owner => "root", group => "root", mode …

3
覆盖特定用户的二进制路径
我的问题似乎微不足道,但我没有找到任何对互联网有帮助的东西。我有一个二进制文件 /urs/bin/binary 但是它已经过时了,例如在某些安装架上有较新的版本 /mount/new_version/binary 有一个bash脚本,它以如下形式调用此二进制文件 binary -doSomething 我需要此脚本来调用二进制的新版本,而不是旧版本,但是我无权更改此脚本。是否有办法以某种方式覆盖它的路径,但仅适用于我的用户?任何帮助,将不胜感激。
8 linux  bash  scripting  path 

2
在PowerShell脚本中使用Diskpart不允许脚本重复使用驱动器号
我构建了一个脚本,该脚本使用Diskpart挂载(附加)VHD,清除一些系统文件,然后卸载(分离)它。它使用foreach循环,并假定使用相同的驱动器号清除多个VHD。但是,在第一个VHD之后,它将失败。我还注意到,当我尝试用diskpart手动附加VHD时,diskpart成功了,磁盘管理器显示了具有正确驱动器号的磁盘,但是在同一PoSH实例中,我无法连接(设置位置)到该驱动器。如果我在第一次打开PoSH时进行了手动diskpart,则可以附加和分离所有想要的文件,并且每次都获得驱动器号。我需要做些什么来重置脚本中的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 Windows Server …

2
使Shell脚本在CentOS上作为守护程序运行?
编辑:由于某种原因,我的帖子一半被截断,不确定发生了什么。我将尽快更新,并将在顶部发布。 编辑:我再次更新了帖子,对不完整的问题表示抱歉。 编辑(美国东部标准时间2011年10月10日晚上8:55):我像史蒂文建议的那样更新了/srv/rhodecode/start.sh,仍然没有喜悦。它继续像这样挂起: [lpeabody@vcs rhodecode]$ sudo /etc/init.d/rhodecode-server start Starting rhodecode-server: 我已经更新了以下脚本以显示更改。 我一生中从未写过shell或bash脚本。我正在尝试在CentOS上安装RhodeCode,并且有Debian和Gentoo的初始化脚本,但没有RedHat / CentOS的初始化脚本,这对我来说太疯狂了。所以我需要写一个,因为我们的服务器环境仅限于运行CentOS5。该项目的源代码可以在Bitbucket上找到。 这个想法是运行带有Celery和RabbitMQ的RhodeCode。这些都是用Python编写的,我使用virtualenv将环境包含在自己的独立虚拟容器中。我在这里有了shell脚本的主意。 我创建了一个名为rhodecode的系统用户,并创建了目录/ var / run / rhodecode,该目录由rhodecode拥有。我还创建了production.ini所在的/ var / www / rhodecode以及/srv/rhodecode/start.sh,所有这些文件均由rhodecode拥有。 权限: [lpeabody@vcs run]$ ll -a /var/run/rhodecode total 12 drwxr-xr-x 2 rhodecode rhodecode 4096 Oct 10 15:57 . drwxr-xr-x 21 root root 4096 Oct 10 …

5
Bash:将命令作为参数传递给函数时,引号被剥夺
我正在尝试为我的脚本实现一种空运行机制,并在将命令作为参数传递给函数并导致意外行为时遇到引号被剥夺的问题。 dry_run () { echo "$@" #printf '%q ' "$@" if [ "$DRY_RUN" ]; then return 0 fi "$@" } email_admin() { echo " Emailing admin" dry_run su - $target_username -c "cd $GIT_WORK_TREE && git log -1 -p|mail -s '$mail_subject' $admin_email" echo " Emailed" } 输出为: su - webuser1 -c …


1
如何在Cacti中调试数据输入法脚本?
(请参阅底部的更新...) 我已经为Cacti编写了一个数据输入方法脚本(在Ruby中,以收集来自beantalkd的统计信息),并且在以cacti用户帐户(但使用Cacti工具)运行时,它可以从命令行工作(返回一个简单的整数,如此处所述)。本身不收集任何数据,并且日志中没有任何内容。 这是数据输入法设置: 仙人掌数据输入法http://img.skitch.com/20091009-gh7g1kukn9yradj6y2iqrd5qm1.jpg 这是生成的图(将其添加到主机的图表模板后,可以运行足够长的时间以收集数据): 仙人掌图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'中:没有要加载的文件-rubygems(LoadError) 来自/ script / beanstat:4 如果是这样,我应该如何解决? 更新#2:stackoverflow.com上的此响应似乎已解决了环境问题,但图表中仍然没有数据。 更新#3:感谢@Heath的建议,我提高了轮询器的日志记录级别并发现了这一点: 警告:CMD的结果无效。部分结果:U 还没有运气谷歌搜索“部分结果:U”的意思。该脚本仅打印单个整数值。 更新#4:我终于做到了这一点。核心问题是shell脚本运行时缺少环境。我必须通过在Ruby脚本前添加以下几行来解决该问题: #!/ bin / sh PATH = / usr / local / bin:$ PATH exec ruby​​ …


6
如何定期删除文件中的所有内容而不删除它
我需要定期清空文本文件而不删除它(我知道它有多少行)。 我尝试了这个: 创建一个执行以下脚本的cron other lines from the script here sed '1,14d' file.txt>file.txt 如果我从终端运行它,则可以正常工作,但是当我运行cron时,它将执行第一部分(“脚本的其他行”部分),但不会清空文件。 注意:该文件具有777权限,因此我认为它与权限无关。
3 bash  cron  scripting 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.