2015-07-22 56 views
3

問題: 有沒有人知道爲什麼批處理文件在機器啓動時沒有運行,直到用戶通過遠程桌面連接?另外,有沒有辦法在機器啓動時執行批處理文件,而無需任何用戶交互?直到用戶登錄纔在Azure VM啓動上運行批處理文件

背景: 我有一臺託管在Microsoft Azure中的虛擬機。我打開了一個遠程桌面會話,創建了一個啓動遊戲服務器(即gameserver.exe)的簡單批處理文件,創建了該批處理文件的快捷方式,並將快捷方式添加到AppData/Windows /開始菜單/程序/啓動。

現在,當我重新啓動虛擬機從Azure管理控制檯。無論等待多久,我都沒有看到遊戲服務器的啓動。

但是,當我遠程進入VM只要遠程桌面會話連接我看到的批處理文件打開並開始運行,從而開始我的遊戲服務器。

我能夠創建一個快捷方式gameserver.exe和地點到啓動文件夾,並運行,我會盡快重新啓動VM期待。但是,爲了在啓動服務器之前配置服務器,我需要做幾件不同的事情,所以我想使用批處理文件來實現它。

回答

1

我知道,使一些在服務器上運行的唯一方法是使用組策略的計算機配置爲自動運行在系統啓動的東西。下一步是註冊表中的AutoRun鍵(RunOnce),用戶登錄時執行某些操作。下一步是PsExec,它可以定位遠程計算機並運行您選擇的可執行文件或腳本。

此外,您可以配置VM自動登陸用戶然後鎖定VM。這樣,來自注冊表的RunOnce將會運行,甚至可以將應用程序快捷方式放入啓動文件夾中。詳細瞭解自動登錄和鎖定here

1

您還可以嘗試使用Windows任務計劃程序。您只需創建一個具有管理員權限的任務,該任務被觸發以在啓動時運行程序\ exe \ batch。

這裏是一個示例XML,你可以import並相應地改變。

<?xml version="1.0" encoding="UTF-16"?> 
 
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> 
 
    <RegistrationInfo> 
 
    <Date>2015-07-22T12:21:20.7566893</Date> 
 
    <Author>SRIKANTH-PC\vishwanath</Author> 
 
    <Description>sample task desc</Description> 
 
    </RegistrationInfo> 
 
    <Triggers> 
 
    <BootTrigger> 
 
     <Enabled>true</Enabled> 
 
    </BootTrigger> 
 
    </Triggers> 
 
    <Principals> 
 
    <Principal id="Author"> 
 
     <UserId>SRIKANTH-PC\vishwanath</UserId> 
 
     <LogonType>S4U</LogonType> 
 
     <RunLevel>HighestAvailable</RunLevel> 
 
    </Principal> 
 
    </Principals> 
 
    <Settings> 
 
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy> 
 
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries> 
 
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries> 
 
    <AllowHardTerminate>true</AllowHardTerminate> 
 
    <StartWhenAvailable>false</StartWhenAvailable> 
 
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable> 
 
    <IdleSettings> 
 
     <StopOnIdleEnd>true</StopOnIdleEnd> 
 
     <RestartOnIdle>false</RestartOnIdle> 
 
    </IdleSettings> 
 
    <AllowStartOnDemand>true</AllowStartOnDemand> 
 
    <Enabled>true</Enabled> 
 
    <Hidden>false</Hidden> 
 
    <RunOnlyIfIdle>false</RunOnlyIfIdle> 
 
    <WakeToRun>false</WakeToRun> 
 
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit> 
 
    <Priority>7</Priority> 
 
    </Settings> 
 
    <Actions Context="Author"> 
 
    <Exec> 
 
     <Command>F:\Projects\zipalign.exe</Command> 
 
     <WorkingDirectory>F:\Projects\</WorkingDirectory> 
 
    </Exec> 
 
    </Actions> 
 
</Task>

相關問題