小编Mar*_*ryl的帖子

将Inno Setup安装程序包装在MSI中以便通过AD更容易分发是否可行/明智?

我们的安装程序是用Inno Setup编写的,我们对它非常满意.然而,一些客户不断要求MSI安装程序,他们可以通过Active Directory更轻松地分发.我们已经花了一些时间,通过/LOADINF使用我们自己的选项扩展Inno Setup的机制,使安装程序与自动化和无人值守安装相得益彰.

为了满足客户要求MSI,我一直在考虑简单地将我们的常规安装程序包装在MSI中,可能是使用WIX创建的.问题是:我可以保持当前安装程序提供的高可配置性吗?在无人值守/大规模安装方案中,如何通过外部MSI公开Inno Setup安装程序的选项?

请注意,我还没有真正深入到实际挖掘MSI创建和WIX的程度.现在我只关心那些知道他们在说什么的人认为这是一种可行/合理的方法来投入我们的能量......

[编辑:]最初我认为我可以使用临时提取和执行方法,即MSI只是用作将Inno安装程序交付到目标PC并在其中以/VERYSILENT-mode 执行的容器.但我想要求MSI的客户也希望能够从中央位置卸载甚至修改安装,我想在那种情况下这是不可能的,不是吗?

PS:我们在这里也有一份WISE for MSI的旧版本,但这种体验实际上就是为什么我们开始使用Inno来开始...

windows-installer inno-setup

25
推荐指数
2
解决办法
1万
查看次数

如何使用命令提示符重启服务?

我想在[Icons]使用Inno Setup的部分中使用命令提示符重新启动Windows服务.请帮我解决问题.

installer windows-services inno-setup

24
推荐指数
4
解决办法
10万
查看次数

使用Java JSch进行SFTP文件传输

这是我的代码,它在远程服务器上检索文件的内容并显示为输出.

package sshexample;

import com.jcraft.jsch.*;
import java.io.*;

public class SSHexample 
{
public static void main(String[] args) 
{
    String user = "user";
    String password = "password";
    String host = "192.168.100.103";
    int port=22;

    String remoteFile="sample.txt";

    try
    {
        JSch jsch = new JSch();
        Session session = jsch.getSession(user, host, port);
        session.setPassword(password);
        session.setConfig("StrictHostKeyChecking", "no");
        System.out.println("Establishing Connection...");
        session.connect();
        System.out.println("Connection established.");
        System.out.println("Creating SFTP Channel.");
        ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
        sftpChannel.connect();
        System.out.println("SFTP Channel created.");
        InputStream out= null;
        out= sftpChannel.get(remoteFile);
        BufferedReader br = new BufferedReader(new InputStreamReader(out));
        String line;
        while …
Run Code Online (Sandbox Code Playgroud)

java ssh sftp jsch file-transfer

24
推荐指数
3
解决办法
11万
查看次数

仅在需要时使Inno Setup安装程序请求权限提升

如果需要特权提升,Inno Setup安装程序具有可用于控制安装程序启动时的PrivilegesRequired指令.我希望我的安装程序甚至可以为非管理员用户工作(没有问题将我的应用程序安装到用户文件夹,而不是Program Files).所以我设置PrivilegesRequirednone(未记录的值).这使得UAC仅为管理员用户提示弹出,因此他们甚至可以安装到Program Files.没有UAC提示非管理员用户,所以即使他们可以安装应用程序(到用户文件夹).

这有一些缺点:

  • 有些人在他们的计算机上使用不同的管理员和非管理员帐户,通常使用非管理员帐户.通常,在使用非管理员帐户启动安装时,当他们收到UAC提示时,他们会输入管理员帐户的凭据以继续.但这不适用于我的安装程序,因为没有UAC提示.
  • (过于可疑)拥有管理员帐户且想要安装到用户文件夹的人无法在没有(不需要)管理员权限的情况下启动我的安装程序.

是否有一些方法可以在需要时(当用户选择仅由管理员帐户写入的安装文件夹时)使Inno Setup请求权限提升?

我假设在Inno Setup中没有这个设置.但可能有一个程序化的解决方案(Inno Setup Pascal脚本)或某种插件/ DLL.


请注意,即将推出的Inno Setup 6具有对非管理安装模式的内置支持.

privileges uac inno-setup pascalscript elevated-privileges

24
推荐指数
2
解决办法
2万
查看次数

在FTP上传文件

我想将文件从一台服务器上传到另一台FTP服务器,以下是我上传文件的代码,但是它会抛出一个错误:

远程服务器返回错误:(550)文件不可用(例如,找不到文件,没有访问权限).

这是我的代码:

string CompleteDPath = "ftp URL";
string UName = "UserName";
string PWD = "Password";
WebRequest reqObj = WebRequest.Create(CompleteDPath + FileName);
reqObj.Method = WebRequestMethods.Ftp.UploadFile;
reqObj.Credentials = new NetworkCredential(UName, PWD);
FileStream streamObj = System.IO.File.OpenRead(Server.MapPath(FileName));
byte[] buffer = new byte[streamObj.Length + 1];
streamObj.Read(buffer, 0, buffer.Length);
streamObj.Close();
streamObj = null;
reqObj.GetRequestStream().Write(buffer, 0, buffer.Length);
reqObj = null; 
Run Code Online (Sandbox Code Playgroud)

你能告诉我哪里出错了吗?

.net c# asp.net ftp ftpwebrequest

23
推荐指数
3
解决办法
9万
查看次数

PuTTY配置等同于OpenSSH ProxyCommand

我只是想用PuTTY来连接我的服务器.这些服务器仅允许来自另一个特定服务器的传入SSH连接(下面的示例中为"MySshProxyingServer").

使用Linux,这对ssh -W命令没有问题.

在PuTTY中,我找不到创建这种连接的选项.

Linux(~/.ssh/config)下的示例:

Host MyHostToConnectTo
    Hostname xx.xx.xx.xx
    User root
    Identityfile ~/.ssh/id_rsa
    ProxyCommand ssh MySshProxyServer -W %h:%p
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何在PuTTY中使用这样的配置?

ssh proxy putty openssh portforwarding

23
推荐指数
1
解决办法
2万
查看次数

WinSCP:权限被拒绝.错误代码:3来自服务器的错误消息:权限被拒绝

我正在使用WinSCP并在每次尝试替换/覆盖文件时继续遇到此错误.我已经能够在没有任何问题之前传输/覆盖文件,但现在不能了.

确切的错误消息:

无法创建远程文件'var/lib/tomcat6/webapps /..../ myfilename.filepart'.
没有权限.
错误代码:3
来自服务器的错误消息:权限被拒绝

我已经尝试更改我成功的所有权,因为当我刷新时,从tomcat6,它现在在我的登录名下.但我仍被否认.这让我很难测试我们的报告,因为我只需要查看它是否已经在部署的应用程序中运行.

我也试过调整WinSCP偏好中的一些选项,例如Drag&DropEndurance,但没有任何区别.

我重新安装了PuTTY和WinSCP,但没有任何改变.

更新:
我可以通过文件路径中的1个等级替换我的文件(例如var/lib/myfolder/myproject/web-inf/report,返回1个档位到var/lib/myfolder/myproject/web-inf /)然后键入

sudo chown myuser:myuser report -R
Run Code Online (Sandbox Code Playgroud)

但我的报告会有错误,所以我必须输入 sudo chown tomca6:tomcat6 report -R然后错误将被清除,我现在可以查看我的替换文件.

这非常不方便,因为我每次都必须这样做.有什么办法可以解决这个问题吗?谢谢

winscp permission-denied

22
推荐指数
1
解决办法
8万
查看次数

Windows 10相当于LaunchAdvancedAssociationUI

从Windows 10开始,该IApplicationAssociationRegistrationUI::LaunchAdvancedAssociationUI方法不再起作用.

在Windows Vista,7和8上,它将在" 设置程序关联"页面上打开指定应用程序的"控制面板" .

在Windows 10上,它什么都不做.

它甚至记录在MSDN中:

从Windows 10开始,这不会启动关联对话框.它会向用户显示一个对话框,通知他们可以更改用于在其"设置"中打开文件扩展名的默认程序

(即使在当前版本的Windows 10中声明的第二部分也不再正确)


实际上,在Windows 10的最新版本中,控制面板不再存在.其功能已移至"应用" >"默认应用">"应用设置默认值">"应用名称"下的"设置"应用.

在此输入图像描述

有没有办法以编程方式在Windows 10设置应用程序中为我的应用程序打开应用程序界面的默认设置?

或者是否有另一种方法建议应用程序允许其用户自定义Windows 10中的关联?

windows winapi controlpanel windows-shell windows-10

22
推荐指数
3
解决办法
3147
查看次数

无法在C#中使用SSH.NET上传文件SFTP - 权限被拒绝

我正在尝试使用SF.NET协议使用C#使用SSH.NET库上传文件.以下是我正在使用的代码

FileInfo f=new FileInfo("C:\\mdu\\abcd.xml");            
string uploadfile=f.FullName;    
Console.WriteLine(f.Name);
Console.WriteLine("uploadfile"+uploadfile);
var client = new SftpClient(host, port, username, password);
client.Connect();
if(client.IsConnected){
       Console.WriteLine("I AM CONNECTED");
}
var fileStream = new FileStream(uploadfile, FileMode.Open);  
if(fileStream!=null){
            Console.WriteLine("YOU ARE NOT NULL");
}
client.BufferSize = 4 * 1024; 
client.UploadFile(fileStream, f.Name,null);
client.Disconnect();
client.Dispose();
Run Code Online (Sandbox Code Playgroud)

我能够连接,filestream也不是NULL.但我PermissionDeniedException在尝试上传文件时得到了.

Unhandled Exception: Renci.SshNet.Common.SftpPermissionDeniedException: Permission denied
   at Renci.SshNet.Sftp.SftpSession.RequestOpen(String path, Flags flags, Boolean nullOnError)
   at Renci.SshNet.SftpClient.InternalUploadFile(Stream input, String path, Flags flags, SftpUploadAsyncResult asyncResult, Action`1 uploadCallback)
   at Renci.SshNet.SftpClient.UploadFile(Stream input, String path, Boolean canOverride, Action`1 uploadCallback) …
Run Code Online (Sandbox Code Playgroud)

c# upload sftp permission-denied ssh.net

22
推荐指数
2
解决办法
5万
查看次数

使用PowerShell将文件上载到SFTP

我们被要求设置从我们的一个服务器到SFTP站点的自动上传.每周一早上都会有一个文件从数据库导出到文件管理器,他们希望在星期二将文件上传到SFTP.我们使用的当前身份验证方法是用户名和密码(我相信有一个选项可以使用密钥文件,但选择了用户名/密码选项).

我想象的方法是让一个脚本坐在服务器上,由Windows任务调度程序触发,以便在特定时间(星期二)运行,该文件将获取有问题的文件,将其上传到SFTP,然后将其移动到用于备份目的的不同位置.

例如:

  • 本地目录: C:\FileDump

  • SFTP目录: /Outbox/

  • 备份目录: C:\Backup

我在这方面尝试了一些东西,WinSCP就是其中之一,以及SFTP PowerShell Snap-In,但到目前为止我没有任何工作.

这将在Windows Server 2012R2上运行.
当我运行Get-Host我的控制台主机版本是4.0.

谢谢.

powershell upload sftp automation

22
推荐指数
4
解决办法
7万
查看次数