script para ativar a Inicialização Instantânea de Arquivos com secedit

2

Gostaria de ativar o link do IFI em uma caixa nova ou existente do Windows Server com o SQL Server, via SQL ou Powershell. Não pretendo passar pela "Atribuição de direitos de utilizador > Segurança local > Políticas locais > Executar tarefas de manutenção de volume > Adicionar rota de utilizador" - necessita de implantar novas máquinas através de um script, sem interação manual. Suponha que a conta de serviço do SQL Server não seja alterada.

Para novas instalações, quando escolho a conta, posso executar o script Powershell abaixo e isso resolve o problema:

$sqlaccount = "domain\account"
# https://technet.microsoft.com/en-gb/library/bb490997.aspx
secedit /export /cfg C:\secexport.txt /areas USER_RIGHTS
$line = Get-Content C:\secexport.txt | Select-String 'SeManageVolumePrivilege'
(Get-Content C:\secexport.txt).Replace($line,"$line,$sqlaccount") | Out-File C:\secimport.txt
secedit /configure /db secedit.sdb /cfg C:\secimport.txt /overwrite /areas USER_RIGHTS

No entanto, para instalações SQL existentes, não é possível descobrir uma maneira de consultar a conta de serviço configurada do SQL Server e fornecê-la a esse script. Procurando uma solução com o WS 2012 R2 em mente, mas algo que também funcionaria no WS 2003 R2 seria melhor (suporta até o Powershell 2 se não estou enganado?).

    
por Razvan Zoitanu 04.10.2016 / 18:20

2 respostas

1

(Get-WmiObject win32_service | where { $_.displayname -eq "SQL Server"} ).startname

Substitua o nome pelo nome de exibição do seu serviço do servidor SQL

    
por 04.10.2016 / 21:17
1

Funciona bem, mas no windows server 2016 trava no secedit configure. Para evitar isso, basta adicionar:

Write-Host "y" | secedit / configure / db secedit.sdb / cfg C: \ secimport.txt / sobrescrever / áreas USER_RIGHTS

    
por 21.11.2018 / 04:00