IIS集中化管理与编程REST API
目录
三、 IIS Administration配置文件.... 2
一、简介
Microsoft IIS Administration 微软提供,管理IIS配置的REST API 和集中化IIS管理WEB UI。
l 支持绝大部分IIS配置项管理
l 支持管理远程IIS,实现集中化IIS配置管理。
l 支持REST API,方便集成到自研系统。
l 支持IIS配置访问安全性设置
Github:https://github.com/Microsoft/IIS.Administration
微软官网使用文档:https://docs.microsoft.com/en-us/IIS-Administration/
二、安装
下载:https://docs.microsoft.com/en-us/IIS-Administration/getting-started
环境要求:
l 操作系统Windows7版本及以上版本
l IIS Administration API 依赖.NET Core,在安装IIS Administration安装包时,会按需自动安装
安装完后:
Windows服务名:Microsoft IIS Administration
Microsoft IIS Administration API地址:https://localhost:55539 (可以使用IP地址访问,但是会遇到权限问题,修改权限的方法在下面“修改配置文件”中介绍)
Web UI管理地址:https://manage.iis.net/get
获取AccessToken
进入https://localhost:55539/connect,创建一个Access Key
拿到accesstoken后
l 通过地址:https://localhost:55539/connect 进入api展示界面(https://localhost:55539/#/api),查看可在自己的程序中通过rest api 访问iis信息
l 通过地址:https://manage.iis.net/connect 进入UI管理界面
三、IIS Administration配置文件
1) 配置文件路径:%SystemDrive%\Program Files\IIS Administration\<version>\Microsoft.IIS.Administration\config\**
2) 修改配置文件后需要重启windows服务(Microsoft IIS Administration)
3) appsettings.json 配置:安全性、日志、audit(审计)、cors(跨域)、访问用户、只读等,详细查看文档。
4) modules.json配置:启用或禁用IIS配置模块
配置修改示例
示例一、访问https://远程IP地址:55539/connect ,出现windows登录验证框
修改点:修改appsettings.json,将"require_windows_authentication"设置为 false
示例二、编码访问IIS Administration REST API 报401没有权限访问
修改点:修改appsettings.json,"access_policy" -> "api" ->"users": "administrators"修改为:"users": "Everyone"
appsettings.json修改后类似如下:(默认会将执行安装包的角色加入到安全设置中)
"security": {
"require_windows_authentication": false, // 默认为true
"users": {
"administrators": [
……
],
"owners": [
……
]
},
"access_policy": {
"api": {
"users": "Everyone", // 默认为执行安装包角色
"access_key": true
},
"api_keys": {
"users": "administrators",
"access_key": false
},
"system": {
"users": "owners",
"access_key": true
}
}
}
四、Web UI管理界面
前面介绍中拿到Access Token后,进入 https://manage.iis.net 管理界面
支持远程IIS管理
IIS服务器的系统资源监控
IIS根节点配置管理
IIS上的站点信息
IIS上的特定站点配置管理
包括:绑定信息、应用程序池、虚拟目录下的应用程序、身份验证、默认文档、目录浏览、IP限制、日志、MIME类型、监控、模块、响应压缩、请求筛选、HTTP响应标头、请求跟踪、静态缓存、HTTP重定向等
五、IIS Administration API
前面介绍中拿到Access Token后,进入 https://localhost:55539/#/api
METHOD DESCRIPTION
GET Retrieves the specified resource
POST Creates a resource
PATCH Updates the specified resource
DELETE Deletes the specified resource
HEAD Similar to get except only returns HTTP headers
示例
https://docs.microsoft.com/en-us/IIS-Administration/api/crud
代码示例RestSharp
var client = new RestClient(iisAdminBaseUrl);
ServicePointManager.ServerCertificateValidationCallback +=
(sender, certificate, chain, sslPolicyErrors) => true;
var request = new RestRequest("/api/webserver/websites", Method.GET);
request.AddHeader("Access-Token", $"Bearer {token}");
request.AddHeader("Accept", "application/hal+json");
IRestResponse response = client.Execute(request);
if (response.IsSuccessful)
{ …… }
代码示例HttpClient
var apiClient = new HttpClient(new HttpClientHandler()
{
UseDefaultCredentials = true,
ServerCertificateCustomValidationCallback = (message, cert, chain, error) => true
}, true);
// Set access token for every request
apiClient.DefaultRequestHeaders.Add("Access-Token", "Bearer {token}");
// Request HAL (_links)
apiClient.DefaultRequestHeaders.Add("Accept", "application/hal+json"); var res = await apiClient.GetAsync("https://localhost:55539/api/webserver/websites");
if (res.StatusCode != HttpStatusCode.OK) {
HandleError(res);
return;
}
JArray sites = JObject.Parse(res.Content.ReadAsStringAsync().Result).Value<JArray>("websites");
推荐阅读:
===========================================
over,谢谢阅读,若对你有帮助,请帮推荐下。
IIS集中化管理与编程REST API的更多相关文章
- (转载)Linux系统调用及用户编程接口(API)
(转载)http://www.farsight.com.cn/news/emb167.htm 1 Linux系统调用 所谓系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组 ...
- Saltstack 集中化管理平台安装
Saltstack的简介 SaltStack(http://www.saltstack.com/)是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的pupp ...
- 集中化管理平台 — Ansible 详解
# Ansible 简介 Ansible 类似于Saltstack,是一种集成IT系统的配置管理.应用部署.执行特定任务的开源平台.Ansible基于Python语言实现,由Paramiko和PyYA ...
- SaltStack 是一个服务器基础架构集中化管理平台
SaltStack详细部署 一.基础介绍============================================================================== ...
- USB联机线编程接口(API)
USB联机线编程接口(API) 2013-10-19 本页面的文字允许在知识共享 署名-相同方式共享 3.0协议和GNU自由文档许可证下修改和再使用. 关键字:USB隔离线.USB点对点通讯.USB通 ...
- 服务器编程入门(4)Linux网络编程基础API
问题聚焦: 这节介绍的不仅是网络编程的几个API 更重要的是,探讨了Linux网络编程基础API与内核中TCP/IP协议族之间的关系. 这节主要介绍三个方面的内容:套接字( ...
- 搭建rtmp直播流服务之3:java开发ffmpeg实现rtsp转rtmp并实现ffmpeg命令的接口化管理架构设计及代码实现
上一篇文章简单介绍了java如何调用ffmpeg的命令:http://blog.csdn.net/eguid_1/article/details/51777716 上上一篇介绍了nginx-rtmp服 ...
- IIS命令行管理工具使用
AppCmd.exe工具所在目录 C:\windows\sytstem32\inetsrv\目录下 一条命令批量添加应用程序 c:\Windows\System32\inetsrv>for /d ...
- Linux 高性能服务器编程——Linux网络编程基础API
问题聚焦: 这节介绍的不仅是网络编程的几个API 更重要的是,探讨了Linux网络编程基础API与内核中TCP/IP协议族之间的关系. 这节主要介绍三个方面的内容:套接字(so ...
随机推荐
- 记录一下这几天遇到的坑(.netcore 代理问题)
1.通过图片的网络url将图片转化为base64格式 方法如下: public static async Task<string> GetImageAsBase64Url(string u ...
- Linux系统(虚拟机)安装禅道
1.查看linux系统版本 uname -a 2.禅道下载:http://www.zentao.net/download.html,找到要下载的版本,点击进入各平台下载: 3.将下载好的安装包上传到l ...
- MapReduce流量统计
准备数据access.log 要用到的只有第二个手机号,倒数第三上行流量,倒数第二下行流量. 1363157985066 13726230503 00-FD-07-A4-72-B8:CMCC 120. ...
- Python利用os模块批量修改文件名
初学Python.随笔记录自己的小练习. 通过查阅资料os模块中rename和renames都可以做到 他们的区别为.rename:只能修改文件名 renames:可以修改文件名,还可以修改文件上 ...
- docker删除已经停止的容器
前言:docker容器已经停止运行的容器,怎么清理 1.如图: docker ps -a :显示所有运行过的docker容器 status : docker容器的状态 docker ...
- java文件过滤器的使用
前言: java.io.FileFilter(过滤器接口)boolean accept(File pathname) File类提供了如下方法使用过滤器:public File[] listFiles ...
- James Munkres《拓扑学》笔记前言
许久以前,我读到了侯捷先生于<深入浅出MFC>一书中所写的“勿在浮砂筑高台”这句话,颇受警醒与启发.如今在工科领域已摸索多年,亦逐渐真切而深刻地认识到,若没有坚实.完整.细致的数学理论作为 ...
- jquery的选择器——[作为学习备用]
1,转载:https://www.cnblogs.com/onlys/articles/jQuery.html jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法 $(&quo ...
- mysql存储过程游标使用
BEGIN DECLARE idCount int DEFAULT 0;-- 定义查询的id count DECLARE nameCount int DEFAULT 0;-- 统计相同名字合计 DEC ...
- caffe 根据txt生成多标签LMDB数据
1. 前提: 已经准备好train.txt, test.txt文件, 格式如下 此处有坑, 如果是windows下生成txt, 换行符为\r\n, 需要替换成 \n才能在linux运行. 可以使用se ...