我有一个有许多子OU的OU,每个OU都有一个计算机的OU。 要开始的最高级别的OU是具有许多子OU的“部门”。 我需要一个脚本来检索所有的计算机,并将它们列在一个表中,并显示它们各自的OU。 脚本的结果可能如下所示: 计算机名称— OU Computer01 —- Fabrikam.com/Departments/Finance/Computers ….或者它甚至可能看起来像是相应的AD'Object': Fabrikam.com/Departments/Finance/Computers/Computer01 虽然我更喜欢第一个。 这是我试过的脚本,但运行时会抛出大量的错误: On Error Resume Next Const ADS_SCOPE_SUBTREE = 2 Set objConnection = CreateObject("ADODB.Connection") Set objCommand = CreateObject("ADODB.Command") objConnection.Provider = "ADsDSOObject" objConnection.Open "Active Directory Provider" Set objCommand.ActiveConnection = objConnection objCommand.Properties("Page Size") = 1000 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE objCommand.CommandText = _ "SELECT ADsPath FROM 'LDAP://OU=Departments,dc=fabrikam,dc=com' WHERE […]
来自这个问题在这里: 如何创buildExchange PowerShell的脚本来修改所有共享邮箱的设置? 这是我的Powershell脚本(向右滚动以查看全部): $Mailboxes = Get-Mailbox -RecipientTypeDetails SharedMailbox Foreach ($Mailbox in $Mailboxes) { Set-Mailbox $Mailbox -MessageCopyForSentAsEnabled $True -MessageCopyForSendOnBehalfEnabled $True } 如果从Exchange命令行pipe理程序窗口启动,它可以正常工作。 但是我想从batch file启动它,所以我find了以下Microsoft页面: https : //technet.microsoft.com/en-us/library/bb123798%28v=exchg.150%29.aspx?f=255&MSPPError = -2147217396#了RunScript 按照指南那里,我创build了这个batch file(向右滚动查看全部): PowerShell.exe -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; 'C:\Program Files\Microsoft\Exchange Server\V15\bin\enablesentforshared.ps1'" 我添加了一个没有在说明中指定的事情是围绕我想要运行的脚本的完整path的单引号。 没有单引号,我得到关于C:\Program不是一个公认的cmdlet或脚本的错误。 无论如何,当我运行这个batch file时,terminal窗口打开,然后切换到Powershell窗口,脚本的path名被打印到屏幕上,但在[PS]提示符之前打印出来,没有任何东西执行。 这是我的Powershell窗口在执行batch file后的样子: VERBOSE: Connecting to exchangeserver.domain.com VERBOSE: Connected […]
背景 我有一个要求,每天恢复一个服务器的快照到一个testing环境,一旦恢复,有必要更新许多位的configuration,使其成为一个testing环境。 我设法更新所有我需要的设置,只有一个例外,即运行SMTP服务器的端口。 服务器是Windows 2012 R2服务器,它托pipe的所有网站都在IIS8上运行,而SMTP服务器正在IIS6中运行,兼容包,WMI扩展都已安装(尽pipe后来通过更新脚本)。 问题是我无法find一种方法来通过脚本更新端口25的SMTP入站端口。 我的更新脚本的其余部分是用Powershell编写的,如果可能的话,我想留在PowerShell中进行更改。 我曾尝试使用appcmd,但无法find相关的设置来更新,与WMI一样,我已经手动更改了SMTP端口,试图find一个字段来更新,但迄今为止certificate没有运气。 任何可以给予的帮助将不胜感激。 抢 UPDATE 好的,所以我真的设法解决这个问题:) $Serverbindings = (gwmi -namespace root\microsoftiisv2 -class iissmtpserversetting) $Bindings = $ServerBindings.ServerBindings foreach ($Binding in $bindings) { $Binding.Port = "2525" } $Serverbindings.ServerBindings = $Bindings $ServerBindings.Put() 如果这对未来的其他人有用。
在“input服务器名称”并在下面的脚本中设置$servselectvariables之后,在select“Hello”和“Goodbye”选项后,variables将丢失。 这需要再次完成“input服务器名称”提示。 有没有办法维持这个variables,直到脚本完全退出? 任何build议将不胜感激。 #!/bin/bash # while true; do read -p "Enter server name: " servselect servselect=${servselect:-servselect} echo $servselect has been selected! printf '%s\n' \ "" \ "[A] Hello" \ "[B] Goodbye" \ "[Q] Quit" \ "" read -n1 -p 'Enter response here:' response case $response in [Aa]* ) printf '%s\n' \ "" \ "Hello, […]
我想使用下面的代码从过滤的JSON中提取IP: $curl = Invoke-WebRequest -Method Get -Uri "http://urltojson.com/file.json" $curl2 = $curl.Content.replace("Script", "Script_").replace("iphone", "iphone_").replace("android", "android_").replace("ipad","ipad_") | ConvertFrom-Json $curl3 = $curl2 | Where-Object {$_.Name -eq "/Common/cloudfront_nets"} | Select-Object -ExpandProperty data $curl3 [System.Collections.ArrayList]$curl3[0] = $curl3 $curl3[1] 其中返回以下内容 13.59.250.0 255.255.255.192:地区:us-east-2-service:CLOUDFRONT 52.57.254.0 255.255.255.0:地区:欧盟中心一服务:CLOUDFRONT 54.182.0.0 255.255.0.0:region:GLOBAL-service:CLOUDFRONT 52.212.248.0 255.255.255.192:地区:欧盟西部1服务:CLOUDFRONT 205.251.250.0 255.255.254.0:region:GLOBAL-service:CLOUDFRONT 35.162.63.192 255.255.255.192:地区:us-west-2-service:CLOUDFRONT 13.32.0.0 255.254.0.0:region:GLOBAL-service:CLOUDFRONT 205.251.254.0 255.255.255.0:region:GLOBAL-service:CLOUDFRONT 我努力简单地输出IP(没有子网掩码) 任何人都可以帮忙吗?
嗨,大家好,我需要一些帮助,我写了一个脚本来连接到多个SSH主机,但脚本只能与第一个IP工作,其他人没有改变。 这是我的脚本: #!/bin/bash HOSTS="192.168.120.237 192.168.120.238 192.168.120.239" USER=root # Conectar a cada una de las IP for host in $HOSTS; do ssh "$USER@$HOSTS" 'bash -s arg' < /home/soulfly/Escritorio/neo1isla1.sh done
Redhat 5.3 Enterprise 以下Shell脚本用于检查备份目录是否被命名为“ll_backup”,然后将其更改为等于文件RESULT.VAR的内容。 result.var文件被复制用于日志目的到另一个目录。 我在testing环境中工作,但是在制作过程中,它经历了一个奇怪的错误,我不能在我的生活中弄明白! 脚本: #!/bin/bash #!/bin/cat # Restores original directory name for next LogLogic Update #TCJ 6/1/09 declare RESULT declare FILE FILE=result.var cd /home/nb-backup/backups/nb-st3000/ll_bkup_65.99.220.172/ if [ -d ll_bkup ] then cat result.var | while IFS=: read RESULT mv "ll_bkup" "$RESULT" mv result.var /home/storegrid/scripts/results/result-`date +%y%m%d%s`.var else exit 0 fi exit 0 结果: nb-script-restorellbackup.sh:第14行:语法错误附近意外的令牌else' […]
我需要能够做到以下几点: 从所述磁盘引导删除所有C:\ documents和settings \ jafdkjewi文件夹(除了所有用户,默认用户和select其他人)重新启动 帮帮我!!!!!!!!!!!!!!!!
我前一天写了一个脚本,把我的整个数据库和所有/ var / www文件备份到一个networking共享。 这是我第一次尝试在Linux下编写脚本,总而言之,我觉得这很酷。 我想添加一个function到我的备份脚本。 目前,脚本使用rsync来覆盖备份目标上的任何现有数据。 我希望它实际上创build一个独特的,完整的备份,每次运行。 现在我每天晚上都要运行。 但是,我只希望同时进行15个并发完整备份 – 所以一旦达到15个备份,我希望它开始删除较旧的备份。 任何人都可以指向正确的方向吗? 这是我目前的脚本: #!/usr/bin/env bash # Mount the share smbmount //address/folder /mnt/folder -o credentials=/root/.smbpasswd # Synchronize the Web folder rsync –delete -C -v -a -r /var/www /mnt/folder # Create a backup of all databases mysqldump -uuser -ppassword –all-databases | gzip -9 > /root/backup/Databases.sql.zip # […]
我正在寻找编写一个bourne shell,它通过一系列主机循环,并为每个主机执行一个rsync。 就像是: HOSTS=("host1.domain.com", "host2.domain.com") for HOST in $HOSTS do HOST_DIR_NAME = ${HOST//./-} rsync backup_user@$HOST:/backup/blah/blah /backup/$HOST_DIR_NAME/blah/blah done 但问题是,上面的数组看起来不像预期的那样工作,因为在循环数组时,我看到以下输出: wwcprod.plyinc.com, 我发现每一个在线指南说,我正确定义arrays,但显然不工作。 帮帮我! 谢谢!