试图在PS中做一些非常简单的事情,但由于一些奇怪的原因,它只是不打球。我的PS脚本如下:
出于某种原因,它抱怨说:
enableMSDTC:术语' enableMSDTC'不被识别为cmdlet,函数,脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
我不允许这样做吗?我必须为每个函数都有一个单独的脚本文件吗?
提前致谢,DS。
param
(
[string]$folder = $(throw 'Local folder to map to is required.')
)
begin
{
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client")
}
process
{
$hasDrive = Test-Path -Path "D:\"
if ($hasDrive -eq $true) {
echo "Enabling MSDTC settings..."
enableMSDTC
}
Function enableMSDTC() {
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\MSDTC\Security" -Name "LuTransactions" -Value "1"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\MSDTC\Security" -Name "NetworkDtcAccess" -Value "1"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\MSDTC\Security" -Name "NetworkDtcAccessAdmin" -Value "1"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\MSDTC\Security" -Name "NetworkDtcAccessClients" -Value "1"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\MSDTC\Security" -Name "NetworkDtcAccessInbound" -Value "1"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\MSDTC\Security" -Name "NetworkDtcAccessOutbound" -Value "1"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\MSDTC\Security" -Name "NetworkDtcAccessTransactions" -Value "1"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\MSDTC\Security" -Name "NetworkDtcAccessXaTransactions" -Value "1"
}
}
答案 0 :(得分:1)
在尝试调用之前定义函数。
答案 1 :(得分:0)
Powershell是一种解释语言,这意味着在运行时按顺序(自顶向下)解析命令。
在定义变量之前,不能调用函数或引用变量。