法一:
可以腾讯电脑管家帮助卸载和安装的
打开腾讯电脑管家——工具箱——软件管理
软件管理是电脑管家根据当前最新最流行的软件下载情况,向用户推荐的热门软件。每款软件都经过电脑管家运营团队人工测试整理,确保安全可靠,用户可以放心下载。
法二:
安装/卸载workflow manager 1.0
安装
配置文件:
<Workflow>
<!--http://msdn.microsoft.com/en-us/library/windowsazure/jj193269(v=azure.10).aspx-->
<WFFarmDBConnectionString value="Data Source=HPITSPM1.youda.mit.com\shUser ID=saPassword=1Qaz2wsx3edc" />
<CertificateAutoGenerationKey value="!Qaz2wsx" />
<RunAsName value="youda\svc_SPFarm_SH" />
<RunAsPassword value="1Qaz2wsx3edc" />
<AdminGroup value="Administrators" />
<WorkflowHostUri value="http://MHSMOYM3.youda.mit.com:12291" />
</Workflow>
2. powershell 脚本:
复制代码
$0 = $myInvocation.MyCommand.Definition
$curDir = [System.IO.Path]::GetDirectoryName($0)
$parDir = Get-Item $curDir | Split-Path -Parent
$graDir = Get-Item $parDir | Split-Path -Parent
# 1 - install2 config
$type = Read-Host "Please input 1 to install or 2 to config"
if($type -eq "1")
{
$cmd = "$parDir\workflow\bin\WebpiCmd.exe"
$xml = "$parDir\workflow\feeds\latest\webproductlist.xml"
Write-Host $cmd
Write-Host $xml
Start-Process "$cmd" -ArgumentList "/Install /Products:WorkflowManager /XML:$xml"
Write-Host "Install workflow manager successfully"
}
elseif($type -eq "2")
{
[xml]$global:wfxml = (gc "$graDir\common\config\config-Workflow.xml") -replace ("localhost", $env:COMPUTERNAME)
#http://msdn.microsoft.com/en-us/library/windowsazure/jj193269(v=azure.10).aspx
$dbConn = $global:wfxml.Workflow.WFFarmDBConnectionString.Value
$runasName = $global:wfxml.Workflow.RunAsName.Value
$adminGroup = $global:wfxml.Workflow.AdminGroup.Value
$key = $global:wfxml.Workflow.CertificateAutoGenerationKey.Value
$RunAsPassword = $global:wfxml.Workflow.RunAsPassword.Value
$secPassword = ConvertTo-SecureString -AsPlainText -Force -String $RunAsPassword
$secKey = ConvertTo-SecureString -AsPlainText -Force -String $key
try
{
# Create new SB Farm
New-SBFarm -SBFarmDBConnectionString $dbConn -InternalPortRangeStart 9000 -HttpsPort 9355 -TcpPort 9354 -MessageBrokerPort 9356 -CertificateAutoGenerationKey $secKey #-RunAsName $runasName -AdminGroup $adminGroup
# Create new WF Farm
New-WFFarm -WFFarmDBConnectionString $dbConn -HttpsPort 12290 -HttpPort 12291 -CertificateAutoGenerationKey $secKey #-RunAsName $runasName -AdminGroup $adminGroup
# Add SB Host
Add-SBHost -SBFarmDBConnectionString $dbConn -RunAsPassword $secPassword -EnableFirewallRules $true -CertificateAutoGenerationKey $secKey
# Create new SB Namespace
New-SBNamespace -Name 'WorkflowDefaultNamespace' -AddressingScheme 'Path' -ManageUsers $runasName
# Get SB Client Configuration
$SBClientConfiguration = Get-sbclientConfiguration -Namespaces 'WorkflowDefaultNamespace'
# Add WF Host
#Copy the Service Bus Client configuration from Service Bus PowerShell console and store it in a local variable $SBClientConfiguration
Add-WFHost -WFFarmDBConnectionString $dbConn -RunAsPassword $secPassword -SBClientConfiguration $SBClientConfiguration -EnableHttpPort -CertificateAutoGenerationKey $secKey -EnableFirewallRules $true
Write-Host "Create workflow manager farm successfully"
}
catch
{
write-host $_.exception.message
}
}
卸载
1. 运行Workflow Manager Configuration Wizard ,点击Leave Farm
2. 卸载下面软件:
Workflow Manager 1.0
Workflow Manager 1.0 Client
Service Bus 1.0
Windows Fabric
3. 删除下面的数据库:
WfManagementDB
SbGatewayDatabase
SBContainer01
WFInstanceManagementDB
WFResourceManagementDB
SBManagementDB
我认为Alfred最成功的地方,是为繁琐的命令执行 *** 作,提供了一种无比优美简洁的使用方式,而且还提供了门槛很低的扩展框架,让用户充分发挥自己的想象力。回到问题本身,分享下我自己的经历。我学习的方式主要通过参考别人已有的workflow。workflow具体做的事情可能千差万别,但是有很多workflow的实现逻辑是相似的,比如我之前想写一个workflow用于切换mac的全局proxy:Proxy Toggle ,就很大程度参考了另一个用于切换Wi-Fi开发的workflow:Wi-Fi toggle。Alfred有个很好的地方,就是你都能在alfred中看到你所使用workflow的具体实现,也就是它们对你都是开源的,至少我用过的workflow都可以。大部分workflow直接在alfred的workflows选项卡下都能看到,有部分workflow可能调用一些脚本文件,你也可以进入对应workflow文件夹下打开具体的脚本文件(可以通过右键workflow - Show in Finder 打开workflow的文件夹)我认为理解Afred workflow的几个组成部分是入门的关键,包括Triggers、Inputs、Actions、Outputs。Triggers不是必备的,常用来设置快捷键开启某个Workflow。Inputs定义了你在Alfred输入框中输入对应的keyword相应的显示内容。以我常用的 @icyleaf 的有道翻译workflow为例,输入“yd workflow”下面所显示的结果都是Inputs中定义的。Inputs中以一个约定的xml格式输出文本就能被Alfred正确显示,上图的显示对应的xml代码为:?xml version="1.0"?itemsitem uid="1.1392438279" arg="工作流 ['w?:k,fl?u]" valid="yes" autocomplete=""title工作流 ['w?:k,fl?u]/titlesubtitle翻译结果/subtitleiconicon.png/icon/itemitem uid="1.1392438279" arg="n. 工作流,工作流程" valid="yes" autocomplete=""titlen. 工作流,工作流程/titlesubtitle简明释义/subtitleiconicon.png/icon/itemitem uid="2.1392438279" arg="工作流, 工作流技术, 工作流程" valid="yes" autocomplete=""title工作流, 工作流技术, 工作流程/titlesubtitle网络释义:Workflow/subtitleiconicon.png/icon/itemitem uid="3.1392438279" arg="工作流管理, 流程管理, 工作流程管理" valid="yes" autocomplete=""title工作流管理, 流程管理, 工作流程管理/titlesubtitle网络释义:workflow management/subtitleiconicon.png/icon/itemitem uid="4.1392438279" arg="工作流程动作, 工作流程 *** 作, 工作流 *** 作" valid="yes" autocomplete=""title工作流程动作, 工作流程 *** 作, 工作流 *** 作/titlesubtitle网络释义:workflow action/subtitleiconicon.png/icon/item/items因为中文字符有转码,所以看起来有点像乱码:( ,这里跟微信公众帐号的工作方式很想吧。Actions对应选中项后执行的 *** 作,比如在我的Proxy Toggle中,用户执行全局代理切换的工作脚本就写在actions中。Outputs一般用于显示 *** 作的结果,提示 *** 作成功与否,以Post Notification较为常见,通过Mac的notification center提示。以有道翻译为例,workflow中各部分示意图如下:至于调试,貌似也用不到什么技巧,我都是测过脚本语法没问题后直接在本机上执行。希望以上能对想入门的同学有帮助,这里有我自己写或修改过的几个workflow 尝试给自己写AlfredWork,都是比较简单的。我觉得workflow实现复杂与否不重要,关键在于使用频繁,是否能提高效率。关键还是多实践,了解workflow工作方式之后,写workflow也就跟开发其他脚本一样了。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)