Gerenciador IIS via appcmd.exe
npm install iis-tsappcmd.exe, utilizando Node.js + TypeScript.
bash
npm install iis-ts
`
Requer:
* Windows
* IIS instalado
* appcmd.exe presente em:
* C:\Windows\System32\inetsrv\appcmd.exe
* C:\Windows\SysWOW64\inetsrv\appcmd.exe
---
📘 Como usar
$3
`ts
import { IIS } from "iis-ts";
const iis = new IIS();
`
Ou com caminho customizado:
`ts
const iis = new IIS("C:\\meu\\caminho\\para\\appcmd.exe");
`
---
🔍 Listar Sites
`ts
const sites = await iis.listSites();
console.log(sites);
`
$3
`ts
[
{
name: "Default Web Site",
id: "1",
bindings: {
protocol: "HTTP",
port: "80"
},
state: "Started",
physicalPath: "C:\\inetpub\\wwwroot",
pool: "DefaultAppPool"
}
]
`
---
🟦 Parar e Iniciar Application Pools
$3
`ts
await iis.stopPool("DefaultAppPool");
`
$3
`ts
await iis.startPool("DefaultAppPool");
`
---
🌐 Parar e Iniciar Sites
$3
`ts
await iis.stopSite("Default Web Site");
`
$3
`ts
await iis.startSite("Default Web Site");
`
---
⚠️ Exceções
O pacote possui exceções customizadas para facilitar debugging:
* AppCmdException
* RequiredParamException
* ExecCommandErrorException
* XMLParserException
* ErrorReadSitesException
Exemplo de captura:
`ts
try {
await iis.stopSite("MeuSite");
} catch (err) {
console.error("Erro:", err.message);
}
`
---
📙 Tipos incluídos
O pacote acompanha tipos completos:
`ts
import type { ExecCommandOutput, ListSitesOutput } from "iis-ts";
`
---
🧪 Exemplo completo
`ts
import { IIS } from "iis-ts";
async function main() {
const iis = new IIS();
const sites = await iis.listSites();
console.log("Sites disponíveis:", sites);
await iis.stopPool("DefaultAppPool");
console.log("Pool parado.");
await iis.startPool("DefaultAppPool");
console.log("Pool iniciado.");
await iis.stopSite("Default Web Site");
console.log("Site parado.");
await iis.startSite("Default Web Site");
console.log("Site iniciado.");
}
main();
``