从powershell运行tdpsql命令
我有一个脚本,需要3个必需的输入参数,用于运行tdpsql的备份命令。从powershell运行tdpsql命令
- 类型(FULL,DIFF和LOG)
- SQLServerinstancename
- 数据库(SYSTEM,ALL)
在PowerShell脚本我有以下行
$cmd = "C:\Progra~1\Tivoli\TSM\TDPSql\tdpsqlc.exe backup " + $idatabase + " " + $action + " " + $parameter + " /LOGFILE=" + $logdir + $logfile + "" $tdpsqlexe - The tdpsqlc exe.
$idatabase - Database name
$action = FULL\DIFF\LOG
$parameter = /sqlserver=TCP:" + $sqlserverinstance + " /SQLAUTH=INT /TSMOPTFile='" + $dsmoptfilename + "' /EXCLUDEDB=" + $exclude
& $cmd
当我回应命令时,它会报告我使用powershell命令行运行它的内容,但是当我尝试从Pow运行它时\ PROGRA〜1 \的Tivoli \ TSM \ TDPSql \ tdpsqlc.exe 备份主FULL /SQLSERVER = TCP:与它失败,出现以下
术语
C中的& ershell /SQLAUT H = INT /TSMOPTFile=C:\Progra~1\Tivoli\TSM\TDPSql\dsm.opt/EXCLUDEDB = tempdb的/ LOGFILE =
<logfile>
没有被识别为一个012的名称cmdlet,函数,脚本文件或 可操作的程序。检查名称的 的拼写,或者如果包含路径,则验证路径是否正确,然后再次尝试 。在TDPSQLBackup.ps1:166 焦炭:6 + & < < < < $ CMD >>的test2.txt + CategoryInfo:ObjectNotFound: (C:\ PROGRA〜1 \蒂夫... forsqlimran.txt:字符串) [],CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException
任何帮助将非常感激。
你可以尝试的Invoke-Expression $cmd
代替& $cmd.
是更好的使用Invoke-Expression
,但如果你仍然想使用&你可以这样做。
$cmd = "C:\Windows\System32\notepad.exe"
$params = "C:\temp\file.txt"
& $cmd $params
使用var作为程序文件和var参数。
而不是运行一个批处理命令的你最好尝试PowerShell命令如下
import-module "C:\Program Files\Tivoli\Flashcopymanager\fmmodulemmc.dll"
import-module "C:\Program Files\Tivoli\Flashcopymanager\fmmoduleSQL.dll"
$startTime = get-date
Backup-DpSqlComponent -Name AdventureWorks2012 -BackupDestination TSM -BackupMethod Legacy -Full
$endTime = get-date
$activity = Get-FcmMmcActivity -StartTime $startTime -EndTime $endTime
$activity
参考链接 http://www-01.ibm.com/support/docview.wss?uid=swg21974345